Grubble
Automatic semantic versioning from conventional commits. Designed to be driven by AI-generated commit messages.
Why
Grubble reads your commit history, applies conventional commit rules, and bumps the version in one command:
feat:→ minor,fix:→ patch,!/BREAKING CHANGE→ major- Optionally writes the new version to
Cargo.tomlorpackage.json - Optionally generates a
CHANGELOG.md(Keep a Changelog format) - Cuts and pushes tags, including floating
v4/v4.1tags for GitHub Actions - Plays well with AI agents that emit conventional commits — see
.github/prompts/sc.prompt.md
Quick Start
# Install
# Make some conventional commits
# Preview the next version
# Release
For CI on a protected branch, see the release-please flow.
Installation
Pre-built binaries
Download the latest release for your platform from GitHub Releases:
# Linux x86_64
|
# Linux ARM64
|
# macOS Intel
|
# macOS Apple Silicon
|
# Windows (PowerShell)
Cargo
From source
# Binary at target/release/grubble
GitHub Action
- uses: davegarvey/grubble@v5
The Action exposes three outputs:
| Output | Description |
|---|---|
version |
The new version (e.g. 1.2.3). |
previous-version |
The version before the bump. |
bump-type |
One of major, minor, patch, none. |
When no bump is needed, the Action exits cleanly with bump-type=none.
Usage
Full flag reference in docs/cli.md.
Configuration in docs/configuration.md.
Quick Reference
| Topic | Where to look |
|---|---|
| CLI flags | docs/cli.md |
| Configuration | docs/configuration.md |
| Release workflow | docs/release-workflow.md |
| Best practices | docs/best-practices.md |
| CI/CD patterns | docs/ci-cd-patterns.md |
| Migration from v4 | docs/migration-v4.md |
| Troubleshooting | docs/troubleshooting.md |
Contributing
See CONTRIBUTING.md for development setup, commit guidelines, and the release process. When updating documentation, place new pages in docs/.
License
MIT.
For AI Users
This tool is built for AI-generated commits that follow the conventional commit format. See .github/prompts/sc.prompt.md for a prompt that produces commits compatible with grubble.