Skip to content

Support for PEP 792 #13543

@woodruffw

Description

@woodruffw

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:

  1. 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).
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions