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.

Metadata

Release files for zerv-version 0.8.36

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.36
File Size Uploaded
zerv_version-0.8.36.tar.gz 1.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for zerv-version 0.8.36
File
zerv_version-0.8.36-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
zerv_version-0.8.36-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
zerv_version-0.8.36-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
zerv_version-0.8.36-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
zerv_version-0.8.36-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.36-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
zerv_version-0.8.36-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
zerv_version-0.8.36-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.36.tar.gz

Download URL zerv_version-0.8.36.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
584dfe6777c1bba2898b313a45251f2f1d03232ec276bd8fe6084626117cd9d4
BLAKE2b-256 checksum
How to use checksums
ed1c43d9a2c03e64401ee4a9c6ae4cf17d93db9249b87f9e6dfe733a2c00ffae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-win_arm64.whl

Download URL zerv_version-0.8.36-py3-none-win_arm64.whl
Size 2.1 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
1948067cae683557dbeecfb287395812cb1573daa888664728d88ac3cf95e0cc
BLAKE2b-256 checksum
How to use checksums
b732ec1482bf0b2609f373d96bda504d3afefb60db96899759095f7ee1c74698
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-win_amd64.whl

Download URL zerv_version-0.8.36-py3-none-win_amd64.whl
Size 2.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
7f9fa7851c8c3834bb4a7ca12d5f983ad9fed13428cca9972dfdd216c714af28
BLAKE2b-256 checksum
How to use checksums
e79e6bab089a9c75c8acf42babaeb3bba9eea80c5552c242d698551cf2d54195
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-musllinux_1_2_x86_64.whl

Download URL zerv_version-0.8.36-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
08b0a024373da04b112e81e533fa419a432541da7d35b2d00bfd7f1f4cabd400
BLAKE2b-256 checksum
How to use checksums
8e2eda83afe2ed67a25df597c93f771fc0e558311cf36c918e7ed7ebb421db74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-musllinux_1_2_aarch64.whl

Download URL zerv_version-0.8.36-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
3a15a02d7b14a75e235b8d9356ab0006e747be01940ef755e6fb5a2a615fff9f
BLAKE2b-256 checksum
How to use checksums
a38a88900a46fdb9ccc6eeef1694a15e0733c845673fb14de19672a66cd04510
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zerv_version-0.8.36-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
3ca92693b29c937ebb4fc523513d01b398c33ec5a31ccd53ac88fa82bee6b969
BLAKE2b-256 checksum
How to use checksums
0604783b8a72e14dfbfc7ca9e13b5dd613fa71fe6b72fa4b09412c7c1c5ac02d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL zerv_version-0.8.36-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
560ba5f98879044a4aaad28c989ca5ef5cd93d0b96a7a02f5e29b02f4f6014e9
BLAKE2b-256 checksum
How to use checksums
067aba8c0c21298ac0c11ae0f29b482dbd5e8f87a755de970e4eb3a906b0ea04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-macosx_11_0_arm64.whl

Download URL zerv_version-0.8.36-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
f320809bbe33613d7a3161f2389839425571e72f70d5eeaff2690dd100bc007d
BLAKE2b-256 checksum
How to use checksums
10455518c0e795630fcfe4ca455fbb042584acc7b3d23f703a9b4a8079d10c2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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.36-py3-none-macosx_10_12_x86_64.whl

Download URL zerv_version-0.8.36-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
52655b8b26421409b4b3c85a226dda85e32703123bbd986b5af66df6dfa5b7bb
BLAKE2b-256 checksum
How to use checksums
be874fdde0d39866cd98b1d50c42d0deb5285d07f231363c0bef7a316f415da2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","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 history Release notifications | RSS feed

0.8.39

9 release files

This release

0.8.36 This release

9 release files

0.8.34

9 release files

0.8.33

9 release files

0.8.32

9 release files

0.8.31

9 release files

0.8.30

9 release files

0.8.29

9 release files

0.8.28

9 release files

0.8.27

6 release files

0.8.26

6 release files

0.8.25

6 release files

0.8.24

6 release files

0.8.23

6 release files

0.8.20

6 release files

0.8.18

6 release files

0.8.17

6 release files

0.8.16

6 release files

0.8.14

6 release files

0.8.13

6 release files

0.8.11

6 release files

0.8.10

6 release files

0.8.9

6 release files

0.8.8

6 release files

0.8.7

6 release files

0.8.6

6 release files

0.8.5

6 release files

0.8.4

6 release files

0.8.3

6 release files

0.8.2

6 release files

0.8.1

6 release files

0.8.0

6 release files

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