ソフトウェアのバージョン表記について解説
こんにちは、白くまコージです!
自分が使っているアプリやソフトウェアの更新通知が来た時に、アップデートをしようか迷ったことはありませんか?
ソフトウェアのバージョン表記について理解していると、アップデートがどのような意味を持つかが理解できるようになります。
アップデートの意味を理解することで、どのタイミングでアプリやソフトウェアをアップデートすべきかの判断ができるようになります。
そこで、今回はソフトウェアのバージョン表記について解説します。
ソフトウェアのバージョン表記とは「3.1.5」のような形式で表された数値のことです。
ドット(.)で区切られた各数字はそれぞれ左から「メジャーバージョン」、「マイナーバージョン」、「パッチバージョン」を表しており、明確な意味を持っています。
本記事を読めば、それぞれがどのような意味を持っているかが理解できるようになります。
エンジニア以外の人も日常的にアプリやソフトウェアを使っていると思うので、覚えておいて損はないでしょう。
ぜひ最後まで読んでいってください。
ソフトウェアのバージョン表記
ソフトウェアのバージョン表記では「2.5.1」のような、3つの数字が2つのドット(.)で区切られた形式が一般的です。
このバージョン表記はセマンティックバージョニングと呼ばれるルールに基づいています。
セマンティックバージョニングに従うことで、ソフトウェアのバージョンアップ前後のバージョン番号を見ただけで、どのような変更がそのソフトウェアに対して行われたかがわかるようになります。
バージョン番号を「x.y.z」としたときの、xを「メジャーバージョン」、yを「マイナーバージョン」、zを「パッチバージョン」と呼びます。
それぞれのバージョンの意味を理解することで、バージョンアップ時の変更内容が把握できるようになります。
メジャーバージョン
「x.y.z」の一番左のxがメジャーバージョンを表します。
セマンティックバージョニングの定義では「APIの変更に互換性のない場合」はメジャーバージョンを上げます。
一般的には、大規模な変更や機能の追加が行われる場合にメジャーバージョンが上がります。
バージョンアップの前後でソフトウェアの大幅なデザイン変更や操作性が変わることもあるでしょう。
また、メジャーバージョンアップでは互換性が保証されないこともあります。
有名なソフトウェアの例だと、プログラミング言語のPythonは2系と3系で互換性がありません。
Python2系で動作していたソースコードが3系では動作しない可能性が高いです。
マイナーバージョン
「x.y.z」の真ん中のyがマイナーバージョンを表します。
セマンティックバージョニングの定義では「後方互換性があり機能性を追加した場合」はマイナーバージョンを上げます。
一部の機能追加や細かい機能改善などが行われる場合にマイナーバージョンが上がります。
ただし、メジャーバージョンアップほど大きな変更は加えません。
マイナーバージョンアップには後方互換性があるため、マイナーバージョンを上げることによって、特定の機能が使えなくなるということはないでしょう。
パッチバージョン
「x.y.z」の一番右のzがパッチバージョンを表します。
セマンティックバージョニングの定義では「後方互換性を伴うバグ修正をした場合」はパッチバージョンを上げます。
バグの修正やセキュリティ対策、細かい誤字脱字の修正などが行われる場合にパッチバージョンが上がります。
ソフトウェアにはバグがつきものなので、パッチバージョンのリリースは比較的頻繁に行われます。
バージョンの意味を理解する
メジャーバージョン、マイナーバージョン、パッチバージョンそれぞれの意味を理解することで、自分が使用しているアプリやソフトウェアがバージョンアップされた時の判断に使うことができるようになります。
例えば、どのバージョンが上がったかによって行動を変えることができます。
- パッチバージョンが上がった時
バグ修正が含まれているからすぐにアップデートしよう
- マイナーバージョンが上がった時
新機能が追加されているか確認してみよう
- メジャーバージョンが上がった時
互換性が心配だからちょっと様子を見よう
バージョンの付け方のルール
ここからはバージョンの付け方のルールを紹介します。
0から1つずつ上げる
バージョンは0から1つずつ上げ、欠番が発生しないようにします。
- 例1:2.1.3からパッチバージョンを上げる場合、2.1.4に上げます
- 例2:4.2.0からマイナーバージョンを上げる場合、4.3.0に上げます
なお、メジャーバージョンの0は開発用のバージョンになります(例:0.1.0)。初めての安定版が1.0.0になります。
繰り上げない
バージョン表記の各数字の間のドット(.)は小数点ではありません。
そのため、9や99からバージョンアップする場合も数値の繰り上げはしません。
- 例1:1.3.9からパッチバージョンを上げる場合、1.3.10に上げます(1.4.0にはなりません)
- 例2:2.99.0からマイナーバージョンを上げる場合、2.100.0に上げます(3.0.0にはなりません)
先頭に0をつけない
バージョンの数値の先頭に0はつけません。
2.04.1や、3.7.02のような表記は誤りです。正しくは、2.4.1、3.7.2のような表記です。
バージョンアップのとき下位のバージョンは0に戻す
バージョンアップのとき、下位のバージョンは0に戻します。
- 例1:1.4.2からマイナーバージョンを上げる場合、1.5.0に上げます(パッチバージョンを0に戻します)
- 例2:2.5.7からメジャーバージョンを上げる場合、3.0.0に上げます(マイナーバージョンとパッチバージョンの両方を0に戻します)
追加要素
バージョンは「x.y.z」の3つの数字を使用した表記が一般的ですが、追加要素として「プレリリースバージョン」と「ビルドメタデータ」があります。
プレリリースバージョン
プレリリースバージョンはパッチバージョンの後ろにハイフン(-)から始まるドット(.)で区切られた識別子を追加することで表現します。
プレリリースバージョンの識別子は数字の他にアルファベットとハイフンも使うことができます。
- 例1:1.0.0-alpha
- 例2:2.2.0-beta
- 例3:3.0.0-rc.1
プレリリースバージョンは、不安定版です。
新機能を試したいユーザや開発者向けの先行リリースであったり、幅広いユーザに試用してもらう目的でリリースされます。
ビルドメタデータ
ビルドメタデータはパッチバージョンまたはプレリリースバージョンの後ろにプラス(+)から始まるドット(.)で区切られた識別子を追加することで表現します。
ビルドメタデータの識別子は数字の他にアルファベットとハイフンも使うことができます。
- 例1:1.2.0+202412270900
- 例2:2.1.0-beta+exp.sha.469m52
ビルドメタデータはバージョンの優先度に影響を与えない追加情報です。
まとめ:ソフトウェアのバージョン表記を正しく理解して役立てよう
今回は、ソフトウェアのバージョン表記について解説しました。
バージョン表記を理解しておくことで、自分が使っているアプリやソフトウェアがバージョンアップした際に、どのような変更が行われたかがわかるようになります。
どのような変更が行われたかによって、すぐに更新するかどうかを判断するとよいでしょう。
特にメジャーバージョンが上がった場合は、ソフトウェアに大きな変更が加えられているはずなので更新情報をきちんと確認するようにしましょう。
以上、白くまコージでした!