Skip to content

versioning

dozens edited this page Nov 7, 2025 · 2 revisions

versioning

  1. semver
  2. alternatives
  3. Further Reading

there are lots of types of versioning practices

semver

semantic versioning

semver exists to allow / encourage shipping broken code. by definition a major version introduces breaking changes. that is, if you upgrade to a new major version, you should expect your code to no longer work. this is insane! why would you ever do that?

Spec-ulation Keynote - Rich Hickey: https://www.youtube.com/watch?v=oyLBGkS5ICk&t=1793s

alternatives

not semver

  • calver: YYYY-MM etc, for timed released
  • solover: a single number that goes up
  • zerover: never releasing a major version
  • perver: releases based on the periodic table
  • tarotver: pick a tarot card
  • flipflopver: odd numbered releases are unstable, evens are stable (see: node.js)
  • hashver: YYYY.MM.Hash. tied to git commit hashes. unambiguous.
  • pride versioning: Proud.Normal.Shame
  • piver: "Since version 3, TeX has used an idiosyncratic version numbering system, where updates have been indicated by adding an extra digit at the end of the decimal, so that the version number asymptotically approaches π. This is a reflection of the fact that TeX is now very stable, and only minor updates are anticipated"
  • fiver: releases converge on the number 5
  • sentimental: just do something creative and original
  • effver: Effort based versioning. Macro.Messo.Micro
  • romver: Romantic versioning. HUMAN.MAJOR.MINOR
  • romcomver: When your code and its release have a meet cute and decide to see where this thing goes.
  • rover: bow wow wow
  • octobver: ???

Further Reading

Why and How I Version My Blog

When I moved this blog from WordPress to Hugo, I added a version number to the footer. For example the version number v24.628.M.2111 tells me that:

  • The blog was last updated in 2024.
  • There have been 628 updates so far this year.
  • The most recent update involved multiple changes on November 21st.

https://rishikeshs.com/blog-version/

Versioning as Communication

Like I said, versioning schemes exists primarily as communication tools. If you don't use SemVer, your users need to read the changelog entry for every single version they're upgrading between. That's a lot of work

https://xavd.id/blog/post/versioning-as-communication/

Blogging with Version Control

In regards to a sorting algorithm, you would need to convert this version number formatting to a system whereby the dot seperators are temporarily removed, and the version numbers can be sorted. Something like the following JavaScript would work:

https://willdarwin.com/writing/vcs

Semantic Versioning for Papers: A Manifesto

In writing the current paper I’m working on, I have decided to adopt a semantic versioning scheme for each draft of the paper.

https://ericmjl.github.io/blog/2015/4/3/semantic-versioning-for-papers-a-manifesto/

Clone this wiki locally