Friday, December 8, 2023
Google search engine
HomeUncategorizedZeroVer: 0-Based Versioning

ZeroVer: 0-Based Versioning

Cutting-edge software versioning for minimalists

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.

0verview

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.

Notable ZeroVer Projects

The growing vanguard of the versioning revolution. Add your project
here
.

Project Stars First Released Releases Current Version 0ver years
dep (Go) 12,961 2017 13 0.5.4 (2019) 6.1
NeoVIM 67,093 2015 38 0.9.1 (2023) 7.7
Tor 3,928 2004 515 0.4.8.1-alpha (2023) 19.3
Vala 781 2009 335 0.57.0 (2022) 14.4
Onion 1,953 2011 11 0.8 (2016) 12.2
datadogpy 559 2015 56 0.45.0 (2023) 8.4
Wheel 421 2012 57 0.40.0 (2023) 11.0
Magic Wormhole 16,569 2015 34 0.12.0 (2020) 8.3
docopt 7,816 2012 11 0.6.2 (2014) 11.2
httpbin 11,812 2014 13 0.7.0 (2018) 9.1
bottle.py 8,015 2009 82 0.12.25 (2023) 14.0
hugo 67,803 2013 230 0.115.0 (2023) 10.0
xhyve 6,399 2015 2 0.2.0 (2015) 8.1
zeal 10,532 2015 10 0.6.1 (2018) 8.2
Orc (liborc) 58 2009 36 0.4.28 (2017) 14.1
Gephi 5,371 2010 19 0.10.1 (2023) 13.4
vim-airline 17,286 2013 11 0.11 (2019) 10.0
zsh-completions 6,078 2011 38 0.34.0 (2022) 11.6
ProsodyIM 564 2008 54 0.12.3 (2023) 14.6
qtile 4,103 2008 34 0.22.1 (2022) 14.8
autokey 2,778 2016 28 0.96.0 (2022) 6.5
bup 6,961 2013 37 0.33.2 (2022) 9.8
You-Get 47,650 2012 157 0.4.1650 (2022) 10.8
Ramda 23,079 2013 55 0.29.0 (2023) 9.5
kubectx 15,467 2017 20 0.9.4 (2021) 6.2
Music Player Daemon (mpd) 1,878 2004 189 0.23.13 (2023) 19.3
wkhtmltopdf 13,278 2008 50 0.12.6 (2020) 15.1
pywinauto 4,133 2006 33 0.6.8 (2019) 17.5
Perkeep 6,202 2013 11 0.11 (2020) 10.1
asn1c 937 2014 3 0.9.28 (2017) 8.8
React Native 110,402 2015 468 0.72.1 (2023) 8.3
StreamEx 2,067 2015 42 0.8.1 (2021) 8.2
3proxy 3,095 2014 16 0.7.1.2 (2015) 9.2
Flow 21,991 2014 305 0.210.2 (2023) 8.6
JaCoCo 3,680 2009 46 0.8.10 (2023) 13.7
iodine 5,204 2006 14 0.8.0 (2023) 17.0
foreman 5,876 2010 129 0.87.2 (2020) 13.1
Pry 6,621 2010 74 0.14.2 (2023) 12.6
xonsh 7,097 2015 120 0.14.0 (2023) 8.3
ccls 3,422 2018 31 0.20220729 (2022) 5.1
Colyseus 4,959 2016 118 0.14.17-alpha.1 (2021) 6.5
Teeworlds 2,138 2011 22 0.7.5 (2020) 12.4
Numba 8,711 2012 194 0.1.1 (2012) 10.9
XMonad 3,044 2007 22 0.17.2 (2023) 16.2
Tendermint 5,523 2019 243 0.37.0-rc2 (2022) 4.3
Cosmos-sdk 5,268 2020 278 0.50.0-alpha.1 (2023) 3.1
Elm Language 7,217 2013 26 0.19.1 (2019) 10.1
winapi-rs (Rust) 1,683 2017 8 0.3.9 (2020) 5.5
Paper.js 13,797 2011 63 0.12.17 (2022) 12.0
Knex.js 17,697 2013 176 0.16.2 (2018) 10.1
zoxide 11,005 2020 29 0.9.1 (2023) 3.3
OpenRC 1,218 2015 118 0.47.1 (2023) 8.2
Notary 3,051 2015 20 0.7.0 (2021) 7.6
Enlightenment 94 2012 88 0.25.3 (2022) 10.5
mpv 22,781 2013 82 0.35.1 (2023) 9.9
PyTransitions 4,923 2014 46 0.9.0 (2022) 8.7
Stylus 11,098 2011 170 0.59.0 (2022) 12.4
nw.js 39,684 2012 330 0.14.0 (2016) 11.3
Video Speed Controller 3,398 2019 10 0.7.3 (2022) 3.5
Pyre 6,387 2018 83 0.9.18 (2023) 5.2
Qiskit 3,015 2018 95 0.43.2 (2023) 4.6
graphile-worker 1,290 2019 39 0.14.0-rc.0 (2023) 4.3
Monero 7,960 2014 63 0.18.2.2 (2023) 8.8
MultiMC Launcher 3,931 2014 46 0.6.16 (2022) 9.5
ASCEND 1978 0.9.8 (2012) 45.1
Dash 1997 0.5.9.1 (2016) 26.1
docutils 2002 0.19 (2022) 21.5
Compiz 2006 0.9.13.1 (2016) 17.1
distlib 2013 0.2.6 (2017) 10.3
PuTTY 1999 0.7 (2017) 24.5
MAME 2,796 1997 196 0.196 (2018) 26.4
Dwarf Fortress 2006 142 0.44.09 (2018) 16.9
Cataclysm: Dark Days Ahead 1,775 2013 15 0.C (2015) 10.4
Window Maker 1997 92 0.95.8 (2017) 26.5
ReactOS 4,912 1996 55 0.4.9 (2018) 27.5
OpenStreetMap API/website 2004 14 0.6 February 2021 (2021) 18.9
three.js 75,000 2013 133 0.13 (2021) 10.0
google-api-client (ruby) 2,400 2010 201 0.53.0 (2021) 12.7
rand 1,411 2015 64 0.8.5 (2022) 8.4
esbuild 35,574 2020 377 0.18.11 (2023) 3.2
suhosin 2006 0.9.38 (2015) 16.8
Pure Data 1996 0.52-1 (2021) 27.1
XeTeX 2004 0.999992 (2020) 19.2
PipeWire 2017 0.3.72 (2023) 6.0
gettext 1987 0.22 (2023) 36.5


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 Vault and Terraform


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.

