Live data from Hacker News

Why we’re switching to calendar versioning

cockroachlabs.com

61–70 of 167 posts

Re: Why we’re switching to calendar versioning

#61
This feels like the "product version" has taken over again.

I promote semver internally primarily for wiring together build automation. But I also try to make it clear that there can be a _completely different_ "product version" that can mean whatever the hell we want it to be. Calendar versions are great product versions.

Many people, frequently product managers, are very uncomfortable with this distinction.

So many places use the product version as "the version", which then becomes the main justification for monolithic version control, even for distributed applications or multiple product lines. So now, you re-build and/or re-deploy everything, even things that had no changes, purely to stay in sync with "the version".

There are usually good _technical_ reasons for monolithic version control, but doing it just to slap a product version on everything usually ends up with an alarming amount of waste.

Re: Why we’re switching to calendar versioning

#63

In one of the startups that I worked marketing people really wanted us to quickly go through version 1, 2 and reach version 3 because "many corporations aren't even looking at tools if they are not version 3 yet" :D They didn't really care what features should be included in those versions :) Fortunately sanity prevailed and we stayed with semver.

Trick question: was the startup successful?

Not that I agree with ditching semver, but the way you stated it actually sounds like a good argument for doing it, not against. Sometimes marketing people have a point.

Re: Why we’re switching to calendar versioning

#65
post #30

Earlier quoted context omitted.

I think the language-backed semver can be useful (I really want Cargo to support this mode!). The general unguided semver seems less useful. I envision a much simplified alternative (or analogue) to the semver: there is a single decimal revision, and you should strive to be compatible back to the first revision. When you are willing to break the compatibility, you simply rename. This is similar to Go's practice but c…

This is my issue with semver. I don't care about minor non breaking change, just give me the latest. Breaking change is the only thing I want to know about so realistically I only need to worry about major version updates right? So lib: 1.* Should be fine, right? But it's not and when people quip well you should have pegged your versions it's like what? Maybe you shouldn't have broke backwards compat?

You assume software is perfect and people don't make mistake. Breaking compat on accident happens. Bad pushes and releases exist. Unpatched bugs in latest. Wrong deployments.

Semver make it easier to spot/prevent mistakes by giving you more granular information. It's not like it's a data overload, so "too much info" as argument is really weird.

Purity in computing is a terrible master.

Re: Why we’re switching to calendar versioning

#66
post #41

Earlier quoted context omitted.

Marketing will, of course, do whatever they want. 3.x, 95, 98, ME, XP, NT, Vista, 7, 8, 10. Or just change the name when they want, ala macOS. Edit: added Vista... thanks!

XBox -> XBox 360 -> XBox One... If the next console from Microsoft is controller that live streams games from the cloud I expect it to be called the XBox ExBox.

And if it’s a full console, the next Xbox should be the ‘Xbox 361’. Or the ‘Xbox -359’, maybe?

Re: Why we’re switching to calendar versioning

#67
Seems like most folks here are missing the really interesting part about the article: > But was this enough of a value jump to merit the leap to 3.0? Semver said nothing about "value". Semver only talks about breaking changes and added functionality vs. purely fixing bugs. For many users and libraries this is more than sufficient, because it allows you to manage risk when upgrading. However, lets enter some false preconceptions and more importantly Enterprise:

False preconceptions: Historically major versions of software, pre-semver, had major new features. Many people still have the expectation that this will be the case. This still gets reinforced by many software products (as opposed to libraries). We'd all be surprised if Apple released a new iOS major version and it has no new significant features, but just breaks some APIs that had been deprecated. This is what server would dictate, but would break human expectations.

Enterprise: I am sure CockroachDB has support contracts with some larger companies. What are the terms? Are there some support durations that are based on major version numbers? Now majors aren't free anymore. Even if their support contracts don't care about major vs minors, you want your customers to upgrade ASAP, because the older the version you have to support, the more different is that code base from what you are actively working on and the fewer other customers will benefit. A fix on your latest version will likely be with the product forever, whereas a fix on a version that's three years old might not even be relevant to your latest. A major release in server has per definition breaking changes. So this won't be a zero-cost upgrade. Many enterprises in addition have much heavier procedures to upgrade a major dependency, especially for something like a database. This makes for a lot of reason not to upgrade. So now you need some very good carrots to get users to upgrade.

Even if you don't have paying customers, breaking changes without a big carrot can be a problem. Nobody wants a mess like Python 2.7 vs. 3.

It seems like CockroachLabs just has passage of time make the decision for them now. I'd be very curious to see how this will impact how far behind latest their customers will be.

Re: Why we’re switching to calendar versioning

#68
post #56

Earlier quoted context omitted.

Best thing about moving to the US was that all those phrases "coming summer 2019" actually make sense! In Australia we don't really use seasons as references (the seasons aren't as distinct as they are here) - and because they were then flipped as well I never really thought they had a real meaning. I guess I must have known they did have a real meaning, but my "consumer" grasp of them was more like vague marketing f…

What a brilliant observation, I love finding things like that where you never really thought consciously about something. I'm similar to you, though I don't even have the excuse of living with different seasons - I just never really thought about it.

As an also-Australian, my brain just doesn’t process seasons like Americans.

If someone says “coming in the Spring” I literally have no idea when that is. The dates of seasons are meaningless.

Re: Why we’re switching to calendar versioning

#69
post #40

Earlier quoted context omitted.

A point not highlighted in OP article is that Enterprise customers are shy to upgrade to a "next major version" because they will _assume_ there are breaking changes in there (even though semver allows bumping the major number without breaking changes). Calver side-steps this user bias.

Why are developers always insistent on trying to trick the user into doing what they want them to do, or what they think is best, instead of letting users do what users want to do? Users shy away from major version numbers because they are allowed to change things in incompatible ways. When you jump a major version you're signaling that stuff might intentionally break, and they make their decisions accordingly. The s…

This could easily be solved by something along the lines of “Version 3.0 maintains full compatibility with Version 2.2” at the top of their release notes.

I dislike the idea of going away from SemVer just for marketing purposes. At least as a user when I’m going to upgrade versions then I could see that “oh, this version doesn’t break compatibility”

Re: Why we’re switching to calendar versioning

#70
The versionings are not mutually exclusive. In our company we use calver, it is used mainly for planning and business purposes and works well. During the quarter or whatever period there can be multiple semantically versioned releases made. The only problematic is the YY format choice. Lots of people confuse 19.3 with March 19th in our country.
Post reply on HN