fix: allow Python 3.14 installation - #1351
Conversation
|
Thanks for picking this up — the direction is right, and the The Why the 3.14 job failedThe cause is not Python 3.14 or Reproduction on Python 3.14 — same package, only the env var differs: $ SETUPTOOLS_USE_DISTUTILS=stdlib uv pip install stringcase==1.2.0
ModuleNotFoundError: No module named 'distutils'
$ uv pip install stringcase==1.2.0
Building stringcase==1.2.0
Built stringcase==1.2.0
+ stringcase==1.2.0So removing (or version-scoping) that env var should make the job pass. It's also set in Two other things needed before this can mergeThe lock files are stale. Both still record $ uv lock --check # root
The lockfile at `uv.lock` needs to be updated, but `--check` was provided.
$ cd packages/main && uv lock --check
The lockfile at `uv.lock` needs to be updated, but `--check` was provided.Without regenerating them, 3.14 still won't resolve, so #1348 wouldn't actually be fixed. You mentioned resolution stalled in your environment — happy to regenerate them if that's still blocking you. This branch predates the security merge. Its merge-base is e8d1f1a, but master is now at 6e45621 (#1350, which bumped pillow/cryptography/pypdf and friends). Rebasing first means the regenerated locks pick up the patched versions rather than reverting them. Related, but not for this PR
Suggested scope for this PR: the metadata change you have, plus dropping |
|
Small correction to my comment above: the O365 consumer is |
7f23037 to
b766d43
Compare
|
Verified and addressed the requested scope: rebased onto current master, removed SETUPTOOLS_USE_DISTUTILS=stdlib from the main and docs workflows, regenerated both lock files, and verified Python 3.14 resolution with uv sync --dry-run. The O365 upgrade remains out of scope as requested. |
Related issue
Fixes #1348.
Background
The root project and
rpaframeworkpackage declared Python support as<3.14, so pip rejected Python 3.14 installations even though the dependency set supports Python 3.14.Changes
<3.14upper bound from the root and main package metadata.SETUPTOOLS_USE_DISTUTILS=stdliboverride from the main and docs workflows.packages/mainlock files after rebasing onto currentmaster.Compatibility
This expands the declared supported Python versions and does not change runtime behavior for existing Python versions. Removing the obsolete distutils override allows modern setuptools to build legacy source distributions on Python 3.14.
Verification
uv lock— passed for the root project.uv lock— passed forpackages/main.uv lock --check— passed for the root project.uv lock --check— passed forpackages/main.uv sync --project packages/main --python C:\\Users\\mikemikimike\\AppData\\Local\\Programs\\Python\\Python314\\python.exe --dry-run— passed; resolved 170 packages and selected Python 3.14-compatible artifacts.tomllib— passed.git diff --check— passed.The full test suite was not run because the change is limited to package metadata, lock files, and CI environment configuration; the new Python 3.14 dependency resolution was validated with the dry-run install above.