https://github.com/s0ders/go-semver-release
Automate semantic versioning of Git repositories by analyzing their formatted commit history and tagging them with the right SemVer.
https://github.com/s0ders/go-semver-release
ci cicd semantic-version semantic-versioning semver semver-release versioning
Last synced: 4 months ago
JSON representation
Automate semantic versioning of Git repositories by analyzing their formatted commit history and tagging them with the right SemVer.
- Host: GitHub
- URL: https://github.com/s0ders/go-semver-release
- Owner: s0ders
- License: mit
- Created: 2022-12-05T13:30:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-01-15T18:57:35.000Z (5 months ago)
- Last Synced: 2026-01-18T02:12:46.063Z (5 months ago)
- Topics: ci, cicd, semantic-version, semantic-versioning, semver, semver-release, versioning
- Language: Go
- Homepage:
- Size: 1.59 MB
- Stars: 20
- Watchers: 1
- Forks: 4
- Open Issues: 8
-
Metadata Files:
- Readme: docs/README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
Awesome Lists containing this project
- awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go-with-stars - go-semver-release - 02-08 | (Continuous Integration / Standard CLI)
- awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go-cn - go-semver-release - semver-release) (持续集成 / 标准CLI)
- fucking-awesome-go - go-semver-release - Automate the semantic versioning of Git repositories. (Continuous Integration / Standard CLI)
- awesome-go-plus - go-semver-release - Automate the semantic versioning of Git repositories.  (Continuous Integration / Standard CLI)
- awesome-go-cn - go-semver-release - semver-release) (持续集成 / 标准CLI)
README
Analyzes your commit history and creates the next [SemVer](https://semver.org) 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
```bash
# 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
* [Install](usage/install.md)
* [Quickstart](usage/quickstart.md)
* [Configuration](usage/configuration.md)
* [Output](usage/output.md)
### Miscellaneous
* [Workflow examples](recipes/workflow-examples.md)
* [How it works](miscellaneous/how-it-works.md)
* [Benchmark](miscellaneous/benchmark.md)
## How is this different from other versioning tools?
Other tools exist to version software using semantic versions such as [semantic-release](https://github.com/semantic-release/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](https://goreleaser.com/)
which you may use in combination with Go Semver Release.
Project's illustration designed by [@TristanDacross](https://github.com/TristanDacross)