From Fedora Project Wiki
(ChangeReadyForWrangler)
 
(12 intermediate revisions by the same user not shown)
Line 8: Line 8:
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
Update to a new upstream release of {{package|python-setuptools}} that is not completely compatible with previous releases. Most notably, version 72.0.0 removed support for the `setup.py test` command (deprecated for 5 years). This is a breaking change and Fedora packages that use the `setup.py test` command during the build need to be adapted to use a different test runner, such as unittest, pytest, etc.
Update to a new upstream release of {{package|python-setuptools}} that is not completely compatible with previous releases. Most notably, version 72.0.0 removed support for the `setup.py test` command (deprecated for 5 years). This is a breaking change and Fedora packages that use the `setup.py test` command during the build need to be adapted to use a different test runner, such as unittest, pytest, etc.
There might be other breaking changes. ~142 Fedora Rawhide packages appear to fail to build due to this upgrade (as of Sep 2024).
There might be other breaking changes. We estimate 142 to 196 Fedora Rawhide packages to fail to build due to this upgrade (as of Sep 2024).


== Owner ==
== Owner ==
Line 24: Line 24:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeReadyForWrangler]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 31: Line 31:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SelfContainedChange]]
<!-- [[Category:SelfContainedChange]] -->
<!-- [[Category:SystemWideChange]] -->
[[Category:SystemWideChange]]


* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]
Line 537: Line 537:
== Feedback ==
== Feedback ==
<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. -->
<!-- Summarize the feedback from the community and address why you chose not to accept proposed alternatives. This section is optional for all change proposals but is strongly suggested. Incorporating feedback here as it is raised gives FESCo a clearer view of your proposal and leaves a good record for the future. If you get no feedback, that is useful to note in this section as well. For innovative or possibly controversial ideas, consider collecting feedback before you file the change proposal. -->
python-devel thread from August 2024: https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/YOC5527SRKNY2XG6CMS3KNGJ54O7SMXI/
Listed ~200 packages, ~30 were fixed in a month. Thank you, maintainers!


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 566: Line 569:
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
     https://fedoraproject.org/wiki/Changes/perl5.26 (major upgrade to a popular software stack, visible to users of that stack)
-->
-->
Fedora offers cutting-edge technologies for Python and setuptools is one of the most important Python packages. By doing this update we bring users the latest features that setuptools offers and also we enable Fedora 42+ to receive future updates as well.


== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners: update python-setuptools to 74.x.x or newer, open bugzillas, provide help
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Other developers: <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: report problems to the upstream and backport patches to the affected packages. The impact can be tested using [https://copr.fedorainfracloud.org/coprs/churchyard/setuptools-74/ copr repository where setuptools 74+ has been built].
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do other developers have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->


* Release engineering: [https://pagure.io/releng/issues #Releng issue number] <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Release engineering: [https://pagure.io/releng/issue/12323 #12323] <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
<!-- Does this feature require coordination with release engineering (e.g. changes to installer image generation or update package delivery)?  Is a mass rebuild required?  include a link to the releng issue.  
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
The issue is required to be filed prior to feature submission, to ensure that someone is on board to do any process development work and testing and that all changes make it into the pipeline; a bullet point in a change is not sufficient communication -->
Line 584: Line 588:
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://pagure.io/Fedora-Council/tickets/issues ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->
<!-- If your Change may require trademark approval (for example, if it is a new Spin), file a ticket ( https://pagure.io/Fedora-Council/tickets/issues ) requesting trademark approval from the Fedora Council. This approval will be done via the Council's consensus-based process. -->


* Alignment with the Fedora Strategy:  
* Alignment with the Fedora Strategy: First?
<!-- Does your proposal align with the current Fedora Strategy: https://discussion.fedoraproject.org/t/fedora-strategy-2028-february-march-planning-work-and-roadmap-til-flock/43618 ? It's okay if it doesn't, but it's something to consider -->
<!-- Does your proposal align with the current Fedora Strategy: https://discussion.fedoraproject.org/t/fedora-strategy-2028-february-march-planning-work-and-roadmap-til-flock/43618 ? It's okay if it doesn't, but it's something to consider -->


Line 591: Line 595:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
There is a clean upgrade path from current version to python-setuptools 69.x.x. Fedora users using RPM-packaged setuptools will use setuptools 74+ by default.


== Early Testing (Optional) ==
== Early Testing (Optional) ==
<!-- This is an optional step for system-wide changes to avail of. If you would like to build an initial proof of concept of your change and have a member of Fedora QA help you write and/or run some initial basic tests on your code, please email tests@fedoraproject.org and include the link to your change proposal. This step is *optional*. -->
<!-- This is an optional step for system-wide changes to avail of. If you would like to build an initial proof of concept of your change and have a member of Fedora QA help you write and/or run some initial basic tests on your code, please email tests@fedoraproject.org and include the link to your change proposal. This step is *optional*. -->


Do you require 'QA Blueprint' support? Y/N <!-- Optional Step for System-Wide Changes only -->
Do you require 'QA Blueprint' support? N <!-- Optional Step for System-Wide Changes only -->


== How To Test ==
== How To Test ==
Line 613: Line 618:


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Find the package you want to update in the [https://copr.fedorainfracloud.org/coprs/churchyard/setuptools-74/ copr repository] and check the build logs to determine the fail cause.
* Work with the upstream to resolve the issue or drop the need for `setup.py test` during the build of the package.
* When updating the package, you can test it using the same copr repository where the latest version of setuptools has been built.
* Let us know if something doesn't work as it should.


== User Experience ==
== User Experience ==
Line 625: Line 634:
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
-->
-->
Regular distro users shouldn't notice any change in setuptools behavior, except for upstream-intended changes.


== Dependencies ==
== Dependencies ==
Line 635: Line 645:


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: (What to do?  Who will do it?) Provide a compat package with setuptools 69 <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: mass rebuild <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 


== Documentation ==
== Documentation ==
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
<!-- Is there upstream documentation on this change, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
[https://setuptools.pypa.io/en/stable/history.html Setuptools changelog]


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)
This page is the documentation.


== Release Notes ==
== Release Notes ==

Latest revision as of 18:01, 12 September 2024


Setuptools 74+

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Update to a new upstream release of python-setuptools that is not completely compatible with previous releases. Most notably, version 72.0.0 removed support for the setup.py test command (deprecated for 5 years). This is a breaking change and Fedora packages that use the setup.py test command during the build need to be adapted to use a different test runner, such as unittest, pytest, etc. There might be other breaking changes. We estimate 142 to 196 Fedora Rawhide packages to fail to build due to this upgrade (as of Sep 2024).

Owner


Current status

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-09-12
  • [Announced]
  • [<will be assigned by the Wrangler> Discussion thread]
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

Setuptools is a package development process library designed to facilitate packaging Python projects by enhancing the former Python standard library distutils (distribution utilities). It changes fast and it often introduces breaking changes such as the removal of the setup.py test command in version 72.0.0 which was deprecated since 2019.

If your Fedora package still uses the setup.py test command (deprecated for 5 years), please update to %pytest, %tox, %{python3} -m unittest, etc.

List of packages that will likely fail to build, because they use the removed setup.py test command in the specfile:

$ rg '^[^-#].+(\b|_)setup(\.py|\})\s+test\b' -l | sed -E 's|^rpm-specs/(.+)\.spec$|\1|' | sort
adapt
ansible-inventory-grapher
binwalk
btrfs-sxbackup
calibre
cepces
classification-banner
ddiskit
fprettify
fros
grammalecte
gtts
gtts-token
hddfancontrol
hgsvn
ioc-writer
isrcsubmit
kitty
lazygal
libvirt-test-API
mopidy
mopidy-mpd
nototools
past-time
petsc
pycairo
PyGreSQL
pyjokes
pyowm
python3-lxc
python3-mallard-ducktype
python-aioresponses
python-apsw
python-auth-credential
python-autopage
python-binaryornot
python-booleanoperations
python-bracex
python-can
python-case
python-casttube
python-cccolutils
python-chai
python-cliff
python-collada
python-colorclass
python-CommonMark
python-cpuinfo
python-cwcwidth
python-cx-oracle
python-decorator
python-dfdatetime
python-dictdiffer
python-digitalocean
python-dirq
python-distroinfo
python-django-contrib-comments
python-django-prometheus
python-dkimpy
python-enlighten
python-epub
python-events
python-fedmsg-meta-fedora-infrastructure
python-flask-wtf-decorators
python-flask-xml-rpc
python-flufl-i18n
python-fontMath
python-freeipa
python-gammu
python-genshi
python-genty
python-geojson
python-gerritlib
python-glyphsLib
python-gmqtt
python-hgapi
python-html5-parser
python-httpsig-cffi
python-hypothesis-fspaths
python-imagehash
python-ipgetter2
python-iptools
python-jack-client
python-jcconv
python-jinja2_pluralize
python-jinja2-time
python-journal-brief
python-json-minify
python-jsonpath-ng
python-jsonpath-rw
python-klusta
python-launchpadlib
python-lazr-uri
python-libusb1
python-lupa
python-markups
python-messaging
python-moksha-hub
python-murano-pkg-check
python-mutatormath
python-mwclient
python-neurosynth
python-num2words
python-oletools
python-openidc-client
python-oslo-context
python-oslo-metrics
python-os-service-types
python-ouimeaux
python-pdfkit
python-phonenumbers
python-poyo
python-pyasn1
python-pyclipper
python-pycryptodomex
python-pydispatcher
python-pyfim
python-pymediainfo
python-pyramid_sawing
python-pyramid-tm
python-pysignals
python-pysocks
python-pystray
python-pyte
python-pytest-fixture-config
python-pytest-flakes
python-pytest-runner
python-pytimeparse
python-repoze-lru
python-rmtest
python-rsd-lib
python-scripttest
python-serpy
python-shodan
python-simplegeneric
python-simplevisor
python-singledispatch
python-slacker
python-smartypants
python-sphinxcontrib-autoprogram
python-sphinxcontrib-trio
python-sql
python-ssdeep
python-statsd
python-svg-path
python-testscenarios
python-textile
python-textparser
python-tgscheduler
python-tidy
python-timeout-decorator
python-tosca-parser
python-translationstring
python-tree-format
python-typing-inspect
python-volatile
python-wadllib
python-whoosh
python-wsgi_intercept
python-www-authenticate
python-xmp-toolkit
python-xunitparser
python-yapsy
python-yaql
python-zc-customdoctests
python-zc-lockfile
python-zope-deprecation
python-zope-testing
python-zstd
sepolicy_analysis
tpm2-pkcs11
transifex-client

List of packages that actually failed in our testing copr but did not fail in a control copr:

ansible-inventory-grapher
btrfs-sxbackup
cepces
classification-banner
ddiskit
flent
fprettify
fros
gpgme
grammalecte
grpc
hddfancontrol
ioc-writer
lazygal
mopidy
mopidy-mpd
mozjs102
past-time
PyGreSQL
pyproject-rpm-macros
python3-lxc
python3-mallard-ducktype
python-aioresponses
python-binaryornot
python-bracex
python-case
python-cccolutils
python-chai
python-cliff
python-collada
python-colorclass
python-cpuinfo
python-cwcwidth
python-daemon
python-decorator
python-dfdatetime
python-digitalocean
python-distroinfo
python-django-contrib-comments
python-django-prometheus
python-epub
python-events
python-flake8-class-newline
python-flask-wtf-decorators
python-flask-xml-rpc
python-flufl-i18n
python-fontMath
python-freeipa
python-genshi
python-genty
python-geojson
python-hypothesis-fspaths
python-imagehash
python-iptools
python-jack-client
python-jcconv
python-jinja2_pluralize
python-jinja2-time
python-json-minify
python-jsonpath-ng
python-jsonpath-rw
python-jupyter-packaging
python-klusta
python-launchpadlib
python-lazr-uri
python-libusb1
python-lupa
python-markups
python-moksha-hub
python-mutatormath
python-mwclient
python-nose
python-oletools
python-openidc-client
python-oslo-context
python-oslo-metrics
python-ouimeaux
python-parsel
python-pdfkit
python-phonenumbers
python-poyo
python-pyasn1
python-pycdio
python-pyclipper
python-pydispatcher
python-pyemd
python-pygmtools
python-pymediainfo
python-pyproject-api
python-pyproject-hooks
python-pyramid_sawing
python-pyramid-tm
python-pysignals
python-pysrt
python-pytaglib
python-pyte
python-pytest-fixture-config
python-pytest-flakes
python-pytest-runner
python-pytimeparse
python-pyvmomi
python-repoze-lru
python-rmtest
python-robot-detection
python-scikit-build
python-scripttest
python-serpy
python-simplegeneric
python-singledispatch
python-slacker
python-sphinxcontrib-autoprogram
python-sphinxcontrib-trio
python-sql
python-ssdeep
python-statsd
python-svg-path
python-testscenarios
python-textparser
python-tgscheduler
python-timeout-decorator
python-translationstring
python-tree-format
python-trml2pdf
python-typing-inspect
python-virtualenv
python-volatile
python-wadllib
python-whoosh
python-wsgi_intercept
python-www-authenticate
python-xmp-toolkit
python-xunitparser
python-yaql
python-zc-customdoctests
python-zc-lockfile
python-zope-deprecation
python-zope-testing
python-zope-testrunner
python-zstd
sentencepiece
tpm2-pkcs11
transifex-client

Both lists together, by maintainers:


abbra      python-whoosh
abompard   python-flufl-i18n python-jinja2_pluralize python-pyramid_sawing python-pysocks python-translationstring python-zope-deprecation python-zope-testing python-zope-testrunner
adamwill   python-mwclient
adrian     flent
aekoroglu  python-django-prometheus python-pytaglib python-repoze-lru python-serpy python-xunitparser
ajax       binwalk
alexl      pycairo
amigadave  isrcsubmit python3-mallard-ducktype
amoralej   python-rsd-lib python-yaql
ankursinha python-klusta python-num2words python-pyemd python-pyfim
apevec     python-oslo-context python-testscenarios python-wsgi_intercept
asn        cepces
athoscr    python-booleanoperations python-epub python-fontMath python-glyphsLib python-mutatormath python-pyclipper
atim       kitty
aviso      python-enlighten
besser82   python-jcconv
caolanm    pycairo
carlwgeorge python-pyproject-hooks
chandankumar python-oslo-context python-tosca-parser python-wsgi_intercept
chedi      python-jinja2-time python-poyo python-pytest-flakes python-tree-format
chkr       calibre
churchyard pyproject-rpm-macros python-genty python-launchpadlib python-lazr-uri python-nose python-scripttest python-simplegeneric python-virtualenv python-wadllib
cicku      python-apsw
ckalina    ddiskit
cottsay    python-flake8-class-newline
cqi        python-django-contrib-comments
cstratak   python-virtualenv
dcallagh   python-phonenumbers python-www-authenticate
dcavalca   tpm2-pkcs11
dchen      cepces
defolos    grpc
dfateyev   python-apsw
dherrera   python-pytest-runner
dminer     python-zstd
dshea      python-jinja2_pluralize
echevemaster python-pydispatcher transifex-client
eeickmeyer python-jack-client
esyr       ddiskit
fab        ioc-writer past-time python-cx-oracle python-dfdatetime python-geojson python-gmqtt python-imagehash python-ipgetter2 python-jsonpath-ng python-jsonpath-rw python-shodan python-slacker python-textparser python-zc-customdoctests
fale       python-decorator python-pyvmomi
fed500     python-pygmtools
fedepell   python-jinja2-time
filiperosset hddfancontrol
fjanus     PyGreSQL
frantisekz mozjs102
frostyx    python-flask-wtf-decorators
fschwarz   python-digitalocean python-genshi
girst      mopidy mopidy-mpd
gsauthof   python-aioresponses
gui1ty     python-moksha-hub
hhorak     PyGreSQL
hiwkby     python-oslo-metrics
hobbes1069 python-collada
hvad       python-events
ignatenkobrain python-pytest-flakes python-simplegeneric
jamatos    python-markups python-smartypants
jcapitao   python-cliff python-distroinfo python-timeout-decorator
jcaratzas  python-repoze-lru python-simplegeneric python-singledispatch python-sphinxcontrib-trio python-zc-lockfile
jjelen     tpm2-pkcs11
jkucera    gpgme
jmontleon  python-dictdiffer
jonathanspw kitty python-freeipa python-parsel python-pystray python-pytest-runner python-zstd
jonny      python-libusb1
jorti      python-pysrt
jpena      python-murano-pkg-check python-tosca-parser
jruzicka   python-tosca-parser
jujens     python-CommonMark python-hgapi
jussilehtola fprettify
kalev      pycairo
kevin      calibre python-chai python-decorator python-html5-parser python-pycdio python-pyramid-tm python-pysocks python-pytest-fixture-config python-svg-path python-tgscheduler
kni        python-ouimeaux python-pysignals
ktdreyer   python-testscenarios
kushal     python-daemon
laxathom   python-gammu
lbalhar    python-jupyter-packaging python-pyproject-api python-pyproject-hooks python-virtualenv
lbazan     python-neurosynth transifex-client
lberk      python-rmtest
lbrabec    python-xunitparser
lcons      python-auth-credential python-dirq python-messaging python-simplevisor
lecris     python-scikit-build
limb       python-typing-inspect
lnie       libvirt-test-API
lyessaadi  python-yapsy
maha       python-sphinxcontrib-autoprogram
melmorabity grammalecte python-pycryptodomex
mfabian    nototools
mhayden    python-virtualenv
mhlavink   gpgme
mohanboddu python-openidc-client
mrc0mmand  gpgme
mrunge     python-pytimeparse python-singledispatch python-testscenarios python-virtualenv
nathans    python-rmtest
nb         python-digitalocean
neil       grpc python-gerritlib
ngompa     python-case python-dkimpy python-freeipa python-pystray python-robot-detection python-zstd
opohorel   python-launchpadlib python-lazr-uri python-wadllib
orion      python-virtualenv python-zope-testing
orphan     python-case python-fedmsg-meta-fedora-infrastructure python-hypothesis-fspaths python-iptools
osloup     PyGreSQL
pbrobinson adapt gtts gtts-token pyjokes python-can python-casttube tpm2-pkcs11
peter      python-libusb1
pingou     python-binaryornot python-case python-chai python-flask-xml-rpc
pkubat     PyGreSQL
pnemade    ansible-inventory-grapher python-bracex python-cpuinfo
poros      ddiskit
praiskup   PyGreSQL
puiterwijk python-cccolutils
pwhalen    pyjokes pyowm
pwu        nototools
qulogic    python-json-minify python-xmp-toolkit
radez      python-zc-lockfile python-zope-testing
raphgro    python-pdfkit python-pyvmomi
rathann    lazygal
rcallicotte python-pyvmomi
rcritten   cepces python-pyasn1
rdieter    gpgme python-mwclient
rebus      python-colorclass python-oletools
rhughes    pycairo
robert     python-oletools
rstrode    pycairo
sagitter   petsc
salimma    kitty python-lupa python-pytest-runner python-robot-detection python-volatile python-zope-testrunner python-zstd
sergiomb   python-gammu
sgallagh   python-whoosh
sharkcz    python-sql
shoracek   tpm2-pkcs11
slinabery  python-jsonpath-rw
solopasha  kitty
spichugi   python-pyasn1
suve       python-ssdeep
swt2c      binwalk
tdecacqu   python-statsd
terjeros   hgsvn python-cwcwidth python-httpsig-cffi python-pyte python-tidy
tflink     python-xunitparser
thebeanogamer classification-banner
thm        python-sphinxcontrib-trio python-textile python3-lxc
thofmann   btrfs-sxbackup
thrnciar   python-scikit-build
tieugene   python-trml2pdf
tohojo     flent
tomspur    python-daemon python-simplegeneric
topazus    sentencepiece
trawets    fros
ttorling   python-pysocks
twaugh     python-journal-brief
vascom     python-pymediainfo
vmojzis    sepolicy_analysis
vtrefny    python-pytimeparse
xavierb    python-daemon
ykarel     python-os-service-types
zaneb      python-autopage
zawertun   kitty
zbyszek    calibre
zsun       ddiskit

We will be slowly crushing the failures and opening bugzillas before we actually update setuptools.

Feedback

python-devel thread from August 2024: https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/YOC5527SRKNY2XG6CMS3KNGJ54O7SMXI/

Listed ~200 packages, ~30 were fixed in a month. Thank you, maintainers!

Benefit to Fedora

Fedora offers cutting-edge technologies for Python and setuptools is one of the most important Python packages. By doing this update we bring users the latest features that setuptools offers and also we enable Fedora 42+ to receive future updates as well.

Scope

  • Proposal owners: update python-setuptools to 74.x.x or newer, open bugzillas, provide help
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: First?

Upgrade/compatibility impact

There is a clean upgrade path from current version to python-setuptools 69.x.x. Fedora users using RPM-packaged setuptools will use setuptools 74+ by default.

Early Testing (Optional)

Do you require 'QA Blueprint' support? N

How To Test

  • Find the package you want to update in the copr repository and check the build logs to determine the fail cause.
  • Work with the upstream to resolve the issue or drop the need for setup.py test during the build of the package.
  • When updating the package, you can test it using the same copr repository where the latest version of setuptools has been built.
  • Let us know if something doesn't work as it should.

User Experience

Regular distro users shouldn't notice any change in setuptools behavior, except for upstream-intended changes.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Provide a compat package with setuptools 69
  • Contingency deadline: mass rebuild
  • Blocks release? No

Documentation

Setuptools changelog

This page is the documentation.

Release Notes