Gitのタグの話をしたので そのタグを付ける際のバージョニングについて。
Semantic Versioning
ソフトウェアのバージョンなどを見ていると大体X.Y.Zみたいな形を しているかと思いますが、 そのバージョン付けの方針として Semantic Versioning というものが広く知られています。
Semantic Versioningの方針ではX.Y.Zと言った
.
で区切られた3つの数字を使って
- X: メジャーバージョン。後方互換性が無いアップデートを含む場合に上げる。上げた際はY、Zは0に戻す。Xが0の時は開発段階。1以降で正式リリース。
- Y: マイナーバージョン。後方互換性のある機能追加等を行った場合に上げる。上げた場合はZは0に戻す。
- Z: パッチバージョン。後方互換製のあるバグフィックスを行った場合に上げる。
というのが基本。
さらに、アルファ/ベータリリースの様な場合、
1.0.0-alpha
と言った形で通常バージョンの後ろに-
で繋いで数字やアルファベットを付ける事も出来ます。
また、
GitHubにあるレポジトリを見ていると、大概のレポジトリでv1.2.3
の様に
バージョンの前にv
が付いているものが多いです。
この辺についてSemantic Versioning 2.0.0では何も言及してませんが これはバージョニングの考えの範囲外、ということで今は外されています。
1.0.0の時は
Tagging Specification (SemVerTag)
という項目があって
そこにGitとかのバージョン管理システムを使う場合はvX.Y.Z
という形を取らなくてはならない(MUST)と書いてありました。
specify prefixed by ‘v’ or not · Issue #204 · mojombo/semver
Address “v” prefixing in the FAQ by beck · Pull Request #234 · mojombo/semver
ということで現在のSemantic Versioningでは特に言及はしていませんが、
Semantic Versioning自体のバージョニング
ではv
を付けたバージョニングを使っています(現在v2.0.0)。
この辺をきっちり書いたものは見つかりませんでしたが、慣習として
Git等のバージョン管理システムを使う場合はvX.Y.Z
としている、という感じです。
Linuxのカーネルもこの形です。
Git-Flowなんかの説明でも特に深く言及すること無くさらっとvX.Y.Z
の形が出てきたりします。
ということで、gitのタグ付けでバージョンを切ったりリリースを作る様な時は
vX.Y.Z
の形で書いておくのが無難だと思います。
複数人で行ってるプロジェクトなどは最初にこの辺を決めておくと思いますが、 決まってない場合はとりあえずこれに従う形にしておけばOKです。
個人で作ってるものでも なんとなく数字を変えてくだけではなくて 意味のあるバージョン付けが出来る様にしておいた方が後々便利です。