Derive the version. Keep a Changelog.
A .NET tool for changelog-driven semantic versioning.
dotnet tool install --global ChangeSharp.Cli
cd your-project
changesharp init
changesharp new --added "Initial setup"
changesharp release # updates CHANGELOG.md and version files (locally)changesharp release only updates the files — you still need to commit, tag, and publish the release on your forge:
git add . && git commit -m "chore: release 0.1.0"
git tag v0.1.0
git push --atomic origin main v0.1.0
gh release create v0.1.0 --title 0.1.0 \
--notes "$(changesharp publish --json | jq -r '.data.body')"changesharp publish outputs the released version and its changelog segment, ready to feed any forge's release tool (gh, glab, …).
See the documentation site — quick start in Getting Started.
- Changelog-driven versioning — fragments in
.changesharp/unreleased/drive SemVer bumps - CI/CD integration —
--jsonoutput,--next-only,--require-fragments, forge release publishing viachangesharp publish - AI-ready — built-in MCP server for AI agent integration
- Version propagation — MSBuild, JSON, and regex target handlers
- Pre-release channels — branch-based pre-release workflows
- Safety gates —
--api-min-level(floor),SemverPolicy.MaxImpact+--allow-major(cap),--require-approval,--dry-run - Dogfooded API surface gate — ChangeSharp gates its own CLI/MCP/library surfaces via committed baselines in
tests/public-api/; see API Surface Gate
MIT