SemVer Sherpa

SemVer Sherpa - Part of the Flutter Sherpa Suite

SemVer Sherpa is a Dart CLI that manages SemVer versions for Flutter/Dart projects and keeps your CHANGELOG.md in a Keep a Changelog-compatible format.

Features

  • bump versions (major/minor/patch) with build metadata
  • set an explicit version
  • generate or update an Unreleased changelog section from git history
  • validate a clean git working tree before releases

Requirements

  • Dart SDK 3.11+
  • git
  • a pubspec.yaml with a version: field

Install

Install from pub.dev:

dart pub global activate semver_sherpa

The executable name is semver_sherpa:

semver_sherpa --help

Alternatively, run directly from the repo:

dart run bin/semver_sherpa.dart --help

For local development installs:

dart pub global activate --source path .

Usage

Bump a version

semver_sherpa bump patch

Options:

  • --dry-run simulate without changing files
  • --no-commit update files without committing
  • --no-tag skip git tag creation
  • --no-changelog skip changelog generation
  • --push push commits and tags after a successful release

Set a version

semver_sherpa set 1.2.3+4

Options:

  • --dry-run simulate without changing files
  • --no-commit update files without committing
  • --no-tag skip git tag creation
  • --push push changes after setting a version

Generate changelog entries

semver_sherpa changelog

This command updates the ## [Unreleased] section using commits since the last Git tag. Use --dry-run to print the section without writing.

Validate repository state

semver_sherpa validate

Fails if there are uncommitted changes.

Changelog format

Entries are grouped into the Keep a Changelog categories (Added, Fixed, Changed, Removed, Deprecated, Security). Commits are inferred by prefix:

  • feat: -> Added
  • fix: -> Fixed
  • docs:, refactor:, perf:, style: -> Changed
  • remove: -> Removed

Flutter Sherpa Suite

SemVer Sherpa is part of the Flutter Sherpa Suite alongside ~/develop/arch_sherpa. Use arch_sherpa for architecture scaffolding and semver_sherpa for disciplined release/version workflows.

Licensing

SemVer Sherpa is licensed under the MIT License. See LICENSE for details.

Support