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

Walter Bender walter.bender at gmail.com
Fri Apr 26 07:35:16 EDT 2019


On Fri, Apr 26, 2019 at 3:13 AM Peter Robinson <pbrobinson at gmail.com> wrote:

> On Thu, Apr 25, 2019 at 7:20 PM Walter Bender <walter.bender at gmail.com>
> wrote:
>
>> gives us a year.. hopefully we'll make great strides during GSoC 2019
>>
>
> Except it doesn't really. There are other things that are being actively
> removed. For example the python2 bindings for xapian, which is used by
> sugar-datastore, fails to build because one of it's build deps rebased to a
> new major version that dropped python2 support.
>

Obviously this is in the critical path.

>
> We really need to have the core sugar running as python3 in Fedora 31, in
> time for Beta which freezes late August, and core Activities moved over
> with just the stragglers and cleanup for for Fedora 32.
>
> So it gives us a year to complete it all, we really need to have the major
> pieces done by late summer.
>
> To begin this how many of the Activities that care about the old GTK2
> sugar-toolkit do we care about:
>
> # dnf repoquery --whatrequires sugar-toolkit
> sugar-castle-0:23-12.fc29.noarch
> sugar-connect-0:22-23.fc30.noarch
> sugar-countries-0:33-16.fc30.noarch
> sugar-deducto-0:9-13.fc29.noarch
> sugar-flipsticks-0:13-13.fc30.noarch
> sugar-kuku-0:5-8.fc29.noarch
> sugar-labyrinth-0:16-11.fc30.noarch
> sugar-playgo-0:5-20.fc30.noarch
> sugar-srilanka-0:3-8.fc29.noarch
> sugar-starchart-0:16-9.fc29.noarch
> sugar-view-slides-0:8-20.fc30.noarch
> sugar-xomail-0:0-0.19.20090128.fc30.noarch
>
> Most of these should be pretty straight-forward to migrate. With the
exception of labyrinth, none seem mission critical. But all of them would
be nice.


> If there's ones there we don't think will be migrated to gtk3 we should
> just retire them now in Fedora 31 and cross them off the list.
>
> Peter
>
> [1] https://fedoraproject.org/wiki/Releases/31/Schedule
>
> 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>
>> _______________________________________________
>> SoaS mailing list
>> SoaS at lists.sugarlabs.org
>> http://lists.sugarlabs.org/listinfo/soas
>>
> _______________________________________________
> 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/20190426/2bcbe239/attachment-0001.html>


More information about the SoaS mailing list