-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
What's the problem this feature will solve?
Pip continues to ship breaking changes. That is fine, it's great that it moves forward as a project, but we need some control to which pip versions downstream projects support without manual steps for our users.
For instance, in pip 22.1 the following breaking changes came in:
in-tree-build
is now the default, the option was dropped- a better approach would have been to keep the option and just warn that it is the default now
- everyone that transitioned already, as pip recommended, and uses
pip
programmatically with that option errors out now with:
option --use-feature: invalid choice: 'in-tree-build' (choose from '2020-resolver', 'fast-deps')
--no-build-isolation
breaks if build dependencies are not installed- was always documented but not done that way
- there is no way I can find to only install build dependencies from
pyproject.toml
In order to not break CI and user workflows uncontrollably on release days of pip
, we need a way to express the supported pip range, e.g., in pyproject.toml
#4145
Describe the solution you'd like
Let projects somewhere declare the working pip versions, so we have a chance to adopt to the breaking changes.
Alternative Solutions
I currently only have a way forward, documenting all my users to always use the latest pip
because I use pip
embedded in complex build scripts.
I probably can try to transition complex build logic away from pip and use build
and packaging
once they are mature?
Additional context
- Require minimum pip version? #4145
- Validate build dependencies when using
--no-build-isolation
#9794 - Fix Breaking Pip 22.1 Logic BLAST-WarpX/warpx#3106
Code of Conduct
- I agree to follow the PSF Code of Conduct.