Fill the whole version gap when bumping wgc#7
Open
gausie wants to merge 1 commit into
Open
Conversation
Derive the ordered list of versions between the formula's current version and the dispatched target, then build a bottle and land a commit for each one oldest-first instead of jumping straight to the target and skipping the in-between releases.
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.
What
bump-wgc.ymlpreviously bumped the formula to exactly the dispatched target version. When several wgc versions are released close together, every version between the tap's current formula version and the target got skipped — no formula commit, no bottle.This makes the tap derive the gap itself and build/publish the whole range, oldest-first, each with its own bottle.
How
CURfromFormula/wgc.rb, resolvesT(client_payload.version||inputs.version||npm view wgc version), and computes the orderedMISSINGlist of all stablex.y.zversions strictly> CURand<= Tvia semversort -V. Computes url + sha256 per version once. Emitschanged, ametaJSON map, and a buildmatrix(MISSING × [macos-14, ubuntu-latest]).fromJSON(needs.resolve.outputs.matrix), parameterised per matrix entry. Ensures a per-versionwgc-<version>release exists, uploads that version's bottle tarball, and uploads bottle JSON asbottle-json-<version>-<os>.MISSINGascending: perl-edits the formula to each version's url/sha, merges that version's bottle JSONs, and commitswgc <version>. Pushes once at the end.Concurrency group (
bump-wgc,cancel-in-progress: false), theworkflow_dispatchversion input, and the npm-tarball / brew bottle mechanics are unchanged. The 24h cooldown stays enforced cosmo-side, so any version<= Tis safe to build.Testing
Dry-ran the resolve/publish shell against the live npm version list (no brew/releases/push):
CUR=0.122.0, target0.125.0→MISSING = 0.123.0, 0.124.0, 0.125.0; matrix = 6 entries; publish order ascending.CUR == T) →changed=false.