chore(release): fix CI/release-process gaps found reconciling 1.12-compat - #746
Merged
Conversation
…mpat Three unrelated fixes bundled from working through today's 1.12-compat release grill session: - CI now also runs on push to main, not just pull_request. main went two months (444661a landing on 2026-05-28, first caught by #737 on 2026-07-25) with a broken TypeScript pin and nobody noticed, because nothing ran CI against main directly. - Removed manifest-beta.json and version-bump-beta.mjs. The 4.15.0 changelog says BRAT reads manifest-beta.json from the repo root — true of older BRAT, but BRAT v1.1.0+ ignores it entirely and reads manifest.json straight from a pinned release's assets instead (confirmed against BRAT's own developer guide). version:beta now bumps manifest.json exactly like version:prod; the only thing that still needs to differ for a beta release is package.json's version carrying a -beta.N suffix, which is what release.yml's tag-name check already uses to mark the release a prerelease. - release:beta no longer pushes to a hardcoded branch. It was `main:main`, harmless here, but copied verbatim onto 1.12-compat as `master:master` — a branch that doesn't exist, silently broken. Now pushes whatever branch is checked out. Not changed: 1.12-compat's release.yml also attaches manifest-beta.json to every release (stable included) — investigated as a possible main/1.12-compat divergence to reconcile, but since BRAT ignores the file either way it's harmless, not a bug. Left alone.
michaelpporter
added a commit
that referenced
this pull request
Jul 26, 2026
2b512b6 (PR #746) deleted manifest-beta.json and version-bump-beta.mjs but did NOT include the package.json change that stops referencing them, so `bun run version:beta` on main has been broken since that merge — it invokes a script that no longer exists. Cause: the staging command listed already-`git rm`'d paths alongside modified ones. git aborted the whole `add` with "fatal: pathspec 'manifest-beta.json' did not match any files", so only the two pre-staged deletions made it into the commit. The accompanying edits were written to disk but never staged, and went unnoticed because `git status` wasn't re-checked after committing. Restores the intended changes: - package.json: version:beta bumps manifest.json like version:prod; release:beta pushes the current branch instead of hardcoded main:main - .github/workflows/release.yml: comment explains why there's no beta manifest to publish (BRAT v1.1.0+ ignores manifest-beta.json) - AGENTS.md: documents the unified bump mechanics - CHANGELOG.md: Build entries for all of the above Also extends CI to 1.12-compat. For push events GitHub uses the workflow file from the branch being pushed, so 1.12-compat needs its own copy listing itself; both files now list both branches so they stay identical and future ports are mechanical.
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.
Phase 3 of the 1.12-compat reconciliation from today's grill session. Three independent fixes, bundled since they're all small and all release-process.
CI now runs on push to
mainci.ymltriggered only onpull_request+workflow_dispatch.mainwent from444661a(2026-05-28, the dependabot bump that broke TypeScript) to#737(2026-07-25) — two months — with a broken build and nobody noticed, because nothing ever ran CI directly againstmain.Removed
manifest-beta.json/version-bump-beta.mjsChecked BRAT's own developer guide directly rather than relying on the assumption baked into the 4.15.0 changelog ("BRAT reads
manifest-beta.jsonfrom the repo root"). That was true of older BRAT; BRAT v1.1.0+ ignoresmanifest-beta.jsonentirely — it readsmanifest.jsonstraight from a pinned release's assets. So the whole dual-manifest mechanism is dead weight.version:betanow bumpsmanifest.jsonexactly likeversion:proddoes. The only remaining thing that needs to differ for a beta release ispackage.json's version carrying a-beta.Nsuffix — which is already whatrelease.yml's tag-name check uses to mark a release a prerelease.release:betano longer hardcodes a branch nameIt pushed
main:main. Harmless onmain, but the exact same script was copied onto1.12-compatverbatim asmaster:master— a branch that doesn't exist there, so the script silently failed. Now it pushes whatever branch is currently checked out (git push origin HEAD:$(git symbolic-ref --short HEAD)), which fixes1.12-compat's copy too and can't recur if this is ever copied to a third branch.Deliberately left alone
1.12-compat'srelease.ymlattachesmanifest-beta.jsonto every release it cuts (stable included — confirmed on the already-shipped 4.14.4). I initially treated this as a bug to reconcile towardmain, but since BRAT ignores the file regardless of where it comes from, it's harmless cruft rather than a real divergence. Not touched.bun run build && bun run testpass (382 tests, 0 type errors, svelte-check 0/0).