pyproject: fix the declared Python floor and the license form - #24
Merged
Merged
Conversation
eroussy
approved these changes
Sep 14, 2026
Two metadata defects, left untouched by #22 because both depend on what the project is supported on rather than on what the code tolerates. requires-python claimed ">=3.6". The package cannot run on 3.6: check.py and ovs.py call subprocess.run with capture_output, an argument added in 3.7, so system_check and clear_ovs raise TypeError there. The real floor is at least 3.7, and 3.7 and 3.8 are both end of life and absent from the GitHub runners, so neither can be tested. Declare ">=3.9", the lowest version the CI matrix actually verifies. Every live deployment target is above it: Debian trixie ships 3.13, Yocto wrynose 3.14, and the oldest manifest still around, kirkstone, 3.10. license was a TOML table, which setuptools deprecates in favour of a plain SPDX expression. The build printed a SetuptoolsDeprecationWarning on every run announcing removal by 2027-02-18. Use the string form together with license-files, and raise the build-system requirement to setuptools 77, the release that introduced both. The metadata now says License-Expression: Apache-2.0 under Metadata-Version 2.4, and the LICENSE file is still shipped in the wheel. The build is warning-free and stays byte-for-byte reproducible under SOURCE_DATE_EPOCH. The setuptools bump is safe for the two maintained targets, which is what matters here: both Ansible roles install with --no-build-isolation, so build-system requires is not honoured on target and the setuptools already present is the one that counts. Debian trixie ships 78.1.1 and Yocto wrynose 82.0.1, both above 77. Signed-off-by: Florent Carli <florent.carli@rte-france.com>
insatomcat
force-pushed
the
fix/packaging-metadata
branch
from
September 14, 2026 11:43
2b4cf5c to
e9bee3a
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Second follow-up to #22, which left the packaging metadata alone because both fixes depend on the supported targets. Independent of #23.
requires-pythonsaid>=3.6, which is false.check.py:18andovs.py:76callsubprocess.run(capture_output=...), added in 3.7. Now>=3.9, the lowest version the CI matrix actually verifies. Every live target is above it: Debian trixie 3.13, Yocto wrynose 3.14, kirkstone 3.10.licensewas a deprecated TOML table, warning on every build, removal announced for 2027-02-18. Now the SPDX string pluslicense-files, withbuild-systemraised to setuptools 77.Checked on the built wheel:
License-Expression: Apache-2.0under Metadata 2.4,LICENSEstill shipped, build warning-free, still byte-for-byte reproducible underSOURCE_DATE_EPOCH.The setuptools bump is safe for the maintained targets. Both Ansible roles install with
--no-build-isolation, sobuild-system.requiresis not honoured on target and the installed setuptools is what runs: trixie ships 78.1.1, wrynose 82.0.1, both above 77. kirkstone (59.5.0) and scarthgap (69.1.1) would fail on the string form, and their manifests already pin an olderSRCREV.The CI matrix already runs 3.9 to 3.13, so it matches the new declaration and needs no edit.