Uh oh!
There was an error while loading. Please reload this page.
Address post-merge review feedback on immutable per-arch tags - #43
Conversation
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds safer and more controllable backfilling of immutable per-arch Docker snapshot tags by supporting an explicit iteration override and refusing to repoint existing immutable tags.
Changes:
- Add
--iterationoption and centralize iteration resolution with a prominent operator warning. - Refuse to repoint an existing immutable snapshot tag if it already exists with a different digest (immutability guard).
- Expand unit tests and update release/publish documentation to reflect the new behavior.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit/test_backfill_iteration_tags.py | Adds coverage for explicit iteration, negative iteration rejection, and immutability conflict behavior. |
| scripts/lib/gh_cli.py | Updates docstring to clarify how release branch tags prevent iteration reuse during review. |
| scripts/backfill_iteration_tags.py | Implements --iteration, iteration resolution/warning, and digest-match vs repoint-fail logic. |
| RELEASE.md | Documents immutability guarantees and rerun behavior, including why rebuilds can’t repoint published snapshots. |
| .github/workflows/publish.yml | Updates comments to match current tag/manifest job behavior. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Follow-up to @leighmcculloch's review comments left on #41 after it merged.
v<cli>[-N]release failed before pushing images, the live per-arch tags still hold an earlier iteration's content. Adds an--iterationoverride, a warning when auto-resolving, and makes the "already exists" path fail loudly on a digest mismatch instead of silently skipping.:<version>-<N>tag "published by the aliases job" — the tags are:<cli>-rust<key>-<arch>-<N>, minted by themanifestjob.buildproduces a new digest and themanifestjob refuses to re-point — cut a new iteration instead.Tests:
uv run pytest(230 passed),ruff checkandruff format --checkclean.