pytest-dev / pytest-forked

extracted --boxed from pytest-xdist to ensure backward compat
MIT License
62 stars 21 forks source link

Update requirements #77

Closed rossburton closed 1 year ago

rossburton commented 1 year ago

The current requires in pyproject.toml are quite old:

requires = ['setuptools ~= 41.4', 'setuptools_scm ~= 3.3', 'wheel ~= 0.33.6']

Specifically, specifying exactly setuptools 41.4.x is problematic as it behaves quite differently to a modern setuptools.

webknjaz commented 1 year ago

Also, wheel was never needed in the build deps in the first place.

webknjaz commented 1 year ago

Specifically, specifying exactly setuptools 41.4.x

~= 41.4 actually means >= 41, < 42.

webknjaz commented 1 year ago

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.

webknjaz commented 1 year ago

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.

nanonyme commented 1 year ago

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.

nicoddemus commented 1 year ago

@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?

webknjaz commented 1 year ago

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.