読者です 読者をやめる 読者になる 読者になる

danglingfarpointer's memoization

仕事周りでの気付き、メモ、愚痴などを書いていきます。

バージョン番号の考え方

外(外部組織や不特定多数)に対して、ソフトウェアや文書のような継続的に見直しのかかるアーティファクトを展開していく場合、バージョン番号のルールを決めておくのが常だと思われる。

しかし、ざっと調べる限りではあるが、これがデファクト〜!と謳われているルールは見受けられない。

一方で、ある程度汎用的な考え方はあると思われるので整理してみる。

まず、バージョン番号は3つの番号の組からなる。例: 1.0.5, 2.12.128

先頭のものから順に「メジャーバージョン」、「マイナーバージョン」、「リビジョン」と呼ぶ。それぞれの意味は次の通り。

  • メジャーバージョン: 互換性のない変更を表す。例えばある機能が削除されることや変更されること(ただし単に増えることは除く)、その他大幅な変更を表す。利用者にとっては、メジャーバージョンがアップすると、今までと同じ使用方法が保証されないことを意味する。メジャーバージョンは通常1からスタートする。メジャーバージョンが0である場合は、まだ大幅な見直しのかかる可能性があることを意味する。

  • マイナーバージョン: 互換性のある変更を表す。例えば機能が単に増えることや使用の前提条件が緩和されることを意味する。利用者は、マイナーバージョンがアップしても、今までと同じ使用方法を期待してよい。

  • リビジョン: 仕様修正の伴わない軽微な変更を表す。例えば不具合修正など。メジャーとマイナーバージョンが同一ならば、通常はリビジョンがアップするほど安定的になる。

なお、内部管理用のバージョン番号については、上記の運用と必ずしも同一にする必要はないだろう。