Conventional Commits
Analysiert euren Commit-Verlauf und entscheidet automatisch ob ein major, minor oder patch-Bump nötig ist. Konfigurierbare Bump-Rules per .semrel.yaml.
Semantic Releases. Fully Automated. Fully Open.
semrel analysiert eure Conventional Commits, berechnet das nächste SemVer-Tag und führt den kompletten Release-Lifecycle durch — vollständig plugin-basiert, monorepo-ready und sprachunabhängig.
Release-Automation auf Enterprise-Level
Designed for Go and cloud-native environments — inspired by semantic-release, but built from the ground up.
Analysiert euren Commit-Verlauf und entscheidet automatisch ob ein major, minor oder patch-Bump nötig ist. Konfigurierbare Bump-Rules per .semrel.yaml.
Jeder Schritt ist ein austauschbares Subprocess-Plugin. GitHub gegen GitLab tauschen, Changelog-Renderer wechseln oder Slack-Notifications — ohne Core zu ändern.
Mehrere unabhängige Module in einem Repository — jedes mit eigener Tag-Serie, Config und Changelog. Dependency Graph und topologische Release-Reihenfolge.
Plugins kommunizieren via subprocess-Protokoll und können in Go, Python, Rust, Node.js oder jeder anderen Sprache geschrieben werden.
Signierte Releases mit Sigstore Cosign, CycloneDX/SPDX SBOM, SLSA Level 1 Provenance. DCO Sign-off und REUSE/SPDX Compliance auf jedem PR.
Vorschau was semrel tun würde, ohne etwas anzufassen. Ideal für CI-Validierung: semrel release --dry-run vor dem tatsächlichen Release.
Keep-a-Changelog Markdown, GitHub/GitLab Release Notes, ArtifactHub Annotations, OCI Labels, NuGet, PyPI, RSS/Atom — alles aus einem strukturierten ReleaseNotes-Modell.
Native action.yml Composite Action, strukturierter JSON Release Output und wiederverwendbare Workflow Templates für CI/CD-Pipelines.
Append-only NDJSON Release-History Tracking, Jira/GitHub Issue Reference Extraction und commitlint für CLI, Git Range oder stdin.
30+ Plugins für jeden Stack
Installiert per semrel plugin install <name> — jedes Plugin lebt in eigenem Repository und released unabhängig.
github-actions Nur auf GitHub Actions CIgitlab-ci Nur auf GitLab CIgitea-actions Nur auf Gitea Actionsgeneric Generische CI-Umgebungconventional Conventional Commits Parserdefault Standard Commit Analyzerchangelog-md Markdown (Keep a Changelog)changelog-html HTML Changelogrelease-notes Release Notes Generatorgithub GitHub Releases & Tagsgitlab GitLab Releases & Tagsgitea Gitea / Forgejobitbucket Bitbucketgit Nur lokale Git-Tagsnpm package.json Versiondocker Docker Images bauen & pushenhelm Helm Chart Versioncargo Rust / Cargo Cratepython PyPI Packagegradle Gradle Versionmaven Maven Artifactnuget NuGet Packagegobinary Go Version Variablehomebrew Homebrew Formulaterraform Terraform Module Versionslack Slack Notificationsteams Microsoft Teamsmatrix Matrix / Elementemail E-Mail Benachrichtigungenjira Jira Issues schließengitplugin Git-Operationen post-releaseIn 3 Schritten zum ersten Release
Alpha-Phase — empfohlen mit --dry-run testen bevor es live geht.
go install github.com/GoSemantics/semrel/cmd/semrel@latest
semrel --version
# Plugins nach Bedarf installieren
semrel plugin install github
semrel plugin install npm
semrel plugin install docker.semrel.yaml)branches:
- name: main
- name: next
prerelease: true
plugins:
- uses: conventional # Commit-Analyse
- uses: changelog-md # CHANGELOG.md generieren
- uses: github # GitHub Release erstellen
- uses: npm # package.json bumpen
- uses: slack # Team benachrichtigen
args:
channel: "#releases"# Erst Dry-Run — kein Output, kein Tag, kein Release
semrel release --dry-run
# Commit-Messages validieren
semrel lint
# Vollständiger Release-Durchlauf
semrel releaseDer Weg zu v1.0.0
semrel ist in aktiver Entwicklung. Jeder Meilenstein kann auf GitHub mitverfolgt werden.
v0.1.0 Foundation shippedCLI, SemVer-Engine, Conventional Commits, Git Tag Management, Dry-Run
v0.2.0 Plugin System shippedStable Core/Plugin-Boundary, Subprocess-basiertes Plugin-Execution-Modell
v0.3.0 CI Integration shippedGitHub Actions native, JSON Output, End-to-End Tests
v0.4.0 Ecosystem Plugins shippedGitHub, GitLab, Gitea, Bitbucket, npm, Docker, Helm, Cargo, Python, Gradle, Maven u.v.m.
v0.5.0 Monorepo & Advanced in progressChangelog Engine, Workspace Discovery, Independent Versioning, Dependency Graph, Pre-release Channels — aktuell aktiv
v1.0.0 Stable Release plannedProduction-ready, vollständige Dokumentation, Plugin SDK für Third-Party Plugins
Gesucht: Contributors!
semrel ist ein Community-Projekt von Markus Waldheim und Thomas Boerger — offen für alle, die mitmachen möchten, egal ob Go-Profi oder Einsteiger.
Schreibt neue Provider, Updater oder Hooks für eure bevorzugten Tools. Plugins sprechen ein einfaches subprocess-Protokoll und können in jeder Sprache implementiert werden.
Plugin Dev GuideProbiert semrel in euren Projekten aus und meldet Bugs. Gute Einstiegs-Issues sind gelabelt und neuen Contributoren wird beim ersten PR geholfen.
Issues ansehenDocs, Tutorials, Beispiel-Configs oder deutsche Übersetzungen — gute Dokumentation ist genauso wichtig wie Code.
Docs RepositoryDie nächste große Milestone: Workspace Discovery, Independent Versioning, Dependency Graph. Ideal für Go-Entwickler mit großen Repositories.
Roadmap v0.5.0E2E-Tests schreiben, Edge Cases abdecken, CI-Workflows für neue Plattformen hinzufügen — jeder Beitrag bringt semrel näher an Produktionsreife.
Contributing GuideNutzt semrel in eurem Projekt und teilt euer Feedback. Zeigt, was ihr gebaut habt — Showcases und Use Cases sind herzlich willkommen.
GitHub Discussionssemrel ist ein offenes Community-Projekt unter Apache 2.0. Alle Contributions werden mit DCO Sign-off und Conventional Commits gerne angenommen.