An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

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](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)