s0ders/go-semver-release

Automate semantic versioning of Git repositories by analyzing their formatted commit history and tagging them with the right SemVer.

★ 26Forks 4GoGitHub ↗Compare
cicicdsemantic-versionsemantic-versioningsemversemver-releaseversioning

README

Go Semver Release Logo

Mentioned in Awesome Go GitHub Tag GitHub Actions Workflow Status Go Report Card Codecov

Analyzes your commit history and creates the next SemVer tag automatically.

Features

  • Zero configuration — works out of the box with sensible defaults
  • Support for monorepo — version multiple projects independently in the same repository
  • Prerelease branches — 1.0.0-rc.1, 1.0.0-beta.2
  • Support lightweight and annotated tags — easy to migrate between tools
  • GPG signing — sign produced tags
  • CI-agnostic — works with GitHub, GitLab or locally

Try it

# If Go is installed on your machine, else, download the latest release
$ go install github.com/s0ders/go-semver-release/v8@latest

$ cd ~/my/git/repository

# Run (dry-run to see what would happen)
$ go-semver-release release --dry-run

Documentation

Usage

Miscellaneous

How is this different from other versioning tools?

Other tools exist to version software using semantic versions such as semantic-release.

Go Semver Release focuses on versioning only. No package publishing or other feature requiring extra configuration.

To each tool its responsibilities and these are best left to programs such as Go Releaser which you may use in combination with Go Semver Release.


Project's illustration designed by @TristanDacross

Contributors

s0dersdependabot[bot]ccoVeillemattmcduffie19

Issues