Subject: [bug#63139] [PATCH python 00/20] Updates for pyproject-build-system, poetry, python-yubikey-manager

From: John Kehayias <[email-masked]>
Date: Fri, 28 Apr 2023 05:44:42 +0000

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/63044 though I have not looked at it.

Thanks!
John

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(-)

base-commit: aecc6e70587f8412cbbb9b2c13141de4f534518e
--
2.39.2