Skip to content

Introduction

semrel automates your entire release pipeline by reading Conventional Commits, calculating the correct next SemVer version, generating a changelog, and triggering configurable release plugins — all without manual intervention.

Manual versioning is error-prone and slow. semrel removes the guesswork:

  • A feat: commit bumps the minor version.
  • A fix: commit bumps the patch version.
  • A commit with BREAKING CHANGE: in the footer bumps the major version.
  • Everything is reproducible and auditable through your git history.

Automated Versioning

Analyses Conventional Commits since the last tag and determines the correct SemVer bump automatically.

Plugin System

Every step of the release pipeline — VCS provider, commit analyser, changelog generator, file updater, notifications — is a swappable gRPC plugin.

Monorepo Support

Version multiple independent modules inside one repository, each with its own tag history.

Language Agnostic

Plugins communicate over gRPC, so they can be written in any language that has a Protobuf code generator.

git log ──► CommitAnalyzer ──► next SemVer
ChangelogGenerator
FilesUpdater (optional)
ProviderPlugin (tag / release)
HooksPlugin (notify)

Each box is a separate gRPC plugin process. semrel orchestrates them and passes a ReleaseContext that contains the full commit list, current and next version, and your plugin config.