Skip to content

Fill the whole version gap when bumping wgc#7

Open
gausie wants to merge 1 commit into
mainfrom
gap-fill-bump-wgc
Open

Fill the whole version gap when bumping wgc#7
gausie wants to merge 1 commit into
mainfrom
gap-fill-bump-wgc

Conversation

@gausie

@gausie gausie commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

What

bump-wgc.yml previously 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

  • resolve — reads CUR from Formula/wgc.rb, resolves T (client_payload.version || inputs.version || npm view wgc version), and computes the ordered MISSING list of all stable x.y.z versions strictly > CUR and <= T via semver sort -V. Computes url + sha256 per version once. Emits changed, a meta JSON map, and a build matrix (MISSING × [macos-14, ubuntu-latest]).
  • bottle — driven by fromJSON(needs.resolve.outputs.matrix), parameterised per matrix entry. Ensures a per-version wgc-<version> release exists, uploads that version's bottle tarball, and uploads bottle JSON as bottle-json-<version>-<os>.
  • publish — downloads all bottle JSON artifacts, then loops over MISSING ascending: perl-edits the formula to each version's url/sha, merges that version's bottle JSONs, and commits wgc <version>. Pushes once at the end.

Concurrency group (bump-wgc, cancel-in-progress: false), the workflow_dispatch version input, and the npm-tarball / brew bottle mechanics are unchanged. The 24h cooldown stays enforced cosmo-side, so any version <= T is safe to build.

Testing

Dry-ran the resolve/publish shell against the live npm version list (no brew/releases/push):

  • Rolled-back CUR=0.122.0, target 0.125.0MISSING = 0.123.0, 0.124.0, 0.125.0; matrix = 6 entries; publish order ascending.
  • No-op case (CUR == T) → changed=false.
  • Single-version gap → just the target.
  • YAML parses.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant