Aesthetic Versioning
Table of Contents
Aesthetic Versioning is a new type of software versioning scheme that stops pretending version numbers are meaningful, and just lets you put numbers you like instead.
Overview
In Aesthetic Versioning, the version number is made up of three numbers:
- The first number is a number you like, such as 7, 25, or 39.
- The second number changes whenever you feel like the third number is too big.
- The third number increases randomly.
Projects using Aesthetic Versioning should not have any of those annoying suffixes (like
post
, dev
, or rc
) added to the version number, as they don’t convey any information that
the third number doesn’t.
A Comparison
Here’s a quick table comparing some common versioning schemes to Aesthetic Versioning:
# | Semantic Versioning | Zero Versioning | Calendar Versioning | Aesthetic Versioning |
---|---|---|---|---|
Major number | Changes randomly | Always zero | Changes every year | Never changes! |
Minor number | Changes randomly more often | Changes randomly more often | Changes randomly more often | Changes randomly |
Patch version | Might as well be useless | Might as well be useless | Might as well be useless | Changes randomly |
Why?
Trolling people who don’t set their requirements version to =version
.
Why, but for real?
Version numbers don’t mean anything. Upgrading one of your dependency’s versions has about a 20% chance of causing everything to explode no matter what versioning scheme the dependency uses. The chance increases significantly when upgrading between minor versions, where some people evidently have a different definition of “breaking change” to you.
“Breaking changes” as a concept is nebulous and undefined anyway; every versioning scheme has its own escape hatch for when you want to break things and still stay within the rules-based order of your self-imposed conditions:
- SemVer: Reclassify it as a bug. Or just bump your major version number every six months, thus removing any hope of being able to update.
- CalVer: Just wait a year and you can annoy everyone all over again.
- ZeroVer: Just break it!
Aesthetic Versioning just makes it explicit that you don’t do any hand-wringing about removing or rewriting terrible APIs.
Is this a joke?
No, this is serious. This isn’t a parody, or a satire.