バージョン番号の付け方

このセマンティック バージョニングはライブラリの場合はとても良いのだけれど、パッケージ製品に採用するにはずーっとしっくり来なかった。

割り切ってしまえば、ひたすらメジャーバージョンアップだけ上げていったっていいわけで、だとしたらあまりバージョン番号は関係ないなと。

もっとシンプルなのは無いのだろうかと模索していたのだが、結構身近に YY.MM.patch というバージョン番号を付けている Ubuntu というのがあった。

Ubuntu は 16.04.1 のように年と月そしてセキュリティパッチという形でバージョニングをしている。これとてもわかりやすい。Ubuntu の場合は 04 と10 しか月がないが、年に 12 回しか多くてもリリースがないというのはシンプルだ。

ejabberd は Erlang/OTP で書かれた XMPP サーバだが、あるタイミングで YY.MM というバージョンを採用した。ぱっとみシンプルだと自分は感じた。

いつリリースされたのかが一目見てわかること、毎月最大 1 回しかリリースタイミングが無いこと、API 互換とかを意識すること無くバージョンをふれることがある。もちろん下位互換性を適当にしろという意味では無い。

時雨堂の WebRTC SFU Sora は現時点で 3.2.5 (内部リリース含む) だが、今年(2016) の年末にリリースするバージョンから 16.12 というバージョンに変更する予定だ。その後 2017 年 03 月にリリースした場合は 17.03 といったリリースバージョンになる。

バグ修正などは 17.03.1 といった形でリリースする。

リリースする人がバージョンを考えなくて良いのはとても楽だ。シンプルだと思っている。ただメジャーバージョンアップ!というアピールがしにくいのが欠点といったら欠点かもしれない。