You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tag releases are unordered and unprotected: :latest moves before smoke tests and crates.io, with no rollback or tag ruleset #126
A v* tag starts three independent workflows (container-image.yml, publish.yml, release-builds.yml) with no ordering, shared gate or rollback.
container-image.yml pushes :<version>and:latest, then runs smoke-verify, including the tag-versus-binary version check, after :latest has already moved. Nothing rolls it back.
The repository has no rulesets and main is unprotected (checked 2026-10-08), so anyone with write access can push v* from any commit and repoint :latest.
workflow_dispatch from any branch overwrites :nightly.
Proposal:
One release workflow, or chained workflows with needs::
verify the tag against Cargo.toml before any push;
push :<version> only, and smoke-test it anonymously by digest;
publish the crate and attach release assets;
only then promote :latest by digest (docker buildx imagetools create), and only for non-prerelease versions.
A tag ruleset restricting who can create v*, protection on main and develop, and a tag-only deployment policy on the cargo environment.
The image and release half landed in #129 (merged as 3440c0d): a gate job (version, main ancestry, fail-closed republish check), :-only pushes, anonymous digest smoke tests, serialized highest-stable :latest promotion, and the GitHub release created only after the image passed. Still open here: crates.io ordering (waits on #121) and the tag ruleset / branch protection settings.
Activity
magnificentlycursed commentedon Oct 9, 2026
The image and release half landed in #129 (merged as 3440c0d): a gate job (version, main ancestry, fail-closed republish check), :-only pushes, anonymous digest smoke tests, serialized highest-stable :latest promotion, and the GitHub release created only after the image passed. Still open here: crates.io ordering (waits on #121) and the tag ruleset / branch protection settings.
Authored by Claude Code on behalf of @magnificentlycursed.