TOML

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!

Apache Kafka


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.

OpenSSL

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.

Selected Emeriti

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) 490 2014 35 0.11.0 (2021) 6.7
Apache Kafka 25,273 2013 53 0.11.0.3-rc0 (2017) 4.3
Minikube 26,790 2016 52 v0.35.0 (2019) 2.8
Arrow (Python) 8,328 2013 45 0.17.0 (2021) 7.8
Home Assistant 61,322 2015 686 0.118.5 (2020) 5.3
Nim 15,194 2012 24 v0.20.2 (2019) 7.6
Windows Terminal 89,378 2019 40 v0.11.1333.0 (2020) 1.0
Bitcoin 70,195 2009 258 v0.21.2rc2 (2021) 11.7
Caddy 47,917 2015 47 v0.11.5 (2019) 4.0
Werkzeug 6,391 2007 61 0.16.1 (2020) 12.2
Cython 8,043 2008 175 0.29.35 (2023) 14.8
TOML 18,467 2013 6 v0.5.0 (2020) 7.4
Flask 63,468 2010 24 0.12.5 (2018) 8.0
SciPy 11,421 2001 92 v0.19.1 (2017) 16.2
Pandas 38,877 2011 94 v0.26.0.dev0 (2020) 8.9
PyTorch 68,394 2016 17 v0.4.1 (2018) 2.1
HTTPie 28,274 2012 30 0.9.9 (2018) 6.7
scikit-learn 54,948 2010 90 0.24.2 (2021) 11.7
certbot 30,015 2015 83 v0.40.1 (2019) 4.2
sshuttle 10,057 2015 12 v0.78.5 (2020) 4.5
Theano 9,751 2011 27 rel-0.10.0beta4 (2017) 6.3
Bokeh 17,708 2013 44 0.13.0 (2018) 5.4
rq 8,985 2012 47 v0.13 (2019) 7.0
drone 27,018 2014 30 v0.8.10 (2019) 5.0
HashiCorp Terraform 37,900 2014 195 v0.15.5 (2021) 6.9
HashiCorp Nomad 13,718 2015 126 v0.12.12 (2020) 5.4
HashiCorp Vault 27,957 2015 65 v0.11.6 (2018) 3.5
html5lib-python 1,037 2007 15 0.999999999 (2017) 10.9
MyPy 15,635 2014 72 v0.991 (2023) 8.2
asn1crypto 294 2015 29 0.24.0 (2019) 4.2
Julia 42,712 2013 63 v0.7.0 (2018) 5.5
Flatpak 3,761 2015 89 0.99.3 (2018) 3.4
Meson Build System 4,742 2013 135 0.64.1 (2022) 9.8
Wekan 18,682 2015 99 v0.99 (2018) 2.7
runc 10,498 2015 12 v0.1.1 (2016) 0.9
MechanicalSoup 4,404 2014 23 v0.12.0 (2021) 6.6
Sway Window Manager 12,567 2016 41 0.15.2 (2018) 2.0
Pilosa 2,466 2017 29 v0.10.1 (2018) 1.4
fail2ban 8,364 2004 62 0.11.2 (2022) 18.0
ClamAV Antivirus 3,029 2007 177 clamav-0.105.2 (2022) 15.7
dateparser 2,305 2014 20 v0.7.6 (2020) 5.9
rollup 23,646 2015 260 v0.68.2 (2018) 3.6
VS Code C/C++ extension 5,122 2017 109 0.30.0-insiders5 (2020) 3.5
React 209,824 2013 47 0.14.10 (2019) 5.8
Rake 2,251 2011 2 v0.9.2.2 (2014) 2.6
Chocolatey 9,171 2015 60 0.12.1 (2022) 7.1
PHPStan 11,963 2016 160 0.12.100 (2021) 5.3
Nuitka 9,196 2011 285 0.9.6 (2022) 10.9
GoReleaser 11,795 2016 468 v0.184.0 (2021) 4.9
axios 100,759 2014 59 v0.27.2 (2022) 7.8
Forge 4,741 2013 129 0.10.0 (2022) 8.6
Stellarium 4,856 2017 37 v0.22.2 (2022) 5.5
Semgrep 8,357 2020 156 v0.123.0 (2022) 2.8
Datasette 7,943 2017 131 0.64.3 (2022) 5.0
LocalStack 47,594 2016 50 v0.14.5 (2022) 5.6
globalid (ruby) 1,090 2014 18 v0.6.0 (2021) 7.3
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 20,663 2015 94 v0.32.11 (2020) 5.7


With any luck, these projects will realize their folly.

More info

Check out the About page.


Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments