Repository navigation
Relax build dependency pins to a floor/ceiling range - #288
Conversation
cd985a9 to
9359ef8
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #288 +/- ##
=======================================
Coverage 95.29% 95.29%
=======================================
Files 1 1
Lines 638 638
=======================================
Hits 608 608
Misses 30 30 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@oneorseveralcats does this match your needs? |
rgaudin
left a comment
There was a problem hiding this comment.
Hum, we already define those versions twice in pyproject.toml already. Adding it a third time looks silly.
We could read it via TOML instead.
Could you look into also getting rid of one version in pyproject?
Last, I'd not touch the delocate thing since it's pinned exactly because new versions don't work.
|
@benoit74 Yeah, that should be perfect. Thanks so much! |
ee09045 to
9d9a644
Compare
|
Added a script to not repeat versions a third time. Checked again why we need to have versions two times: this is mandatory, see comment for details. Added a script to check the two versions are aligned + added a comment explaining it must be kept in sync. |
Switch setuptools, wheel and cython from exact == pins to >=floor,<next_major ranges in build-system.requires and the build extra, easing downstream packaging (e.g. nixpkgs) without opening the door to an untested future major. delocate stays exactly pinned since it's used for a narrow, internal-API purpose (setup.py's Windows DLL repair step) rather than its documented public API. Add CI jobs to keep this honest: - build-floor-versions (Tests.yaml) installs the floor pins derived from pyproject.toml by scripts/floor_versions.py and builds/tests against them with --no-build-isolation, so the stated minimum is verified rather than assumed. - check-build-deps-sync (QA.yaml, via scripts/check_build_deps_sync.py) fails if build-system.requires and the build extra ever drift apart, since PEP 518 forces that duplication and nothing else guards it. Closes #268
9d9a644 to
a39aa6e
Compare
Summary
setuptools,wheel,cythonanddelocatefrom exact==pins to>=floor,<next_majorranges inbuild-system.requiresand thebuildextra, so downstream packagers (e.g. nixpkgs, distro packages) aren't forced onto one exact patch version.build-floor-versions) that installs the floor versions explicitly and builds/tests against them with--no-build-isolation, so the stated minimum is verified rather than assumed.Closes #268