Closed rossburton closed 1 year ago
Also, wheel
was never needed in the build deps in the first place.
Specifically, specifying exactly setuptools 41.4.x
~= 41.4
actually means >= 41, < 42
.
FWIW I'd welcome a constraint file generated by pip-tools
and assigned to to the PIP_CONSTRAINT
env var where python -m build
is called. A PoC implementation of such an approach can be looked up in the Cheroot project.
In general, though, the build requirements are scoped to just a single package, meaning that the current setup is not inherently bad and just works.
Sorry, but why do you feel like you have to pin setuptools? Is this for some compatibility reasons? This is actively causing issues for downstreams packaging this project.
@nanonyme probably the reasons are no longer relevant, so I think it is safe to unpin them and see how the CI behaves. Would you like to open a PR with that?
Yeah, I don't know why it's pinned (it might've been related to how setuptools from the system install sometimes leaks into the "isolated" build venv causing wierd side effects) but I know that the downstreams have standardized tooling to patch such things out so that'd be the first thing I'd suggest.
In general, I'd prefer having a constraint file passed via the PIP_CONSTRAINT
env var used in CI/CD/release automation, which greatly contributes to the stability/reproducibility/etc. (I have a PoC of this in the Cheroot project, for example). The direct build deps should be constrained only according to the features that are in used and only have lower bounds set.
The current
requires
inpyproject.toml
are quite old:Specifically, specifying exactly setuptools 41.4.x is problematic as it behaves quite differently to a modern setuptools.