Go-native v0.4.x Alpha Apache 2.0 Open for Contributors

semrel

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.

Supply Chain Security
30+ Plugins
Monorepo Ready
Language Agnostic
OpenSSF Scorecard

Warum semrel?

Release-Automation auf Enterprise-Level

Designed for Go and cloud-native environments — inspired by semantic-release, but built from the ground up.

Core

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.

Plugin System

Pluggable Pipeline

Jeder Schritt ist ein austauschbares Subprocess-Plugin. GitHub gegen GitLab tauschen, Changelog-Renderer wechseln oder Slack-Notifications — ohne Core zu ändern.

v0.5.0

Monorepo Ready

Mehrere unabhängige Module in einem Repository — jedes mit eigener Tag-Serie, Config und Changelog. Dependency Graph und topologische Release-Reihenfolge.

Ecosystem

Language Agnostic

Plugins kommunizieren via subprocess-Protokoll und können in Go, Python, Rust, Node.js oder jeder anderen Sprache geschrieben werden.

Security

Supply Chain Security

Signierte Releases mit Sigstore Cosign, CycloneDX/SPDX SBOM, SLSA Level 1 Provenance. DCO Sign-off und REUSE/SPDX Compliance auf jedem PR.

Safety

Dry-Run Mode

Vorschau was semrel tun würde, ohne etwas anzufassen. Ideal für CI-Validierung: semrel release --dry-run vor dem tatsächlichen Release.

Changelog

Multi-Format Changelog

Keep-a-Changelog Markdown, GitHub/GitLab Release Notes, ArtifactHub Annotations, OCI Labels, NuGet, PyPI, RSS/Atom — alles aus einem strukturierten ReleaseNotes-Modell.

CI/CD

GitHub Actions Native

Native action.yml Composite Action, strukturierter JSON Release Output und wiederverwendbare Workflow Templates für CI/CD-Pipelines.

Insights

Release Analytics

Append-only NDJSON Release-History Tracking, Jira/GitHub Issue Reference Extraction und commitlint für CLI, Git Range oder stdin.

Plugin Ecosystem

30+ Plugins für jeden Stack

Installiert per semrel plugin install <name> — jedes Plugin lebt in eigenem Repository und released unabhängig.

Conditions

  • github-actions Nur auf GitHub Actions CI
  • gitlab-ci Nur auf GitLab CI
  • gitea-actions Nur auf Gitea Actions
  • generic Generische CI-Umgebung

Analyzers

  • conventional Conventional Commits Parser
  • default Standard Commit Analyzer

Generators

  • changelog-md Markdown (Keep a Changelog)
  • changelog-html HTML Changelog
  • release-notes Release Notes Generator

Providers

  • github GitHub Releases & Tags
  • gitlab GitLab Releases & Tags
  • gitea Gitea / Forgejo
  • bitbucket Bitbucket
  • git Nur lokale Git-Tags

Updaters

  • npm package.json Version
  • docker Docker Images bauen & pushen
  • helm Helm Chart Version
  • cargo Rust / Cargo Crate
  • python PyPI Package
  • gradle Gradle Version
  • maven Maven Artifact
  • nuget NuGet Package
  • gobinary Go Version Variable
  • homebrew Homebrew Formula
  • terraform Terraform Module Version

Hooks

  • slack Slack Notifications
  • teams Microsoft Teams
  • matrix Matrix / Element
  • email E-Mail Benachrichtigungen
  • jira Jira Issues schließen
  • gitplugin Git-Operationen post-release

Quick Start

In 3 Schritten zum ersten Release

Alpha-Phase — empfohlen mit --dry-run testen bevor es live geht.

1 Installieren
terminal
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
2 Konfigurieren (.semrel.yaml)
.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"
3 Releasen
terminal
# Erst Dry-Run — kein Output, kein Tag, kein Release
semrel release --dry-run

# Commit-Messages validieren
semrel lint

# Vollständiger Release-Durchlauf
semrel release

Roadmap

Der Weg zu v1.0.0

semrel ist in aktiver Entwicklung. Jeder Meilenstein kann auf GitHub mitverfolgt werden.

  1. v0.1.0 Foundation shipped

    CLI, SemVer-Engine, Conventional Commits, Git Tag Management, Dry-Run

  2. v0.2.0 Plugin System shipped

    Stable Core/Plugin-Boundary, Subprocess-basiertes Plugin-Execution-Modell

  3. v0.3.0 CI Integration shipped

    GitHub Actions native, JSON Output, End-to-End Tests

  4. v0.4.0 Ecosystem Plugins shipped

    GitHub, GitLab, Gitea, Bitbucket, npm, Docker, Helm, Cargo, Python, Gradle, Maven u.v.m.

  5. v0.5.0 Monorepo & Advanced in progress

    Changelog Engine, Workspace Discovery, Independent Versioning, Dependency Graph, Pre-release Channels — aktuell aktiv

  6. v1.0.0 Stable Release planned

    Production-ready, vollständige Dokumentation, Plugin SDK für Third-Party Plugins

Mitmachen

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.

Plugins entwickeln

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 Guide

Bugs finden & fixen

Probiert semrel in euren Projekten aus und meldet Bugs. Gute Einstiegs-Issues sind gelabelt und neuen Contributoren wird beim ersten PR geholfen.

Issues ansehen

Dokumentation verbessern

Docs, Tutorials, Beispiel-Configs oder deutsche Übersetzungen — gute Dokumentation ist genauso wichtig wie Code.

Docs Repository

Monorepo-Support (v0.5.0)

Die nächste große Milestone: Workspace Discovery, Independent Versioning, Dependency Graph. Ideal für Go-Entwickler mit großen Repositories.

Roadmap v0.5.0

Testing & CI

E2E-Tests schreiben, Edge Cases abdecken, CI-Workflows für neue Plattformen hinzufügen — jeder Beitrag bringt semrel näher an Produktionsreife.

Contributing Guide

Community & Feedback

Nutzt semrel in eurem Projekt und teilt euer Feedback. Zeigt, was ihr gebaut habt — Showcases und Use Cases sind herzlich willkommen.

GitHub Discussions

Owner & Maintainer

Markus Waldheim

Owner, Creator & Maintainer

@mwaldheim

Thomas Boerger

Owner, Creator & Maintainer

@tboerger

semrel ist ein offenes Community-Projekt unter Apache 2.0. Alle Contributions werden mit DCO Sign-off und Conventional Commits gerne angenommen.