最初のリリースの semver はなぜ 0.1.0 なのか


Semver (Semantic Versioning) は 0.1.0 始まりで良いとだけ覚えていたが理由を詳しく調べた。

semver.org の FAQ に次のような記述がある。

How should I deal with revisions in the 0.y.z initial development phase? The simplest thing to do is start your initial development release at 0.1.0 and then increment the minor version for each subsequent release.

このように最初のリリースのバージョンは 0.1.0 が推奨されている。

これでおしまいでもよいのだけど、なぜ 0.0.0 でも 0.0.1 でもなく 0.1.0 なんだろう? spec を注意深く読むと、最初の semver x.y.z について

を全て満たす必要があると解釈できる。そのような最小のバージョンが 0.1.0 であるということなのだな。 自信があるなら最初から 1.0.0 にするストロングスタイルもありということにもなる。

ところで semver は https://github.com/semver/semver で標準化 (?) されているようで、上に貼った spec もそのリポジトリの GitHub Pages だ。 この話題で調べていると semver はラフな仕組みだという記述をちらほら見かける。だからあまり深く考える必要はなく、規格にするほどでもないということなのだろう。