Blog
#zerv
Rust CLI for dynamic versioning from git: every commit gets its version. semantic-release stays on main; zerv prereleases every other branch.
It exists because every build deserves a real version, computed once from git, and it unlocks trunk-based development where every branch is still e2e-testable. The versions it computes run the #bakefile pipelines end to end.
recent posts
Stupidly simple branching: trunk-based, but e2e-testable
zerv-flow, trunk-based with one gap filled: a PR borrows an environment with a label and a lock, so every branch is e2e-testable before merge.

Version every build: semantic-release on main, zerv everywhere else
semantic-release versions main beautifully. Every other branch builds unversioned. zerv gives every commit a SemVer, PEP 440 included, without touching tags.
