From Fedora Project Wiki
(Add the fesco ticket)
Line 45: Line 45:
== Detailed Description ==
== Detailed Description ==
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
Setuptools is a package development process library designed to facilitate packaging Python projects by enhancing the Python standard library distutils (distribution utilities). It changes fast and it often introduces breaking changes such as the removal of support for 2to3 during the builds in version 58.0.0 which was [https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v4620 deprecated] since version 46.2.0 present in Fedora 33. `use_2to3` used to help to translate Python 2.x programs to Python 3.x. But since Python 2 reached its end of life on 1st January 2020 and lib2to3 was removed from Python 3 in version 3.10, developers are encouraged to drop support for Python 2 and migrate to Python 3. It is still possible to use command line `2to3` tool in Python 3.10, but it will be deprecated in 3.11 and removed in 3.13.
Setuptools is a package development process library designed to facilitate packaging Python projects by enhancing the Python standard library distutils (distribution utilities). It changes fast and it often introduces breaking changes such as the removal of support for 2to3 during the builds in version 58.0.0 which was [https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v4620 deprecated] since version 46.2.0 present in Fedora 33. `use_2to3` used to help to translate Python 2.x programs to Python 3.x. But since Python 2 reached its end of life on 1st January 2020 and lib2to3 is deprecated in Python 3.10 and slated for removal in Python 3.12., developers are encouraged to drop support for Python 2 and migrate to Python 3. It is still possible to use command line `2to3` tool in Python 3.10, but it will be deprecated in 3.11 and removed in 3.13.


List of packages that will likely fail to build, because they use the removed use_2to3 option.
List of packages that will likely fail to build, because they use the removed use_2to3 option.

Revision as of 13:04, 12 October 2021

Setuptools 58+

Summary

Update to a new upstream release of python-setuptools that is not completely compatible with previous releases. Since version 58+ upstream removed support for 2to3 during builds. This is a breaking change and projects are encouraged to port to a unified codebase.

Owner


Current status

  • Targeted release: Fedora Linux 36
  • Last updated: 2021-10-12
  • FESCo issue: #2676
  • 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 Python standard library distutils (distribution utilities). It changes fast and it often introduces breaking changes such as the removal of support for 2to3 during the builds in version 58.0.0 which was deprecated since version 46.2.0 present in Fedora 33. use_2to3 used to help to translate Python 2.x programs to Python 3.x. But since Python 2 reached its end of life on 1st January 2020 and lib2to3 is deprecated in Python 3.10 and slated for removal in Python 3.12., developers are encouraged to drop support for Python 2 and migrate to Python 3. It is still possible to use command line 2to3 tool in Python 3.10, but it will be deprecated in 3.11 and removed in 3.13.

List of packages that will likely fail to build, because they use the removed use_2to3 option.

Maintainers by package:

  • fail2ban atkac hobbes1069 jgu orion
  • playitagainsam churchyard
  • pybluez limb
  • pyp2rpm gordonmessmer kevin
  • python-anyjson fab mrunge sundaram
  • python-behave pschindl
  • python-concurrentloghandler dcallagh
  • python-deap zbyszek
  • python-demjson lmacken thm
  • python-flask-openid frantisekz pjp sundaram
  • python-funcparserlib dridi
  • python-jsmin ignatenkobrain
  • python-libusb1 jonny
  • python-mailer fab
  • python-marathon apevec dmsimard
  • python-nose-cover3 mrunge ngompa pingou
  • python-parse_type ignatenkobrain
  • python-proteus sharkcz
  • python-pypng kevin ralph
  • python-pysam davidsch
  • python-relatorio sharkcz
  • python-rnc2rng ignatenkobrain
  • python-simpleeval sharkcz
  • python-speaklater ondrejj
  • python-sphinx-bootstrap-theme besser82 sic
  • python-spyking-circus ankursinha
  • python-suds jortel swt2c
  • python-tempita jcapitao kylev
  • python-vatnumber sharkcz
  • python-xunitparser ignatenkobrain lbrabec tflink
  • trytond sharkcz
  • trytond-account sharkcz
  • trytond-account-be sharkcz
  • trytond-account-de-skr03 sharkcz
  • trytond-account-invoice sharkcz
  • trytond-account-invoice-history sharkcz
  • trytond-account-invoice-line-standalone sharkcz
  • trytond-account-product sharkcz
  • trytond-account-statement sharkcz
  • trytond-account-stock-anglo-saxon sharkcz
  • trytond-account-stock-continental sharkcz
  • trytond-analytic-account sharkcz
  • trytond-analytic-invoice sharkcz
  • trytond-analytic-purchase sharkcz
  • trytond-analytic-sale sharkcz
  • trytond-company sharkcz
  • trytond-company-work-time sharkcz
  • trytond-country sharkcz
  • trytond-currency sharkcz
  • trytond-dashboard sharkcz
  • trytond-google-maps sharkcz
  • trytond-ldap-authentication sharkcz
  • trytond-party sharkcz
  • trytond-party-siret sharkcz
  • trytond-product sharkcz
  • trytond-product-cost-fifo sharkcz
  • trytond-product-cost-history sharkcz
  • trytond-product-price-list sharkcz
  • trytond-project sharkcz
  • trytond-project-plan sharkcz
  • trytond-project-revenue sharkcz
  • trytond-purchase sharkcz
  • trytond-purchase-invoice-line-standalone sharkcz
  • trytond-sale sharkcz
  • trytond-sale-opportunity sharkcz
  • trytond-sale-price-list sharkcz
  • trytond-stock sharkcz
  • trytond-stock-forecast sharkcz
  • trytond-stock-inventory-location sharkcz
  • trytond-stock-location-sequence sharkcz
  • trytond-stock-product-location sharkcz
  • trytond-stock-supply sharkcz
  • trytond-stock-supply-day sharkcz
  • trytond-timesheet sharkcz


Packages by maintainer:

  • ankursinha python-spyking-circus
  • apevec python-marathon
  • atkac fail2ban
  • besser82 python-sphinx-bootstrap-theme
  • churchyard playitagainsam
  • davidsch python-pysam
  • dcallagh python-concurrentloghandler
  • dmsimard python-marathon
  • dridi python-funcparserlib
  • fab python-anyjson python-mailer
  • frantisekz python-flask-openid
  • gordonmessmer pyp2rpm
  • hobbes1069 fail2ban
  • ignatenkobrain python-jsmin python-parse_type python-rnc2rng python-xunitparser
  • jcapitao python-tempita
  • jgu fail2ban
  • jonny python-libusb1
  • jortel python-suds
  • kevin pyp2rpm python-pypng
  • kylev python-tempita
  • lbrabec python-xunitparser
  • limb pybluez
  • lmacken python-demjson
  • mrunge python-anyjson python-nose-cover3
  • ngompa python-nose-cover3
  • ondrejj python-speaklater
  • orion fail2ban
  • pingou python-nose-cover3
  • pjp python-flask-openid
  • pschindl python-behave
  • ralph python-pypng
  • sharkcz python-proteus python-relatorio python-simpleeval python-vatnumber trytond trytond-account trytond-account-be trytond-account-de-skr03 trytond-account-invoice trytond-account-invoice-history trytond-account-invoice-line-standalone trytond-account-product trytond-account-statement trytond-account-stock-anglo-saxon trytond-account-stock-continental trytond-analytic-account trytond-analytic-invoice trytond-analytic-purchase trytond-analytic-sale trytond-company trytond-company-work-time trytond-country trytond-currency trytond-dashboard trytond-google-maps trytond-ldap-authentication trytond-party trytond-party-siret trytond-product trytond-product-cost-fifo trytond-product-cost-history trytond-product-price-list trytond-project trytond-project-plan trytond-project-revenue trytond-purchase trytond-purchase-invoice-line-standalone trytond-sale trytond-sale-opportunity trytond-sale-price-list trytond-stock trytond-stock-forecast trytond-stock-inventory-location trytond-stock-location-sequence trytond-stock-product-location trytond-stock-supply trytond-stock-supply-day trytond-timesheet
  • sic python-sphinx-bootstrap-theme
  • sundaram python-anyjson python-flask-openid
  • swt2c python-suds
  • tflink python-xunitparser
  • thm python-demjson
  • zbyszek python-deap

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 36 to receive future updates as well.

Scope

  • Proposal owners: update python-setuptools to 58.x.x, provide help
  • Other developers: report problems to the upstream and backport patch to the affected packages. The impact can be tested using copr repository where Setuptools 58.0.4 has been built.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

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


How To Test

  • Find the package you want to update in this 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 2to3 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 behaviour, except for packages that use 2to3 to transform Python 2.x source code into Python 3.x source code. Such packages will fail with error in <package name> setup command: use_2to3 is invalid and should be fixed by their maintainers.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change)

Documentation

Setuptools changelog

This page is the documentation.

Release Notes