[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