[SoaS] Fwd: Fedora 32 System-Wide Change proposal: Retire Python 2

Walter Bender walter.bender at gmail.com
Thu Apr 25 14:19:00 EDT 2019


gives us a year.. hopefully we'll make great strides during GSoC 2019

On Thu, Apr 25, 2019 at 2:09 PM Alex Perez <aperez at alexperez.com> wrote:

> FYI
>
>
> -------- Forwarded Message --------
> Subject: Fedora 32 System-Wide Change proposal: Retire Python 2
> Date: Wed, 24 Apr 2019 17:04:39 -0400
> From: Ben Cotton <bcotton at redhat.com> <bcotton at redhat.com>
> Reply-To: devel at lists.fedoraproject.org
> To: Development discussions related to Fedora
> <devel at lists.fedoraproject.org> <devel at lists.fedoraproject.org>,
> devel-announce at lists.fedoraproject.org
>
> https://fedoraproject.org/wiki/Changes/RetirePython2
>
> == Summary ==
> The {{package|python2}} package and all its subpackages will be
> removed from Fedora 32.
> A legacy {{package|python27}}  package for developers and users will
> be provided.
> All packages in Fedora that need Python 2 to run will be removed from
> Fedora 32 regardless of their dependencies.
> All packages in Fedora that need Python 2 to build will be removed
> from Fedora 32 regardless of their dependencies.
> Exceptions can be granted by FESCo.
>
> == Owner ==
> * Name: [[User:Churchyard|Miro HronĨok]]
> * Email: <mhroncok at redhat.com> <mhroncok at redhat.com> <python-devel at lists.fedoraproject.org> <python-devel at lists.fedoraproject.org>
>
> == Detailed Description ==
> Python 2 is unsupported upstream since 2020-01-01. Packages dependent
> on Python 2 are being removed from Fedora for several releases
> already:
>
> * [[Changes/Mass_Python_2_Package_Removal|Fedora 30 Mass Python 2
> Package Removal]]
> * [[Changes/F31_Mass_Python_2_Package_Removal|Fedora 31 Mass Python 2
> Package Removal]]
>
> Now, the Python maintainers have decided to pull the plug. The
> {{package|python2}} package and all its subpackages will be retired
> (read: removed) from Fedora 32 (Rawhide) as soon as Fedora 31 is
> branched.
>
> All packages depending on any python2 package will be removed. The
> removal starts 2 weeks before the planned Fedora 32 Mass Rebuild.
> Broken dependencies will not stop the removals.
> Packages that Fail to Build From Source and prevent to remove Python 2
> subpackages may end up with broken dependencies,
> in cases where it is not desired, those packages will be retired instead.
>
> The rules also apply to modules built for Fedora 32+.
>
> The package removal will be executed in an automated fashion.
>
> Removed packages that would block the upgrades to Fedora 32 will be
> obsoleted from {{package|fedora-obsolete-packages}}.
>
> === The python27 package ===
>
> Similarly to existing {{package|python36}}, {{package|python37}} etc.
> packages, a {{package|python27}} package will be created.
> This package is indented for Python developers who still need to
> support the legacy version of Python.
> This package is indented for users, who still need to use some
> software depending on the legacy version of Python.
> This package is not intended for other Fedora packages to be depended upon.
>
> The {{package|python27}} package has several drawbacks compared to the
> original {{package|python2}} package:
>
> * it is "flat" - there are no subpackages, everything lives in one package
> * there is no debug build (previously available as {{package|python2-debug}})
> * there is no <code>/usr/bin/python</code> (note: there might be
> already the case before this change)
> * any special backwards compatible Provides are removed (this package
> is not intended to be depended upon)
>
> === FESCo exceptions ===
>
> We realize that there are some packages whose removal could seriously
> hurt Fedora. FESCo can grant exceptions for packages to use the
> {{package|python27}} as a runtime or build dependency.
>
> The package maintainer is responsible to check the entire dependency
> chain and they need to request exceptions for the entire list of
> packages. For example, when seeking exception for the
> {{package|chromium}} package, the request should contain
> {{package|python-psutil}} and other dependent packages. (Yes, this is
> tedious. Maintaining a Python 2 dependent package is a burden.)
>
> The exception request must include a plan for migrating to Python 3.
>
> Any non-essential dependency must be dropped. That includes optional
> dependencies, test dependencies, optional subpackages etc.
>
> Package that fail to get an exception when the removal starts (see
> above) will be removed. Their importance for Fedora Release
> Engineering, Fedora Infrastructure or any other body will not be
> automagically respected; every package that needs Python 2 needs an
> exception.
>
> The change owners will send regular reminders to the package owners.
>
> == Benefit to Fedora ==
> Python 2 is past upstream End of Life since 2020-01-01. This changes
> is generally crafted in a way that:
>
> * it leaves Python developers an option to use it in case they still
> need to support it
> * it leaves Fedora users an option to use it in case they still need
> it to run their (3rd party) software
> * it leaves Fedora packagers an option to keep using it (complicated,
> but possible)
>
> While:
>
> * it removes Python 2 software from Fedora that was only preserved so
> far by inaction
>
> Using Python 2 is dangerous. While the Fedora Python maintainers will
> try to fix as many security bugs as possible, without the upstream
> involvement this will be hard.
>
> Python 2 is deprecated since Fedora 30. This change moves Python 2
> from second class citizen to third class citizen.
>
> == Scope ==
> * Proposal owners:
> ** retire {{package|python2}}
> ** introduce {{package|python27}}
> ** remove all {{package|python2}} dependent packages that do not have
> FESCo exceptions
> ** obsolete removed packages that break the upgrade path via
> {{package|fedora-obsolete-packages}}
> * Other developers:
> ** remove their {{package|python2}} dependent packages without exceptions
> ** get exceptions if needed
> ** fix broken dependencies
> * Release engineering: [https://pagure.io/releng/issue/8306 #8306]
> easeBlocking/Fedora{{FedoraVersionNumber|next}}|List of
> deliverables]]: none
> * Policies and guidelines: Python 2 packaging is against the
> guidelines since Fedora 30. Python 2 packaging guidelines will be
> removed from [https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/
> Python Appendix] (unless the FPC wants to keep them around until F31
> EOL).
> * Trademark approval: not needed for this Change
>
> == Upgrade/compatibility impact ==
> The majority of removed packages will be obsoleted and removed on upgrade.
>
> Users needing Python 2 libraries will not find these packaged as RPMs.
> They may install upstream versions using pip and virtualenv.
>
> == How To Test ==
> Try to update Fedora 30 or 31 to 32. No python2 packages should block
> the upgrade.
> Try to run Python 2 software via the {{package|python27}} package.
>
> == User Experience ==
> There will be close to zero Python 2 RPMs in Fedora repos. Users are
> encouraged to switch to Python 3 and/or use Python 2 virtual
> environments and pip for development.
>
> == Dependencies ==
> Ideally, all programs that use python2 would be switched to use
> python3. Although we don't expect everything to be switched over, as
> much as possible should be, so that the ripped remaining python2 set
> is small as possible.
>
> == Contingency Plan ==
> * Contingency mechanism:
> ** In case of serious issues, FESCo can issue a general exception for
> packages that would otherwise prevent Fedora 32 from being composed.
> ** If someone steps up to maintain Python 2 (including the full
> ecosystem of packages now in Fedora), they can decide to discontinue
> removing packages, revert this Change, or come up with another plan.
> (Note that in this case, current maintainers will most likely orphan
> many fundamental python2 packages.)
> * Contingency deadline: Fedora 32 Beta
> * Blocks release? in theory it should not, in practice, it may break
> the release and hence it will block it until fixed
> * Blocks product? all of them?
>
> == Documentation ==
> This page should serve as the documentation.
>
> == Release Notes ==
> TBD.
>
> --
> Ben Cotton
> Fedora Program Manager
> TZ=America/Indiana/Indianapolis
> Pronouns: he/him
> _______________________________________________
> devel-announce mailing list -- devel-announce at lists.fedoraproject.org
> To unsubscribe send an email to devel-announce-leave at lists.fedoraproject.org
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org
>
> _______________________________________________
> SoaS mailing list
> SoaS at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/soas
>


-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
<http://www.sugarlabs.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/soas/attachments/20190425/8f38522c/attachment.html>


More information about the SoaS mailing list