Skip to content

Allow intentional historical PyPI yanks - #53

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/pypi-historical-yank
Sep 2, 2026
Merged

Allow intentional historical PyPI yanks#53
rmcdaniel merged 1 commit into
mainfrom
fix/pypi-historical-yank

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Summary

  • keep the current stable release selection and non-yanked checks strict
  • require historical 0.x files to remain retained without rejecting intentional safety yanks
  • cover the historical-yank behavior with a regression test

Why

The 2.0.1 publish uploaded and verified the current artifact, then the project-surface audit rejected the intentionally yanked 0.1.0 release. Yanked releases remain part of PyPI history and exact-version metadata; requiring known-defective historical releases to be non-yanked is the wrong invariant.

Verification

  • python -m pytest -q tests/test_pypi_project_surface.py (15 passed)
  • python -m ruff check scripts/check_pypi_project_surface.py tests/test_pypi_project_surface.py
  • git diff --check

@rmcdaniel
rmcdaniel merged commit fe4b059 into main Sep 2, 2026
12 checks passed
@rmcdaniel
rmcdaniel deleted the fix/pypi-historical-yank branch September 2, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants