So, semver is great and all, but 0.0.x releases just look silly, in my opinion. I've never seen someone zero index the least significant column before though, which makes it look even worse.
Would people actually expect w piece of software marked as version 0.0.0 to be anything more than a placeholder?
It's funny that programmers treat zero-indexing arrays and things as normal (even "correct"), but suddenly zero-indexing versions is something wacky. What's weird to me is that 0.0.0 isn't more common in the developer world, given how frequently we start counting from 0.
Because non-developers deal with versions. Sure, programmers use zero-indexing because it makes a lot of common things a lot easier, but I can't imagine anyone expecting that to extend to the regular world where the first item being 1 is ingrained, and makes more sense given the use.
For this reason, 0.x versions can make sense - they serve as a good flag for 'this is pre-release', because people expect version 1 to be the first released version.
I find 0.0.x versions wacky too. Version numbers (in contrast to array subscripts) are only useful in relation to previous version numbers. Ideally when a new version of the software I use comes out I can decide whether to upgrade only by comparing the version number with the one I use. E.g. in semver increased minor number means "new functionality added". So when 0.0.0 version comes out, what does it mean, compared to the absence of software? No functionality at all? :)
What does 0.0.1 mean, compared to the absence of software? You can't compare 0.0.1 to anything if there's no other previous release.
Starting at 0.0.1 is at least just as arbitrary as starting at 0.0.0, and your aversion to starting at 0.0.0 suggests you're making implicit assumptions about what the non-existent 0.0.0 means when starting at 0.0.1. But if 0.0.0 doesn't even exist then you can't really make any assumptions about it.
At least 0.0.0 is clearly the very first version of something. Starting at 0.0.1 doesn't make clear that there isn't an earlier 0.0.0.
To me, 0.x version numbers suggest that a project is not stable and can change in incompatible ways at any time... or be abandoned, even. 0.0.x, even more so. That said, some projects stay in 0.x territory for so long that this no longer applies.
0.0.0 is kind of weird... for some reason it suggests to me that zero lines of code have been written so far. (If there was code, the version number would have been higher.) But this is obviously not the case here. I do wonder what versions they used before this release?
Then again, I know of at least one non-trivial project that used negative version numbers... I guess, in the end, it just means what the developers say it means.
Maybe it's because I come from a physics background, but 0.0.0 also seems to me as the version for the first thought of building something. So after one writes any amount of code, it should get incremented to 0.0.1 or something..
> "A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]" [1]
I think they should use 0.0.1-pre instead of 0.0.0. The version 0.0.0 I would consider as "the development have not started yet".
I don't get it why I got down-voted since I haven't suggested to use 0.0.1-pre. I have just pointed out that is weird to release version with only zeros - we usually take zero as point to "nothing, void" for non-techie folks (most of end-users).
Oh If you would search SemVer repository on GitHub then there are some mentions about 0.0.0 [1]. It is interesting point of view but I prefer non-production versions ready as 0.x.y, where x is greater or equal to 1. So yes, the 0.1.0 is way more meaningful and I recommend it.
I'm happy to see the 0.0.0 release - it means that I might just be using this some day. Few weeks ago, having not heard about the project for a while, I was afraid it had become vapourware.
Alpha typically means feature complete, but untested and thus unsuitable for general release. You don't need to use good-looking version numbers for that.
Beta means what you think alpha means. Alpha means that some features are done, but others aren't, and the entire application is still subject to change.
Server recommends starting at 0.1.0 – starting at 0.0.0 essentially means (to me at least) that nothing has been written and nothing has been released. Initial versions (IMO) should begin with 0.1.0.
Would people actually expect w piece of software marked as version 0.0.0 to be anything more than a placeholder?