Hi Guix and Python team,
Here is a patch series where the original goal was to fix python-yubikey-manager on core-updates and then ballooned to a bit more. This should be done in a feature branch for Python.
Mostly this was to fix/update the needed dependencies, though it may be possible to do this in a more minimal way just for that package fix. Anyway, I tried to generate this series in a way that each patch continues to fix things, but due to the complicated dependencies this may not be perfect.
A few notes:
1. Most of the series is pretty trivial, quick fixes/updates, some new packages.
2. What isn't is a few cases of failing tests which weren't immediately obvious to me and likely were some network access and/or build environment details. Some could be worked around maybe if someone wants to try (e.g. in python-virtualenv). I did enable more tests along the way though (like for poetry), so on the whole I think this is a step forward.
3. The dependents tend to be maybe 10s, a few in the hundreds, and then about 3k for python-filelock. Until we get to pyproject-build-system updates:
4. I believe it was poetry that needed a newer python-pypa-build module, which then touches all pyproject-build-system (about 6k packages). This isn't strictly necessary as we could have a newer and separate package for leafs to use rather than in the build system as well, but I figured might as well do it sooner rather than later. At least the packages up to python-yubikey-manager built with this along with some random others.
5. On that note, I did not complete this change as I wanted some feedback on the bootstraping. I've added python-pyproject-hooks which should deprecate pep517, but currently it also needs python-pypa-build. I've made the older python-pypa-build a -bootstrap package to build this and the newer version of itself as well. So I did not deprecate pep517 yet.
Also, python-wheel was a propagated-input in pep517 which is not needed in pyproject-hooks. However, I saw at least some packages will then need that as an input to build; so I kept it for pyproject-hooks to ease testing. It should be removed and added as an input as needed (no idea if that is just a few or a lot of the tree).
Okay, I think those are my notes. We should see what other things are ready to be made into this feature branch for Python. One brought to my attention recently is https://issues.guix.gnu.org/63044though I have not looked at it.
John Kehayias (20):
gnu: Add python-installer.
gnu: Add python-pyproject-hooks.
gnu: Add python-rapidfuzz.
gnu: python-crashtest: Update to 0.4.1.
gnu: python-cleo: Update to 2.0.1.
gnu: Add python-deepdiff.
gnu: python-platformdirs: Update to 3.2.0.
gnu: python-filelock: Update to 3.12.0.
gnu: python-distlib: Update to 0.3.6.
gnu: python-virtualenv: Update to 20.22.0.
gnu: python-pkginfo: Update to 1.9.6.
gnu: python-jsonschema: Update to 4.17.3.
gnu: python-dulwich: Update to 0.21.3.
gnu: Update python-pypa-build to 1.0.0.
gnu: poetry: Fix build.
gnu: Add python-poetry-plugin-export.
gnu: python-pyscard: Update to 2.0.7.
gnu: python-fido2: Update to 1.1.1 and enable tests.
gnu: Add python-makefun.
gnu: python-yubikey-manager: Update to 5.1.0 and enable tests.
gnu/packages/python-build.scm | 80 +++++++-
gnu/packages/python-xyz.scm | 319 +++++++++++++++++++++++++-------
gnu/packages/security-token.scm | 61 +++---
3 files changed, 370 insertions(+), 90 deletions(-)