Software's most popular versioning scheme!
With software releases at an all-time high, the consensus has never been clearer: Major versions are over. So what does the past, present, and future of software versioning look like? Welcome to ZeroVer 0.0.1.
Unlike other versioning schemes like Semantic Versioning and Calendar Versioning, ZeroVer (AKA 0ver) is simple: Your software's major version should never exceed the first and most important number in computing: zero.
A down-to-earth demo:
YES: 0.0.1, 0.1.0dev, 0.4.0, 0.4.1, 0.9.8n, 0.999999999, 0.0
NO: 1.0, 1.0.0-rc1, 18.0, 2018.04.01
In short, software versioning best practice is like the modern list/array: 0-based.
We'll leave it to computer scientists to determine how expert coders wield the power of the "zero-point" to produce top-notch software. Meanwhile, open-source and industry developers agree: ZeroVer is software's most popular versioning scheme for good reason.
Just take a look at the list below. Some thought leaders might surprise you.
The growing vanguard of the versioning revolution. Add your project here.
Project | Stars | First Released | Releases | Current Version | 0ver years |
---|---|---|---|---|---|
Tactical RMM | 3,259 | 2020 | 165 | 0.20.0 (2024) | 4.1 |
dep (Go) | 12,839 | 2017 | 13 | 0.5.4 (2019) | 7.5 |
NeoVIM | 83,685 | 2015 | 45 | 0.10.2 (2024) | 9.1 |
Tor | 4,465 | 2004 | 515 | 0.4.8.1-alpha (2023) | 20.7 |
Vala | 821 | 2009 | 343 | 0.57.0 (2022) | 15.8 |
Onion | 2,018 | 2011 | 11 | 0.8 (2016) | 13.6 |
datadogpy | 616 | 2015 | 64 | 0.50.2 (2024) | 9.8 |
Wheel | 504 | 2012 | 66 | 0.45.1 (2024) | 12.4 |
scikit-learn | 60,268 | 2010 | 144 | 0.17.0_b1+git14-g4e6829c-1 (2015) | 14.8 |
Magic Wormhole | 20,512 | 2015 | 39 | 0.17.0 (2024) | 9.7 |
docopt | 7,949 | 2012 | 11 | 0.6.2 (2014) | 12.6 |
httpbin | 12,837 | 2014 | 13 | 0.7.0 (2018) | 10.5 |
bottle.py | 8,460 | 2009 | 85 | 0.13.2 (2024) | 15.4 |
hugo | 76,155 | 2013 | 302 | 0.139.2 (2024) | 11.4 |
xhyve | 6,441 | 2015 | 2 | 0.2.0 (2015) | 9.5 |
zeal | 11,612 | 2015 | 13 | 0.7.2 (2024) | 9.6 |
Orc (liborc) | 86 | 2009 | 42 | 0.4.28 (2017) | 15.5 |
Gephi | 5,944 | 2010 | 19 | 0.10.1 (2023) | 14.8 |
vim-airline | 17,797 | 2013 | 11 | 0.11 (2019) | 11.4 |
zsh-completions | 7,016 | 2011 | 39 | 0.35.0 (2023) | 13.0 |
ProsodyIM | 612 | 2008 | 98 | 0.11.7 (2020) | 16.0 |
fail2ban | 12,438 | 2004 | 194 | 0.8.4 (2009) | 20.1 |
qtile | 4,829 | 2008 | 44 | 0.29.0 (2024) | 16.3 |
autokey | 3,470 | 2016 | 28 | 0.96.0 (2022) | 7.9 |
OpenRCT2 | 13,539 | 2014 | 44 | 0.4.16 (2024) | 10.7 |
bup | 7,145 | 2013 | 40 | 0.33.4 (2024) | 11.2 |
You-Get | 53,983 | 2012 | 161 | 0.4.1730 (2024) | 12.2 |
Ramda | 23,839 | 2013 | 58 | 0.30.1 (2024) | 10.9 |
kubectx | 17,878 | 2017 | 21 | 0.9.5 (2023) | 7.7 |
Music Player Daemon (mpd) | 2,192 | 2004 | 191 | 0.23.15 (2023) | 20.8 |
wkhtmltopdf | 14,017 | 2008 | 50 | 0.12.6 (2020) | 16.5 |
pywinauto | 5,018 | 2006 | 33 | 0.6.8 (2019) | 18.9 |
Perkeep | 6,502 | 2013 | 11 | 0.11 (2020) | 11.5 |
asn1c | 1,052 | 2014 | 3 | 0.9.28 (2017) | 10.2 |
React Native | 119,494 | 2015 | 562 | 0.77.0-rc.0 (2024) | 9.7 |
StreamEx | 2,211 | 2015 | 44 | 0.8.3 (2024) | 9.6 |
3proxy | 3,967 | 2014 | 16 | 0.7.1.2 (2015) | 10.6 |
Flow | 22,097 | 2014 | 381 | 0.255.0 (2024) | 10.0 |
JaCoCo | 4,228 | 2009 | 48 | 0.8.12 (2024) | 15.1 |
iodine | 6,257 | 2006 | 14 | 0.8.0 (2023) | 18.4 |
foreman | 6,041 | 2010 | 131 | 0.88.1 (2024) | 14.5 |
Pry | 6,780 | 2010 | 75 | 0.15.0 (2024) | 14.0 |
xonsh | 8,450 | 2015 | 133 | 0.18.4 (2024) | 9.7 |
ccls | 3,784 | 2018 | 35 | 0.20241108 (2024) | 6.5 |
Colyseus | 5,898 | 2016 | 126 | 0.14.17-alpha.1 (2021) | 7.9 |
Teeworlds | 2,376 | 2011 | 22 | 0.7.5 (2020) | 13.8 |
Numba | 10,008 | 2012 | 207 | 0.1.1 (2012) | 12.3 |
XMonad | 3,368 | 2007 | 23 | 0.18.0 (2024) | 17.6 |
Tendermint | 5,719 | 2019 | 243 | 0.37.0-rc2 (2022) | 5.7 |
Cosmos-sdk | 6,300 | 2023 | 539 | 0.1.4 (2024) | 1.5 |
Elm Language | 7,559 | 2013 | 26 | 0.19.1 (2019) | 11.5 |
winapi-rs (Rust) | 1,847 | 2017 | 8 | 0.3.9 (2020) | 7.0 |
Paper.js | 14,526 | 2011 | 64 | 0.12.18 (2024) | 13.4 |
zoxide | 23,103 | 2020 | 34 | 0.9.6 (2024) | 4.7 |
OpenRC | 1,480 | 2015 | 131 | 0.55.1 (2024) | 9.6 |
Notary | 3,234 | 2015 | 20 | 0.7.0 (2021) | 9.0 |
GoodbyeDPI | 25,615 | 2017 | 30 | 0.2.3rc3 (2024) | 7.5 |
Enlightenment | 107 | 2012 | 88 | 0.25.3 (2022) | 11.9 |
mpv | 28,739 | 2013 | 86 | 0.39.0 (2024) | 11.3 |
PyTransitions | 5,790 | 2014 | 48 | 0.9.2 (2024) | 10.1 |
Stylus | 11,199 | 2011 | 175 | 0.64.0 (2024) | 13.8 |
nw.js | 40,403 | 2012 | 348 | 0.14.0 (2016) | 12.7 |
Video Speed Controller | 3,838 | 2019 | 11 | 0.7.4 (2024) | 4.9 |
Pyre | 6,871 | 2018 | 88 | 0.9.23 (2024) | 6.6 |
brick/math | 1,858 | 2014 | 55 | 0.12.1 (2023) | 10.3 |
Mihon | 10,675 | 2016 | 87 | 0.17.0 (2024) | 8.9 |
Zig | 35,158 | 2017 | 19 | 0.13.0 (2024) | 7.1 |
asdf | 22,127 | 2016 | 39 | 0.14.1 (2024) | 8.4 |
Ruff | 33,198 | 2022 | 335 | 0.4.10 (2024) | 2.2 |
graphile-worker | 1,838 | 2019 | 58 | 0.17.0-canary.9817f67 (2024) | 5.7 |
Monero | 9,039 | 2014 | 68 | 0.18.3.4 (2024) | 10.2 |
MultiMC Launcher | 4,316 | 2014 | 46 | 0.6.16 (2022) | 10.9 |
Factor | 1,651 | 2004 | 34 | 0.100 (2024) | 20.3 |
Tectonic | 3,994 | 2017 | 13 | 0.1.12 (2019) | 7.7 |
CorsixTH | 4,054 | 2013 | 51 | 0.68.0 (2024) | 11.6 |
seaborn | 12,617 | 2013 | 38 | 0.13.2 (2024) | 11.1 |
Cartopy | 1,438 | 2012 | 43 | 0.24.1 (2024) | 12.1 |
fzf | 65,863 | 2013 | 148 | 0.56.3 (2024) | 11.1 |
Pint | 2,409 | 2012 | 57 | 0.24.4 (2024) | 12.4 |
Google Go CDK | 9,571 | 2018 | 192 | 0.40.0 (2024) | 6.4 |
Haskell bytestring | 291 | 2013 | 26 | 0.12.1.0 (2024) | 11.1 |
Anthropic Python SDK | 1,523 | 2023 | 106 | 0.40.0 (2024) | 1.8 |
Excalidraw | 86,568 | 2021 | 19 | 0.17.6 (2024) | 3.4 |
restic | 26,748 | 2015 | 49 | 0.17.3 (2024) | 9.3 |
Zola | 14,225 | 2017 | 49 | 0.19.2 (2024) | 7.7 |
Create | 2,960 | 2019 | 14 | 0.2.3 (2020) | 5.4 |
atlantis | 7,848 | 2017 | 144 | 0.31.0 (2024) | 7.3 |
Fabric API | 2,383 | 2020 | 870 | 0.110.2+1.21.4 (2024) | 4.4 |
Nushell | 32,733 | 2019 | 106 | 0.100.0 (2024) | 5.3 |
PyVista | 2,746 | 2017 | 139 | 0.44.2 (2024) | 7.0 |
ASCEND | --- | 1978 | --- | 0.9.8 (2012) | 46.5 |
Dash | --- | 1997 | --- | 0.5.9.1 (2016) | 27.5 |
docutils | --- | 2002 | --- | 0.19 (2022) | 22.9 |
Compiz | --- | 2006 | --- | 0.9.13.1 (2016) | 18.5 |
distlib | --- | 2013 | --- | 0.2.6 (2017) | 11.8 |
PuTTY | --- | 1999 | --- | 0.82 (2024) | 25.9 |
MAME | 6,970 | 1997 | 259 | 0.259 (2023) | 27.8 |
Dwarf Fortress | --- | 2006 | 142 | 0.44.09 (2018) | 18.3 |
Cataclysm: Dark Days Ahead | 1,775 | 2013 | 15 | 0.C (2015) | 11.8 |
Window Maker | --- | 1997 | 94 | 0.96.0 (2023) | 27.9 |
ReactOS | 13,301 | 1996 | 59 | 0.4.14 (2021) | 28.9 |
OpenStreetMap API/website | --- | 2004 | 14 | 0.6 February 2021 (2021) | 20.3 |
three.js | 75,000 | 2013 | 133 | 0.13 (2021) | 11.4 |
google-api-client (ruby) | 2,400 | 2010 | 201 | 0.53.0 (2021) | 14.1 |
rand | 1,681 | 2015 | 67 | 0.9.0-beta.0 (2024) | 9.8 |
esbuild | 38,241 | 2020 | 412 | 0.24.0 (2024) | 4.6 |
suhosin | --- | 2006 | --- | 0.9.38 (2015) | 18.2 |
Pure Data | --- | 1996 | --- | 0.52-1 (2021) | 28.5 |
XeTeX | --- | 2004 | --- | 0.999992 (2020) | 20.7 |
PipeWire | --- | 2017 | --- | 0.3.72 (2023) | 7.4 |
gettext | --- | 1987 | --- | 0.22 (2023) | 37.9 |
cargo-audit | --- | 2017 | --- | 0.20.0 (2024) | 7.8 |
transformers | --- | 2009 | 39 | 0.6.1.1 (2023) | 15.9 |
At the time of writing, the list is somewhat biased toward Python
projects. If you know of some prominent ZeroVer projects, submit them
here!
These flagship ZeroVer projects know how to get the most out of their zeroes.
HashiCorp's Vault project aims to be an enterprise secret management service, comprising the bedrock of a modern, microservice-oriented environment. And that's what makes it one of ZeroVer's most important adherents.
Low in the stack, low in the version. That's the HashiCorp way.
To drive the point home, even further down the stack, HashiCorp's Terraform also complies with ZeroVer's cutting-edge versioning scheme. With Vault and Terraform, HashiCorp demonstrates industry recognition of the importance of ZeroVer in infrastructure.
HashiCorp knows ZeroVer works, especially when the projects are business-critical products, sold and supported.
Versioning schemes like SemVer and CalVer attempt to guide developers away from the natural light of ZeroVer. In a surprising and exciting move, the creator of SemVer himself saw the light of ZeroVer with his new project, TOML.
From 2013 until 2021, TOML was a model ZeroVer user, barely cresting half a version. Unfortunately, Tom's passing of the TOML maintainer torch resulted in the confusing situation where new maintainers reverted to Tom's outdated 2011-era versioning philosophy:
"If your software is being used in production, it should probably already be 1.0.0."
Despite this turn, the ZeroVer academy salute Tom for showing great versioning fortitude in forestalling TOML's major version uptick for so long. Thanks Tom!
One of the strongest brands in modern software also subscribed to the strongest versioning scheme. To understand the version scheme, we have to understand the name, as the software shares quite a bit in common with its namesake.
Apache Kafka was named after Franz Kafka, who lived as an author in turn-of-the-20th-century Austria. Like the project named after him, he was slow to start, inconsistent in delivery, and left a mess of unpublished work after a tragically early death. Most experts have come to agree, for all their complexity and absurdity, Kafka's writings have been influential, despite the prevalence of bugs. Still, true consensus is only found in the one true Kafka fact: most invocations of the name "Kafka" are attempts at appearing smart by those with relatively little experience on the topic.
So how does ZeroVer fit in to the Kafka brand? Whereas the Kafka name mirrors his writing style, for over four years, Apache Kafka's ZeroVer policy mirrored Franz Kafka's own life and relationships: short, intense, and rarely conjugated or consummated.
ZeroVer: the most Kafkaesque versioning scheme.
Has there ever been a library more auspicious? By now it should come as no surprise that OpenSSL has its roots in ZeroVer.
While no longer technically a ZeroVer project, OpenSSL held out from 1998 to 2010 before finally succumbing to 1.0. What happened after that is beyond the scope of this document, but let it serve as a warning to those who might stray beyond 0.
In the good old days of 0ver OpenSSL, the project managed to change its name (from SSLeay) and implementation technology (from Perl to C), not to mention run through half the alphabet in micro versioning.
That's the power of a streamlined and minimal ZeroVer version.
Dearly departed from the school of ZeroVer, either from above or from legend. We remember them fondly.
Project | Stars | First Released | 0ver Releases | Last 0ver release | 0ver years |
---|---|---|---|---|---|
semver (Rust) | 596 | 2014 | 35 | 0.11.0 (2021) | 6.7 |
Apache Kafka | 28,936 | 2013 | 54 | 0.11.0.3-rc0 (2017) | 4.3 |
Minikube | 29,576 | 2016 | 52 | v0.35.0 (2019) | 2.8 |
Arrow (Python) | 8,731 | 2013 | 45 | 0.17.0 (2021) | 7.8 |
Home Assistant | 74,027 | 2015 | 686 | 0.118.5 (2020) | 5.3 |
Nim | 16,632 | 2012 | 24 | v0.20.2 (2019) | 7.6 |
Windows Terminal | 95,884 | 2019 | 40 | v0.11.1333.0 (2020) | 1.0 |
Bitcoin | 79,893 | 2009 | 258 | v0.21.2rc2 (2021) | 11.7 |
Caddy | 58,624 | 2015 | 47 | v0.11.5 (2019) | 4.0 |
Werkzeug | 6,663 | 2007 | 64 | 0.16.1 (2020) | 12.6 |
Cython | 9,553 | 2008 | 178 | 0.29.37.1 (2023) | 15.2 |
TOML | 19,565 | 2013 | 6 | v0.5.0 (2020) | 7.4 |
Flask | 68,184 | 2010 | 25 | 0.12.5 (2020) | 9.8 |
SciPy | 13,137 | 2001 | 92 | v0.19.1 (2017) | 16.2 |
Pandas | 43,895 | 2011 | 108 | v0.26.0.dev0 (2020) | 8.9 |
PyTorch | 84,541 | 2016 | 17 | v0.4.1 (2018) | 2.1 |
HTTPie | 34,052 | 2012 | 30 | 0.9.9 (2018) | 6.7 |
certbot | 31,632 | 2015 | 83 | v0.40.1 (2019) | 4.2 |
sshuttle | 11,818 | 2015 | 12 | v0.78.5 (2020) | 4.5 |
Theano | 9,905 | 2011 | 27 | rel-0.10.0beta4 (2017) | 6.3 |
Bokeh | 19,394 | 2013 | 42 | 0.13.0 (2018) | 5.1 |
rq | 9,911 | 2012 | 47 | v0.13 (2019) | 7.0 |
drone | 32,276 | 2014 | 30 | v0.8.10 (2024) | 10.4 |
HashiCorp Terraform | 42,907 | 2014 | 195 | v0.15.5 (2021) | 6.9 |
HashiCorp Nomad | 14,989 | 2023 | 125 | v0.12.12 (2020) | -2.3 |
HashiCorp Vault | 31,312 | 2021 | 160 | sdk/v0.14.0 (2018) | -3.1 |
html5lib-python | 1,132 | 2007 | 15 | 0.999999999 (2017) | 10.9 |
MyPy | 18,563 | 2014 | 72 | v0.991 (2023) | 8.2 |
asn1crypto | 335 | 2015 | 29 | 0.24.0 (2019) | 4.2 |
Julia | 45,883 | 2013 | 63 | v0.7.0 (2018) | 5.5 |
Flatpak | 4,265 | 2015 | 89 | 0.99.3 (2018) | 3.4 |
Meson Build System | 5,647 | 2013 | 135 | 0.64.1 (2022) | 9.8 |
Wekan | 19,627 | 2015 | 99 | v0.99 (2018) | 2.7 |
runc | 11,943 | 2015 | 12 | v0.1.1 (2016) | 0.9 |
MechanicalSoup | 4,678 | 2014 | 23 | v0.12.0 (2021) | 6.6 |
Sway Window Manager | 14,744 | 2016 | 41 | 0.15.2 (2018) | 2.0 |
Pilosa | 2,527 | 2017 | 29 | v0.10.1 (2018) | 1.4 |
ClamAV Antivirus | 4,480 | 2007 | 181 | clamav-0.105.2 (2022) | 15.7 |
dateparser | 2,566 | 2014 | 20 | v0.7.6 (2020) | 5.9 |
rollup | 25,406 | 2015 | 260 | v0.68.2 (2018) | 3.6 |
VS Code C/C++ extension | 5,539 | 2017 | 109 | 0.30.0-insiders5 (2020) | 3.5 |
React | 229,716 | 2013 | 47 | 0.14.10 (2019) | 5.8 |
Rake | 2,354 | 2011 | 2 | v0.9.2.2 (2014) | 2.6 |
Chocolatey | 10,386 | 2015 | 60 | 0.12.1 (2022) | 7.1 |
PHPStan | 13,027 | 2016 | 160 | 0.12.100 (2021) | 5.3 |
Nuitka | 12,109 | 2011 | 285 | 0.9.6 (2022) | 10.9 |
GoReleaser | 13,863 | 2016 | 468 | v0.184.0 (2021) | 4.9 |
axios | 105,853 | 2014 | 62 | v0.29.0 (2022) | 7.8 |
Forge | 5,086 | 2013 | 129 | 0.10.0 (2022) | 8.6 |
Stellarium | 7,820 | 2017 | 37 | v0.22.2 (2022) | 5.5 |
Semgrep | 10,714 | 2020 | 156 | v0.123.0 (2022) | 2.8 |
Datasette | 9,589 | 2017 | 137 | 0.65 (2022) | 5.0 |
LocalStack | 56,594 | 2016 | 50 | v0.14.5 (2022) | 5.6 |
globalid (ruby) | 1,226 | 2014 | 18 | v0.6.0 (2021) | 7.3 |
Knex.js | 19,396 | 2013 | 162 | 0.95.14 (2022) | 8.7 |
python-dotenv | 7,694 | 2014 | 44 | v0.21.1 (2023) | 8.5 |
FreeCol | 601 | 2015 | 4 | v0.13.0 (2023) | 7.4 |
Qiskit | 5,303 | 2017 | 114 | 0.46.3 (2024) | 6.9 |
Flipper | 3,726 | 2012 | 91 | v0.28.3 (2023) | 11.0 |
Apache Druid | 13,525 | 2012 | 470 | druid-0.23.0 (2022) | 9.8 |
Helmfile | 3,952 | 2016 | 338 | v0.169.1 (2024) | 7.4 |
FreeCAD | 21,137 | 2013 | 26 | 0.21.2 (2024) | 11.7 |
Hy | 5,142 | 2012 | 37 | 0.29.0 (2024) | 11.7 |
Inkscape | --- | 2000 | --- | 0.92.5 (2020) | 19.7 |
OpenSSL | 6,706 | 1998 | 51 | 0.9.8n (2010) | 11.3 |
Factorio | --- | 2012 | --- | 0.18.47 (2020) | 7.6 |
pg (Ruby) | --- | 2008 | 123 | 0.21.0 (2017) | 9.4 |
slrn | --- | 1994 | --- | 0.9.9p1 (2012) | 18.4 |
yup | 22,943 | 2015 | 94 | v0.32.11 (2020) | 5.7 |
Wine | --- | 1993 | --- | 0.9.61 (2008) | 15.0 |
With any luck, these projects will realize their folly.
Check out the About page.