Use image revisions with versioned release aliases - #16
Merged
Merged
Conversation
Opt in to one increasing rN release sequence per repository and document image revisions separately from upstream software versions. Update applicable publishing and build inputs while retaining legacy tags and build argument compatibility.
Keep major and minor tags on the repository release counter. Add a full-version revision counter starting at r0 and matching annotated Git aliases for every published versioned revision tag. Run the pinned shared publisher after all image publishing jobs succeed, verify manifest digests, and prevent alias tags from triggering builds. Preserve legacy release behavior and document the tag mapping.
Describe previously published image tags without referring to semantic versioning. Keep their availability and the image revision tag mapping unchanged.
Document r0 as the first image revision. Pin the shared alias publisher that accepts r0 primary releases and parent pins.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Image release numbering can be confused with the upstream software version. This change uses repository-wide image revisions for major/minor tags, such as
3.14-r23, and a separate counter starting atr0for each complete upstream version, such as3.14.7-r0. Primary Git releases start atr0. Major, minor, and full-version aliases therefore all start atr0for the first release; the workflow pins the shared publisher that supports this starting point.Every published major, minor, and full-version revision tag gets a matching annotated Git alias pointing to the primary
rNrelease commit. The pinned shared publisher runs after all publishing jobs succeed, copies full-version aliases by digest, verifies the result, and publishes the Git aliases. Workflow filters and publisher guards prevent aliases from triggering another build.Previously published tags, floating tags, and legacy Makefile inputs retain their supported behavior. Document the tag mapping and keep the version selectors alongside the publishing matrix.
Merge the shared updater and alias publisher first. Create revision releases from the default branch after merging this change. Existing revision tags remain available after support for their major or minor version ends.
Validation: the offline publisher harness passes for this repository with
r0,r1,r23, legacy release, applicable variants, feature refs, and major/minor/full-version alias refs. Version mappings resolve; actionlint, shell syntax, andgit diff --checkpass. The shared publisher has tests for counter resets, retries, interrupted publication, and conflicting tags, plus digest-copy checks against a local registry. No public images or release tags were published.