Skip to main content

tests release quality-gate-status security-rating vulnerabilities codecov ruff ty crates.io pypi status license downloads python

zerv logo

zerv

Dynamic versioning from git. Every commit gets its version. Keep semantic-release on main. Let zerv prerelease every other branch.

Documentation: zerv.wisl.dev

zerv flow on tagged main, develop, a feature branch, and a dirty working directory

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.

See how zerv compares to semantic-release, setuptools-scm, dunamai, and git describe in Why zerv.

Installation

# Python (uv) - Recommended
uv tool install zerv-version

# Python (pip)
pip install zerv-version

# Rust (cargo)
cargo install zerv

# Installation script (latest, or `bash -s vX.X.X` for a specific version)
curl -sSL https://raw.githubusercontent.com/wislertt/zerv/main/scripts/install.sh | bash

# Pre-built binaries
# https://github.com/wislertt/zerv/releases

The PyPI wheel also exposes a Python binding: import zerv.

Quick Start

Version any Git state: zerv flow generates meaningful SemVer versions from any Git state, no manual configuration required.

# The current branch determines the output
zerv flow
# → 1.0.0 (on main branch with tag v1.0.0)
# → 1.0.1-rc.1.post.3 (on release branch with pre-release tag)
# → 1.0.1-beta.1.post.3+develop.3.gf297dd0 (on develop branch)
# → 1.0.1-alpha.59394.post.1+feature.new.auth.1.g4e9af24 (on feature branch)
# → 1.0.1-alpha.17015.post.1.dev.1764382150+feature.dirty.work.1.g54c499a (on dirty feature branch)

Fan one ZERV RON payload out to every format your pipelines need in the quickstart.

Documentation

Full documentation lives at zerv.wisl.dev:

  • Why zerv - positioning vs semantic-release, setuptools-scm, dunamai, git describe
  • Quickstart - one ZERV RON payload to every format
  • Concepts - flow, version, schema system, formats and templates, config file
  • CI/CD - GitHub Actions usage, coexisting with semantic-release
  • CLI reference - zerv version, zerv flow, zerv check, zerv render
  • Python binding - import zerv from the PyPI wheel
  • Troubleshooting

Development

git clone https://github.com/wislertt/zerv.git
cd zerv

uv tool install bakefile

bake setup-dev        # Install pre-commit hooks and cargo-tarpaulin

bake test             # Full test suite (Docker Git + Docker tests enabled)
bake test-rust        # Rust tests only
bake test-python      # Python binding tests only
bake lint             # Formatting and clippy checks
bake docs             # Local Mintlify docs dev server

The project uses uv and mise for dependency and tool management.

Contributing

Contributions are welcome. See CLAUDE.md for development guidelines, including project structure, testing conventions, and the development workflow.

Author

Wisaroot Lertthaweedech – wisl.dev

License

Licensed under the Apache License 2.0. See LICENSE for the full text.

The wordmark in docs/img/brand/ uses outlined paths from Sora, licensed under the SIL Open Font License 1.1.

Release files for zerv-version 0.8.34

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zerv-version 0.8.34
File Size Uploaded
zerv_version-0.8.34.tar.gz 1.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for zerv-version 0.8.34
File
zerv_version-0.8.34-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
zerv_version-0.8.34-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
zerv_version-0.8.34-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
zerv_version-0.8.34-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
zerv_version-0.8.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
zerv_version-0.8.34-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
zerv_version-0.8.34-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
zerv_version-0.8.34-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 18.9 MB

Release files / zerv_version-0.8.34.tar.gz

Download URL zerv_version-0.8.34.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
6de05d9373ad5d993f7c57257d372c72f69e1401bf0f8d6f5cc3da92a49ec31c
BLAKE2b-256 checksum
How to use checksums
308bbd797be7a9082163f1920d042f7ee6888f51e67f0d3e91b10998a8cba8f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-win_arm64.whl

Download URL zerv_version-0.8.34-py3-none-win_arm64.whl
Size 2.1 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
6d43ca5571bd6c118e94903df606aabfef35f9557e782cbaea58f0645ff73885
BLAKE2b-256 checksum
How to use checksums
d2b0c6f7ea029ccf075e7521785f37930237f819197da97176dec9b3a1e0f0f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-win_amd64.whl

Download URL zerv_version-0.8.34-py3-none-win_amd64.whl
Size 2.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
ac5b570626137fa1e26fe6b24d916b90db97420c0918ad0d0f6af44b5a095fb1
BLAKE2b-256 checksum
How to use checksums
0e3f39250127643e65c0c6e61b0455b750277a7a05c15fb555d973a688f9dd9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-musllinux_1_2_x86_64.whl

Download URL zerv_version-0.8.34-py3-none-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
415c9093f69f2e3595c8e112b067b23f753d08e14a0b30ad08dc289b61021a74
BLAKE2b-256 checksum
How to use checksums
349ac74444b4fcb10f2540b23fd19baa9d66753268e08d92b98ec19b9fb6b905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-musllinux_1_2_aarch64.whl

Download URL zerv_version-0.8.34-py3-none-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a3ba54f5284c8866325f52e26d5cbcf53cfd4d2a0e0c4aa0b72cec49c294c282
BLAKE2b-256 checksum
How to use checksums
f71091e3a147937eb452055dcd0f83d8a181d2d838be6ece1ce9e1e43a22d8ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zerv_version-0.8.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
860af2b8d6d341c9458fbf4503428656ce5702a951371805b7150c00c23ae1bb
BLAKE2b-256 checksum
How to use checksums
50bd1a478ed2ef930a334663bdf09499889e8e8060e81d6a254fa32122f552cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zerv_version-0.8.34-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.2 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
f02f252b95e53cb74e067b365fb86209a877a1db25cc4a7088f794f7a6fe0ba8
BLAKE2b-256 checksum
How to use checksums
a7ca6eaf553f988bb63e8453f1f6716b6d837c163bfbc5e1c5d7ef86149323aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-macosx_11_0_arm64.whl

Download URL zerv_version-0.8.34-py3-none-macosx_11_0_arm64.whl
Size 2.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
74cdf0995ea65cf45b13446a30ebae9b70299b0094a683c4541e27e4202a4237
BLAKE2b-256 checksum
How to use checksums
90b0631729054086593d690a326d05a23ebf05b4dfe0fa1d795c4580cae92b4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / zerv_version-0.8.34-py3-none-macosx_10_12_x86_64.whl

Download URL zerv_version-0.8.34-py3-none-macosx_10_12_x86_64.whl
Size 2.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
396ddd998bb2a47557cbe7469edb52aef33795d7c81fbda06360547d98ebb2d1
BLAKE2b-256 checksum
How to use checksums
42a8222a659321c5e4ee4841e1957abd564f4cb8abfe18b5151e7c147bf25624
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page