All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- add Tala OpenCode integration
- refresh OpenCode workflows
- sync and archive OpenSpec changes
- ignore local Tala state (#144)
- configure git worktree workflow (#143)
- add version flag
- clarify default git preset workflow (#138)
- fix bump-and-capture recipe for fresh release branches (#137)
- honor configured package files (#139)
- python preset (pyproject.toml + version constants) (#135)
- add --initial-version flag for bootstrapping first releases
- archive fix-workflow-bump-ordering change (#130)
- sync canonical-release-workflow spec with Bump-after-Release ordering (#129)
- use bash shell for native build step to fix Windows PowerShell syntax (#127)
- reorder workflow steps to Bump after Release to prevent redundant version bump (#125)
- add --output json support to grubble's bump path (#119)
- add 'branch from origin/main' to AGENTS.md (#121)
- add PR cleanup instructions to AGENTS.md (#120)
- add --release-version flag to eliminate forward-bump sync issues in release workflow (#122)
- derive release branch name from actual version written by grubble (#118)
- resolve action version reliably in composite actions (#116)
- use PAT for auto-merge so merge event triggers version workflow (#113)
- enable auto-merge on release PRs (#110)
- add retry loop for enabling auto-merge on release PRs (#112)
- fetch tags after Release step so Open step sees the new tag (#108)
- use check-runs API instead of commit statuses for release PR test check (#107)
- add statuses:write permission for commit status API (#106)
- set test commit status directly on release branch push instead of relying on PAT (#105)
- use --verify-tag instead of --verify-latest for gh release create (#103)
- run Release step before Open step to avoid file-ahead-of-tag error (#102)
- restructure README into dedicated docs/ pages (#95)
- track openspec artifacts (#93)
- also unset git extraheader when using PAT for push (#101)
- use PAT for release branch push so CI triggers on release PRs (#100)
- update release PR body on force-push so CHANGELOG entry stays current (#99)
- get_last_tag should exclude floating major/minor tags (v5, v4) (#98)
- remove tag/releaseNotes/updateMajorTag from .versionrc.json to prevent Open step tag-push failure (#96)
- remove bubble dependency, use CHANGELOG entry as release body
- respect user's version pin when downloading binary (#91) (#92)
- present the canonical release-please flow as the recommended path (#85)
- archive canonical-semver-workflow + sync delta specs (#84)
- switch version.yml to canonical release-please flow (#80)
- decouple Open and Release steps so the workflow handles quiet periods (#86)
- use -F for force=true to send as boolean (#83)
- resolve orphan tags from old flow + fix force=true bug (#82)
- use --raw --dry-run to capture the next version cleanly (#81)
- Merge pull request #78 from davegarvey/fix/version-merge-commit
- Merge remote-tracking branch 'origin/main' into release/v5.2.1
- use merge commit so release tag stays reachable
- exclude floating major/minor tags from version detection (#75)
- create-pr + auto-merge flow in action.yml (#73) (#74)
- protected branch push support (--git-branch, create-pr, auto-merge, token) (#61)
- trigger version workflow (round 2) (#71)
- trigger version workflow (#69)
- consolidate bump steps and add stale tag cleanup (#67)
- use published action (davegarvey/grubble@v5) instead of manual build (#60)
- only delete unreachable tags and fetch tags explicitly (#68)
- set GH_TOKEN for gh CLI in push/PR step (#66)
- grep Cargo.toml directly for version instead of --raw (#65)
- move step condition into shell script (#64)
- remove push from .versionrc.json to avoid unwanted pushes (#63)
- push to release branch instead of protected main (#62)
- add protected branch support — branch, create-pr, auto-merge, token inputs
- Revert "feat: add protected branch support — branch, create-pr, auto-merge, token inputs"
- grubble fails when package file version is ahead of latest tag
- revert Cargo.toml to 4.9.4 to let version.yml drive the v5.0.0 bump
- BREAKING: v5.0.0 — fix exit-code contract, honor --raw --preset, add JSON output
- track opencode project configuration
- restructure README and fix CONTRIBUTING
- Exit code is now 0 for any successful run, including clean no-ops. Previously, exit 1 was used to signal "no bump needed"; exit 1 now means "error" only. Scripts that gate on the exit code of
grubbleorgrubble --dry-runmust switch togrubble --bump-typeand check its stdout. grubble --rawnow honors--preset.--raw --preset rustreads fromCargo.toml;--raw --preset nodereads frompackage.json;--raw --preset gitreads from the latest tag. Previously,--rawalways read from git tags.
- New
--output text|jsonflag for--bump-typeand--raw. Emits a stable JSON schema suitable for parsing from CI scripts. Rejected when combined with the normal run mode or--dry-run. - New
outputconfig field (CLI-only, not loaded from.versionrc.json).
- GitHub Action's "Get current version" step uses a single
./grubble --raw --preset <preset>invocation, removing preset-specific shell branches. Theset +e+ exit-code branching workaround around the bump step is removed. - GitHub Action requires
.sha256checksums for release assets. A missing checksum is now a hard error (::error::+exit 1), previously a warning. --dry-runand--rawalways exit 0 when they complete successfully. Usegrubble --bump-typefor the "would a bump happen?" signal.
- Stale
scripts/validate-release.sh(referred to a non-existentrelease.ymland the oldbumperbinary). - The
|| true/set +e/GRUBBLE_EXITshell workarounds inaction.ymlandversion.ymlare no longer needed.
- The
@v4floating major tag and all@v4.x.xspecific tags remain available indefinitely. The default floating tag shifts to@v5once v5 ships. Pin to@v4or@v4.9.4to stay on the v4 contract. - The in-flight OpenSpec change
fix-action-version-detection-and-output-mappingis superseded by this release (the underlying problem is now fixed in--raw, not patched in the action shell).
- Merge pull request #55 from davegarvey/fix/action-output-corruption
- prevent double-capture in --raw fallback corrupting GITHUB_OUTPUT
- monorepo/npm workspace version readback in action outputs
- handle grubble exit 1 as clean no-op, not error
- preset-aware version detection in composite action
- use preset-aware version detection in composite action
- add --bump-type and --dry-run flags for CI/CD integration
- Merge pull request #48 from davegarvey/feat/bump-type-and-dry-run
- set default git user name and email in GitHub Action
- Merge pull request #45 from davegarvey:git-id
- always set git user config when provided
- Merge pull request #44 from davegarvey:fix-sha
- correct checksum verification logic in GitHub Action
- Merge pull request #43 from davegarvey:md-fix
- improve CONTRIBUTING.md formatting
- add contributing guide and development tools
- improve markdown linter test behavior
- correct changelog formatting and spacing between releases
- Merge pull request #42 from davegarvey:md-fix
- add markdownlint configuration for changelog compliance
- correct changelog formatting for markdownlint compliance
- add markdown compliance to changelog generation
- Merge pull request #41 from davegarvey:md-lint
- fix typo in sc.prompt.md
- fix CHANGELOG.md formatting
- add markdownlint-cli to CI workflow
- correct markdown formatting in changelog generation
- add changelog generation feature
- Merge pull request #40 from davegarvey:changelog
- enable changelog generation in project workflow
- Merge pull request #39 from davegarvey:verbosity
- reduce GitHub Action output verbosity
- Merge pull request #38 from davegarvey:bumper-to-grubble
- update bumper references to grubble