ci: add manual-only Prepare release workflow - #57
Draft
aesslinger wants to merge 1 commit into
Draft
Conversation
Adds a workflow_dispatch-only job that aggregates every merged PR since the last tag using the same Conventional Commits classification already used by the per-PR version-suggestion comment (now shared via .github/scripts/version.js), computes the next version/channel, drafts the CHANGELOG section, and — outside dry-run — bumps files, verifies, commits, tags, and pushes, replacing the manual bump-commit ritual. No push/schedule trigger is added; dry_run defaults to true.
aesslinger
marked this pull request as draft
September 3, 2026 12:45
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.
Summary
.github/workflows/prepare-release.yml: aworkflow_dispatch-only job (no push/schedule/PR trigger) that aggregates every merged PR since the last tag, classifies each by Conventional Commits type using the same logic as the existing per-PR version-suggestion comment, computes the next version/channel, drafts theCHANGELOG.mdsection, and — outsidedry_run(defaulttrue) — bumps.tabularium/Cargo.toml/Cargo.lock/CHANGELOG.md, re-runs the full verification suite, then commits/tags/pushes directly tomainasgithub-actions[bot]. The tag push hands off to the existingrelease.ymlbuild/publish pipeline unchanged.ci.yml'sversion-suggestionjob into.github/scripts/version.js, shared by both jobs — pure refactor, no behavior change to the existing per-PR comment.main, a GitHub ruleset with this workflow's push identity in the bypass list is the way to keep this job pushing directly while still requiring PRs from human contributors.prerelease:*label model doesn't scale past the beta channel — left as a follow-up.Why manual-only
This replaces the fully-manual "bump commit" ritual documented in past commits (e.g.
3a4135a,5f93b29) with one workflow run, but is deliberately staged as opt-in only — no automatic trigger is added in this PR.Test plan
node --check .github/scripts/version.jsactionlint .github/workflows/ci.yml .github/workflows/prepare-release.yml— cleanYAML.load_filesanity check on both workflow filesnpx markdownlint-cli README.md— cleanworkflow_dispatchwithdry_run: true— GitHub only allows dispatching aworkflow_dispatchworkflow once it exists on the default branch, so this has to happen after merge. Plan is to run it againstmainright after merging and confirm the job summary reports a correct (or correctly-empty) preview before ever running withdry_run: false.