Skip to content

feat: implement PEP 792 project status markers #18422

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

woodruffw
Copy link
Member

This adds PEP 792 status markers to the HTML and JSON simple APIs.

The approach I went with here is to add a new ProjectStatusMarker enum that maps from LifecycleStatus -- I figured that would easier to follow/maintain than trying to shoehorn these statuses more deeply into PyPI's concept of "lifecycle," which is a behavioral superset of what PEP 792 intends to model.

I've also gone ahead and unconditionally rendered the project status in both APIs, instead of omitting it in the active case (which the PEP permits) -- this makes the implementation a bit shorter and (IMO) easier to follow. But I'm happy to tweak this as well, of course 🙂

I'll also include some updates to the API docs as part of this PR.

Closes #18415.

@woodruffw woodruffw marked this pull request as ready for review July 25, 2025 23:40
@woodruffw woodruffw requested a review from a team as a code owner July 25, 2025 23:40
@woodruffw woodruffw self-assigned this Jul 25, 2025
@woodruffw
Copy link
Member Author

(NB: I started with unit tests, but I'm happy to add functional/integration tests here too. It might be nice to use this opportunity to add some inline snapshots to the functional tests.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement PEP 792 (Project status markers)
1 participant