feat(releases): support a vendor-selected latest version - #46
Merged
Conversation
|
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: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Team 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 |
Merged
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.
Semver ordering currently forces
latestto select the highest eligible version, preventing a vendor from publishing 3.0.0 while recommending 2.8.4. Add an optional signed release-listlatestpointer andpackslip releases --latest VERSION, validating that it exactly names a listed semver version.The specification defines signed vendor pointer → GitHub latest pointer when no signed pointer exists → highest eligible semver. An ineligible recommendation falls directly back to semver, with an explanation. Signature, digest, identity, list freshness/continuity, yanks, age, stamping, and host eligibility still apply; verification errors are not fallback conditions. Ranges and channels keep semver ordering, and stamping lists do not override vendor recommendations.
Includes regenerated schema, CLI reference, and specification page. Tests cover old lists without the field, exact membership (including build metadata), invalid spellings, yanked targets, and signed library/CLI round trips.
Validation: all 58 Rust tests passed; clippy with warnings denied; documentation generation and production build; diff whitespace check. Consumer resolution is specified here; mise still needs to implement this new policy.
Note
Medium Risk
Changes release-list semantics and documents consumer selection behavior that downstream tools must implement consistently; in-repo changes are mostly validation and list authoring.
Overview
Adds an optional list-level
latestfield so vendors can recommend a specific semver for unconstrained “install latest” requests, separate from semver ordering (e.g. ship3.0.0but recommend2.8.4).Publishing:
packslip releases --latest VERSIONwrites the pointer into signed release lists; the field is omitted when unset. Validation requires an exact semver that matches areleases[]entry (unknown versions fail withUnknownLatest); pointing at a yanked release still validates—the spec defines consumer fallback.Spec: New Latest section documents priority (signed list → GitHub latest API → none), eligibility checks, semver fallback, and that verification/list errors are not softened by fallback.
Schema/docs/tests:
releases-v1JSON schema, CLI usage, and mirrored spec docs updated; unit and CLI tests cover round-trip and invalid pointers.Reviewed by Cursor Bugbot for commit 9cb4796. Bugbot is set up for automated code reviews on this repo. Configure here.