rcmdnk's blog

Semantics: Primes and Universals (St. in Classification Data Analysis)

Gitのタグの話をしたので そのタグを付ける際のバージョニングについて。

Semantic Versioning

ソフトウェアのバージョンなどを見ていると大体X.Y.Zみたいな形を しているかと思いますが、 そのバージョン付けの方針として Semantic Versioning というものが広く知られています。

Semantic Versioning 2.0.0 Semantic Versioning

セマンティック バージョニング 2.0.0 Semantic Versioning

Software versioning - Wikipedia

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 1.0.0 Semantic Versioning

ということで現在のSemantic Versioningでは特に言及はしていませんが、 Semantic Versioning自体のバージョニング ではvを付けたバージョニングを使っています(現在v2.0.0)。

この辺をきっちり書いたものは見つかりませんでしたが、慣習として Git等のバージョン管理システムを使う場合はvX.Y.Zとしている、という感じです。

Linuxのカーネルもこの形です。

Releases · torvalds/linux

kernel/git/torvalds/linux.git - Linux kernel source tree

Git-Flowなんかの説明でも特に深く言及すること無くさらっとvX.Y.Zの形が出てきたりします。

git-flow cheatsheet

ということで、gitのタグ付けでバージョンを切ったりリリースを作る様な時は vX.Y.Zの形で書いておくのが無難だと思います。

複数人で行ってるプロジェクトなどは最初にこの辺を決めておくと思いますが、 決まってない場合はとりあえずこれに従う形にしておけばOKです。

個人で作ってるものでも なんとなく数字を変えてくだけではなくて 意味のあるバージョン付けが出来る様にしておいた方が後々便利です。

Sponsored Links
Sponsored Links

« Boseからも完全ワイヤレスイヤホン発売 親指Controlのすすめ »