[arch-dev-public] Killing python2 v3...v4...v5
Yo! As people know python2 has been unsupported for a year and we current have ~170 python2 packages in our repositories. Currently the removal has been fairly slow and done a bit ad-hoc. There has been a todo list but the follow up to that has not really been great and I think it's reasonable for us to try and fix the remaining packages to the best of our abilities. Thus I'm proposing a game plan! 1) Todo list for removal of all python2 checkdepends in packages 2) Remove free python2 packages 3) Remove packages with python3 equivalents 4) Remove unported and unsupported packages depending on python2 Clearly this is ambitious and there are going to be exceptions, but it would be great to have most of this work done within the next couple of months. The exceptions are largely going to be anything still using python2 for their build system dependencies. This is a fine compromise as this should leave us with a minimal set of packages to take care of. Rest of the problematic packages can be found on a handy list with what fedora is working on: https://fedora.portingdb.xyz/ If there are no objections I'll start preparing the needed todo lists and figure out the uneeded python2 packages. Should probably update the long-standing python2 removal todo as well. https://archlinux.org/todo/conversion-of-programs-that-use-python-2-to-pytho... Cheers! -- Morten Linderud PGP: 9C02FF419FECBE16
On 3/15/21 2:10 PM, Morten Linderud via arch-dev-public wrote:
Yo!
As people know python2 has been unsupported for a year and we current have ~170 python2 packages in our repositories. Currently the removal has been fairly slow and done a bit ad-hoc. There has been a todo list but the follow up to that has not really been great and I think it's reasonable for us to try and fix the remaining packages to the best of our abilities.
Thus I'm proposing a game plan!
1) Todo list for removal of all python2 checkdepends in packages
For the record, I'm not really happy about this since I feel we should endeavor to test all software in the repos. I don't believe python2 should be an exception. I believe we can do this right, though. For example, yesterday you asked me directly about html5lib and its check dependency on the lxml, bs4, soupsieve build cycle dependency. I responded that I don't want to drop the testsuite entirely, however, lxml is an optional treebuilder for html5lib and we only have html5lib in the repos *anyway* due to being used in the leaf package "python2-pip". So, I removed the checkdepends on python2-lxml, excluded the lxml treebuilder tests from the check() function, and stopped advertising lxml support in python2-html5lib: https://git.archlinux.org/svntogit/community.git/commit/trunk?h=packages/python-html5lib&id=872eb6022921c71ef871bd9699f6353262f29b5c However, I did not drop python2-pytest-expect since I need it to test the functionality which pip uses. I would like to continue doing so...
2) Remove free python2 packages 3) Remove packages with python3 equivalents 4) Remove unported and unsupported packages depending on python2
Clearly this is ambitious and there are going to be exceptions, but it would be great to have most of this work done within the next couple of months.
The exceptions are largely going to be anything still using python2 for their build system dependencies. This is a fine compromise as this should leave us with a minimal set of packages to take care of.
Rest of the problematic packages can be found on a handy list with what fedora is working on: https://fedora.portingdb.xyz/
If there are no objections I'll start preparing the needed todo lists and figure out the uneeded python2 packages. Should probably update the long-standing python2 removal todo as well.
https://archlinux.org/todo/conversion-of-programs-that-use-python-2-to-pytho...
Cheers!
-- Eli Schwartz Bug Wrangler and Trusted User
On Mon, Mar 15, 2021 at 02:46:52PM -0400, Eli Schwartz via arch-dev-public wrote:
On 3/15/21 2:10 PM, Morten Linderud via arch-dev-public wrote:
Yo!
As people know python2 has been unsupported for a year and we current have ~170 python2 packages in our repositories. Currently the removal has been fairly slow and done a bit ad-hoc. There has been a todo list but the follow up to that has not really been great and I think it's reasonable for us to try and fix the remaining packages to the best of our abilities.
Thus I'm proposing a game plan!
1) Todo list for removal of all python2 checkdepends in packages
For the record, I'm not really happy about this since I feel we should endeavor to test all software in the repos. I don't believe python2 should be an exception.
I believe we can do this right, though.
For example, yesterday you asked me directly about html5lib and its check dependency on the lxml, bs4, soupsieve build cycle dependency. I responded that I don't want to drop the testsuite entirely, however, lxml is an optional treebuilder for html5lib and we only have html5lib in the repos *anyway* due to being used in the leaf package "python2-pip".
So, I removed the checkdepends on python2-lxml, excluded the lxml treebuilder tests from the check() function, and stopped advertising lxml support in python2-html5lib:
However, I did not drop python2-pytest-expect since I need it to test the functionality which pip uses.
I would like to continue doing so...
I think investigating and fixing these cycles we have is a waste of time. You asked for an example, you got it and you fixed it. Great! Was this one time thing or are you going to keep looking for more packages you can remove this way? What about other packagers that simply does not want to spend the time? The point is that this just increases the effort needed to contribute killing off the python2 packages we have. The loss of correctness for making it easier to remove python2 packages is a net win. And keep in mind a minimum of people are actively trying to remove packages at all. It's important to realize that removing the checkdependencies makes it *so* *much* *easier* to reason about dependency tree as the cycles are broken. -- Morten Linderud PGP: 9C02FF419FECBE16
On 15/03/2021 19:10, Morten Linderud via arch-dev-public wrote:
Yo!
As people know python2 has been unsupported for a year and we current have ~170 python2 packages in our repositories. Currently the removal has been fairly slow and done a bit ad-hoc. There has been a todo list but the follow up to that has not really been great and I think it's reasonable for us to try and fix the remaining packages to the best of our abilities.
Thus I'm proposing a game plan!
1) Todo list for removal of all python2 checkdepends in packages 2) Remove free python2 packages 3) Remove packages with python3 equivalents 4) Remove unported and unsupported packages depending on python2
Clearly this is ambitious and there are going to be exceptions, but it would be great to have most of this work done within the next couple of months.
The exceptions are largely going to be anything still using python2 for their build system dependencies. This is a fine compromise as this should leave us with a minimal set of packages to take care of.
Rest of the problematic packages can be found on a handy list with what fedora is working on: https://fedora.portingdb.xyz/
If there are no objections I'll start preparing the needed todo lists and figure out the uneeded python2 packages. Should probably update the long-standing python2 removal todo as well.
FYI, A list of packages in our repository that require python2 but are not required by anything else: wesnoth wifite android-tools arduino dia geda-gaf ghidra gif2png john opensips pycharm-community-edition python-pywal 389-ds-base dia distorm geda-gaf grafana-zabbix i810-dri mach64-dri mattermost mga-dri pypy3 Greetings, Jelle van der Waa
On Mon, Mar 15, 2021 at 09:39:12PM +0100, Jelle van der Waa via arch-dev-public wrote:
FYI,
A list of packages in our repository that require python2 but are not required by anything else:
wesnoth wifite android-tools arduino dia geda-gaf ghidra gif2png john opensips pycharm-community-edition python-pywal 389-ds-base dia distorm geda-gaf grafana-zabbix i810-dri mach64-dri mattermost mga-dri pypy3
I believe `crda` as well. Which is in core and shouldn't(?) be needed anymore. -- Morten Linderud PGP: 9C02FF419FECBE16
On Mon, Mar 15, 2021 at 09:49:16PM +0100, Morten Linderud via arch-dev-public wrote:
On Mon, Mar 15, 2021 at 09:39:12PM +0100, Jelle van der Waa via arch-dev-public wrote:
FYI,
A list of packages in our repository that require python2 but are not required by anything else:
wesnoth wifite android-tools arduino dia geda-gaf ghidra FWIW, this is an optdepend, and I think can be moved to py3...
participants (4)
-
Eli Schwartz
-
Jelle van der Waa
-
Morten Linderud
-
Santiago Torres-Arias