Thanks to visit codestin.com
Credit goes to zerv.wisl.dev

Skip to main content
Dynamic versioning from git. Every commit gets its version. Dynamic versioning from git. Every commit gets its version.
testscodecovcrates.iopypipython versionslicense
Dynamic versioning from git. Every commit gets its version. Generate semantic versions from any commit across all branches, or a dirty working directory, with pre-release handling and format support for any CI/CD workflow.

Why zerv?

  • Runs next to semantic-release - semantic-release decides releases on main; zerv versions every other build: any commit on any branch, even with uncommitted changes. No build is ever unversioned.
  • Two modes - zerv flow automates pre-release management from Git branch patterns; zerv version gives full manual control with schemas, overrides, and templates.
  • Any output format - SemVer, PEP440, CalVer, or Tera templates. Generate every format your pipelines need from a single ZERV RON payload.
Read why zerv for the positioning story, including when to reach for something else.

A taste

Installation

Install from PyPI, crates.io, or a pre-built binary.

Quickstart

Run zerv flow, then fan one ZERV RON payload out to every format you need.

Flow

How branch patterns become pre-release versions.

Schema system

Presets, custom RON schemas, and how versions are assembled.
Last modified on September 11, 2026