[Bf-committers] Use of semantic versioning

Chad Fraleigh chadf at triularity.org
Sat Dec 8 19:45:40 CET 2018


On 12/8/2018 3:58 AM, Mick Lawitzke wrote:
> it is really awesome to see the latest development of Blender. I am super impressed and hyped for what is coming. Anyway i think there is a big flaw that also results in a problem with marketing: Your versioning numbers suggest that 2.80 is just a minor update to 2.79 and people call it 2.8 (eight) instead of 2.80 (eighty).
> 
> I am a software developer for 15 years now and i highly recommend you to use semantic versioning:
> 
> - Current version is Blender 2.79 but what if you do bugfixes on 2.79, you would not call it 2.80 right? A better approach would be to call it 2.79.0 and then a bugfix makes it 2.79.1. The current latest version might be 2.79.102 if there were 102 patches on that version.
> - The next version would be 2.80.0. But since you worked 3 years on that and introduce so many awesome improvements and changes this is a major update and would introduce Blender 3.0.0 (Or short just Blender 3).

It does use semantic [compatible] versioning, just not in standard 
dot-notation. Think of it more like 2.<major><minor>[<patch>], where the 
leading 2 is [mostly] meaningless (similar to JDK versions 1.2, 1.3, 
1.4, ... where the 1 part is basically ignored).

Blender -> "standard" dot notation examples:

2.7 -> 2.7.0.0
2.70 -> 2.7.0.0
2.78 -> 2.7.8.0
2.78a -> 2.7.8.1
7.78b -> 2.7.8.2


>  From marketing perspective a "Blender 3" would have a much bigger impact than just an update from "2.79" to "2.80" which is also incorrectly called "2.8", too.

2.8 is shorthand for 2.8x, like "version 4" is shorthand for 4.x (in 
standard dot notation).


> In addition to that i just wanted to mention, that some big projects skipped a version to make the latest update even more obvious:
> 
> - Windows jumped from 8 to 10
> - PHP jumped from 5 to 7
> 
> This could be an option for Blender, too, to improve the marketing even further: Jump from 2.79 to Blender 4. But in my opinion a jump to 3 would already do the job.

Ugh.. manipulative, fake version jumps is for products that care more 
about PR than actual quality. And it is anti-semantic versioning, since 
it breaks the logical/meaningful progression it was designed for 
(instead of projects just picking versions out of a hat, all willy nilly).


Personally, I've always thought it was a little confusing, too, but for 
backward compatibility, that's what it is. Of course, when it eventually 
gets past version 2.99, there might be an opportunity to move to 
standard notation (e.g. 3.<minor>[.<patch>], then 4.x.x, ...) without 
breaking the 2.x numbering style. Another option could be to market it 
as "Blender 8" (where the 2.* is ignored), but still use 2.8x elsewhere 
(however, that is confusing just like what java/JDK did). Maybe 
"jumping" to version 8.x (for technical realignment, not 
trying-to-impress PR reasons). Really, 9.x would be the earliest this 
could be done since 2.8x is already so heavily ingrained. The last 
option would be my vote, given that 2.9x planning is probably little 
more than a concept at this point and could easily be made 9.x.

So there's my 2 1/2 cents on the subject. Any similarity between my 
thoughts and those of a raving madman may be more than just coincidental. =)


-Chad


More information about the Bf-committers mailing list