<div dir="ltr"><div dir="ltr"></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 26, 2019 at 3:13 AM Peter Robinson <<a href="mailto:pbrobinson@gmail.com">pbrobinson@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 25, 2019 at 7:20 PM Walter Bender <<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">gives us a year.. hopefully we'll make great strides during GSoC 2019</div></blockquote><div><br></div><div>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.<br></div></div></div></div></div></blockquote><div><br></div><div>Obviously this is in the critical path. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div></div><div><br></div><div>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.</div><div><br></div><div>So it gives us a year to complete it all, we really need to have the major pieces done by late summer.<br></div><div> </div><div>To begin this how many of the Activities that care about the old GTK2 sugar-toolkit do we care about:</div><div><br></div><div># dnf repoquery --whatrequires sugar-toolkit<br>sugar-castle-0:23-12.fc29.noarch<br>sugar-connect-0:22-23.fc30.noarch<br>sugar-countries-0:33-16.fc30.noarch<br>sugar-deducto-0:9-13.fc29.noarch<br>sugar-flipsticks-0:13-13.fc30.noarch<br>sugar-kuku-0:5-8.fc29.noarch<br>sugar-labyrinth-0:16-11.fc30.noarch<br>sugar-playgo-0:5-20.fc30.noarch<br>sugar-srilanka-0:3-8.fc29.noarch<br>sugar-starchart-0:16-9.fc29.noarch<br>sugar-view-slides-0:8-20.fc30.noarch<br>sugar-xomail-0:0-0.19.20090128.fc30.noarch<br></div><div><br></div></div></div></div></div></blockquote><div>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.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div></div><div>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.</div><div><br></div><div>Peter<br></div><div><br></div><div>[1] <a href="https://fedoraproject.org/wiki/Releases/31/Schedule" target="_blank">https://fedoraproject.org/wiki/Releases/31/Schedule</a><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 25, 2019 at 2:09 PM Alex Perez <<a href="mailto:aperez@alexperez.com" target="_blank">aperez@alexperez.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">FYI<br>
<div class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-forward-container"><br><br>-------- Forwarded Message 
--------<table class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-email-headers-table" cellspacing="0" cellpadding="0" border="0"><tbody><tr><th valign="BASELINE" nowrap align="RIGHT">Subject: </th><td>Fedora 32 System-Wide 
Change proposal: Retire Python 2</td></tr><tr><th valign="BASELINE" nowrap align="RIGHT">Date: </th><td>Wed, 24 Apr 2019 17:04:39 
-0400</td></tr><tr><th valign="BASELINE" nowrap align="RIGHT">From:
 </th><td>Ben Cotton <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-rfc2396E" href="mailto:bcotton@redhat.com" target="_blank"><bcotton@redhat.com></a></td></tr><tr><th valign="BASELINE" nowrap align="RIGHT">Reply-To: </th><td><a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-abbreviated" href="mailto:devel@lists.fedoraproject.org" target="_blank">devel@lists.fedoraproject.org</a></td></tr><tr><th valign="BASELINE" nowrap align="RIGHT">To: </th><td>Development
 discussions related to Fedora <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-rfc2396E" href="mailto:devel@lists.fedoraproject.org" target="_blank"><devel@lists.fedoraproject.org></a>, 
<a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-abbreviated" href="mailto:devel-announce@lists.fedoraproject.org" target="_blank">devel-announce@lists.fedoraproject.org</a></td></tr></tbody></table>
<br><br><pre><a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://fedoraproject.org/wiki/Changes/RetirePython2" target="_blank">https://fedoraproject.org/wiki/Changes/RetirePython2</a>

== 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: <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-rfc2396E" href="mailto:mhroncok@redhat.com" target="_blank"><mhroncok@redhat.com></a> <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-rfc2396E" href="mailto:python-devel@lists.fedoraproject.org" target="_blank"><python-devel@lists.fedoraproject.org></a>

== 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: [<a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://pagure.io/releng/issue/8306" target="_blank">https://pagure.io/releng/issue/8306</a> #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 [<a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/" target="_blank">https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/</a>
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 -- <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-abbreviated" href="mailto:devel-announce@lists.fedoraproject.org" target="_blank">devel-announce@lists.fedoraproject.org</a>
To unsubscribe send an email to <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-abbreviated" href="mailto:devel-announce-leave@lists.fedoraproject.org" target="_blank">devel-announce-leave@lists.fedoraproject.org</a>
Fedora Code of Conduct: <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://getfedora.org/code-of-conduct.html" target="_blank">https://getfedora.org/code-of-conduct.html</a>
List Guidelines: <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://fedoraproject.org/wiki/Mailing_list_guidelines" target="_blank">https://fedoraproject.org/wiki/Mailing_list_guidelines</a>
List Archives: <a class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail-m_9031286205482799466moz-txt-link-freetext" href="https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org" target="_blank">https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org</a>
</pre>
</div>
</div>
_______________________________________________<br>
SoaS mailing list<br>
<a href="mailto:SoaS@lists.sugarlabs.org" target="_blank">SoaS@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/soas" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/soas</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_3859953258111808476gmail-m_-2336130335296074186gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div>
_______________________________________________<br>
SoaS mailing list<br>
<a href="mailto:SoaS@lists.sugarlabs.org" target="_blank">SoaS@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/soas" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/soas</a><br>
</blockquote></div></div></div></div>
_______________________________________________<br>
SoaS mailing list<br>
<a href="mailto:SoaS@lists.sugarlabs.org" target="_blank">SoaS@lists.sugarlabs.org</a><br>
<a href="http://lists.sugarlabs.org/listinfo/soas" rel="noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/soas</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><font><font>Walter Bender</font></font><br><font><font>Sugar Labs</font></font></div><div><font><a href="http://www.sugarlabs.org" target="_blank"><font>http://www.sugarlabs.org</font></a></font><br><a href="http://www.sugarlabs.org" target="_blank"><font></font></a><br></div></div></div></div>