-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
What's the problem this feature will solve?
Hello pip maintainers!
TL;DR: I think it'd be great if pip supported PEP 792, which is now final (with a canonical copy). PEP 792 defines standard "project status markers," which are presented as part of index API responses in API versions 1.4 and above. Package installers and other index consumption tools can use these status markers to inform/warn users, e.g. when a project is marked as deprecated
(or quarantined
, in which case the installation will fail shortly anyways due to no dists being offered).
In terms of problems solved:
- Status markers give package downstreams (dependents) a high-quality signal about whether a package might need to be replaced or removed, eliminating the need for heuristics that are currently typically applied (like looking at the project's source repo activity).
- Specifically in the
quarantined
case: status markers make it easier for installers like pip to contextualize any errors the user is about to see due to resolution failure (as quarantine means that the index responds with an empty dist listing).
Describe the solution you'd like
On pip install
, I think pip should emit warnings when it encounters a project in the archived
, quarantined
, or deprecated
state. The appropriate kind of warning to emit is suggested under each state's "installer semantics" in the spec.
(This could probably be done in a manner that minimizes the risk of warning spam, e.g. collecting all statuses and summarizing them only at the end of the pip install
.)
Alternative Solutions
One alternative solution would be for pip to not implement this PEP, since the semantics are entirely optional for the installer 🙂. However, I think users would benefit from having project statuses presented to them.
Additional context
I've opened a similar feature request with uv here: astral-sh/uv#15254
Code of Conduct
- I agree to follow the PSF Code of Conduct.