Verify every TUI PyPI wheel after upload - #10267
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
The stable TUI PyPI publisher preflighted each of the six immutable wheels, but after
gh-action-pypi-publishit did not verify that every wheel was visible with the exact build bytes. A successful upload could therefore leave a partial or mismatched registry state unreported.The publisher now performs a bounded post-upload reconciliation for all six local wheels. It uses PyPI JSON
digests.sha256through the existing registry reconciler, passes the complete six-wheel allowed set, waits up to 120 seconds for propagation, and requiresMATCH. Any missing, unexpected, yanked, or mismatched file fails the job. The step never republishes.The npm path is unchanged. It already uses exact post-write reconciliation for all five packages.
Regression sequence
b193150277adds the failing workflow contract.7c8e413073adds the post-upload six-wheel check.Verification
actionlint .github/workflows/tui-publish-pypi.yml .github/workflows/tui-publish-npm.ymlpython3 -m pytest -q tests/test_tui_publish_workflow_security.py(67 passed)python3 -m unittest cmux-tui/bindings/tests/test_reconcile_registry_artifact.py -q(55 passed)python3 -m pytest -q tests/test_tui_package_contract.py tests/test_tui_npm_package_artifact.py(9 passed)git diff --checkNeed help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Verifies every TUI PyPI wheel after upload and fails on any mismatch. Previously the publisher preflighted six wheels but did not confirm the post-upload registry state, which could leave partial or mismatched releases unreported.
Review notes
digests.sha256viacmux-tui/bindings/reconcile_registry_artifact.py.Written for commit 7c8e413. Summary will update on new commits.