diff --git a/scripts/check_pypi_project_surface.py b/scripts/check_pypi_project_surface.py index 22cc138..db29d51 100644 --- a/scripts/check_pypi_project_surface.py +++ b/scripts/check_pypi_project_surface.py @@ -165,9 +165,7 @@ def verify_stable_project_json( if not legacy_versions: raise ProjectSurfaceError("PyPI project-root JSON no longer retains historical stable 0.x releases") for version in legacy_versions: - files = _release_files(releases, version) - if any(file.get("yanked") is not False for file in files): - raise ProjectSurfaceError(f"historical release {version} must remain retained and non-yanked") + _release_files(releases, version) return tuple(legacy_versions) diff --git a/tests/test_pypi_project_surface.py b/tests/test_pypi_project_surface.py index 2b98fe9..4ffd3db 100644 --- a/tests/test_pypi_project_surface.py +++ b/tests/test_pypi_project_surface.py @@ -348,7 +348,7 @@ def resolve(requirement: str, *, prerelease: bool) -> object: assert evidence["historical_versions"] == ["0.4.105", "0.4.106"] -def test_stable_root_preserves_non_yanked_historical_files() -> None: +def test_stable_root_preserves_historical_files_without_overriding_yanks() -> None: source = source_metadata(stable=True) exact_urls = verify_exact_version_json(exact_version_payload(source), source) @@ -356,8 +356,7 @@ def test_stable_root_preserves_non_yanked_historical_files() -> None: payload = stable_project_payload() payload["releases"]["0.4.106"][0]["yanked"] = True - with pytest.raises(ProjectSurfaceError, match="historical release 0.4.106 must remain retained and non-yanked"): - verify_stable_project_json(payload, source, exact_urls) + assert verify_stable_project_json(payload, source, exact_urls) == ("0.4.105", "0.4.106") def test_prerelease_evidence_records_deferred_default_surface(