Status: pre-alpha — actively under development. See ROADMAP.md.
A Go-based semantic versioning and release system with a plugin architecture that automates the full release lifecycle. Designed for monorepos and multi-language projects.
- 🔍 Conventional Commits parser with configurable bump rules
- 📦 Plugin architecture — git, changelog, GitHub/GitLab Releases, npm, Docker, Helm, Go binaries, Python, Java, Rust, .NET, and more
- 📝 Multi-format Changelog Engine — CHANGELOG.md, ArtifactHub annotations, OCI labels, NuGet, PyPI, Slack/Teams/Discord excerpts
- 🏗️ Monorepo support — independent or synchronized versioning per package
- 🔐 Supply-chain security — signed releases, SBOM, SLSA provenance, Cosign
- ⚙️ GitHub Actions native integration
- 🔌 gRPC Plugin Transport — out-of-process plugins with hashicorp/go-plugin
# Install
go install github.com/GoSemantics/semrel/cmd/go-semrel@latest
# Check version
semrel --version
# Validate commit messages
semrel lint
# Dry-run release (not yet implemented)
semrel release --dry-runCopy .semrel.yaml.example to .semrel.yaml and adjust to your project. See docs/config-reference.md (coming soon).
- Core Engine: Conventional Commits analysis, SemVer calculation, changelog generation
- Plugin System: gRPC-based out-of-process plugins (see ADR-001)
- Plugin SDK:
semrel-plugins— reference SDK for external plugins
- Architecture Overview — ADRs and design documents
- Plugin Development Guide — Plugin SDK
- Configuration Reference (coming soon)
- ROADMAP — public project roadmap
See CONTRIBUTING.md. All contributions require:
- DCO sign-off (
git commit -s) - Conventional Commits
- REUSE/SPDX compliance
Please report vulnerabilities via GitHub Security Advisories. See SECURITY.md for the full policy.
Apache 2.0 — see LICENSE.
Copyright 2026 The semrel Authors.