Switching to Calendar Versioning in 2020.1

Hi! We hope 2020 is treating you well, despite its unique challenges. At Datalust we've settled into a new fully-remote workflow, which, thankfully, we were reasonably well-prepared for by our existing partly-remote schedule. We know it hasn't been so easy for everyone, so if you're facing any difficulties we can help with, we hope you'll be in touch.

While the next big Seq update has been in development for almost a year, it's been under the banner of Seq 6.0 so far. Seq has used an approximation of SemVer to communicate the significance and compatibility of releases since right back at 1.0, but we're increasingly suffering the downsides of attaching expectations to a release based on its numbering.

In particular, shipping a "major version" as a signal to users that they should consider upgrading is a problem: completed features often sit as inventory, waiting for other unrelated features, so that a "major" version can ship with enough "major" features. This is bad for users, and causes a lot of frustration for us.

There's also a blurry line between "major" and "minor" - Seq 5.1 added pluggable inputs, a bunch of peformance and usability imporovements, and these made enough impact for some customers that the release probably deserved to be a 6.0, despite being fully backwards-compatible with version 5.

Looking to other products we use and love, we're not alone in struggling to match a change significance versioning scheme to our needs. Going forwards, Seq is switching to calendar versioning, with releases numbered according to the year of release, and the sequential release number within that year.

The year and release number together will determine what features (some big, some small) a build contains.

Calendar versioning example: 2020 (year) . 1 (release) . 4018 (build) -pre (status, optional)

Along with the year and release number, Seq executables and container images will be marked with a build number, and also a status tag.

Build numbers carry on an unbroken sequence we began with Seq 4.2, and we'll stick with that scheme - it's a little living piece of our development history. 4018 CI builds since then - many green, more than a few red 😁.

Within a release, the build number will change to reflect the addition of bug fixes or cosmetic improvements.

Builds that don't have full mainstream support will continue to be tagged with a status like -pre (preview).

Soon, we'll be shipping Seq 2020.1, a major release by any measure. You can download the latest preview from https://datalust.co/download, or pull the datalust/seq:preview tag from Docker Hub.

Happy logging!

Nicholas Blumhardt

Read more posts by this author.