2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

バージョン管理についてのあれこれ

Posted at

はじめに

私たちの身の回りにはたくさんのバージョンが存在します。
例えば次のようなものです。

  • Windows11
  • iOS 15.6
  • GitHub API v4

「数字が上がれば最新バージョンだろう」くらいにしか知りませんでした。
この記事では、これらの数字がどんな意味を持つのかまとめていきたいと思います!

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

セマンティックバージョニングとは、バージョンの割り当て方の一つです。
参考:https://semver.org/lang/ja/

セマンティックバージョニングでは、例えば1.2.3のように、3つの数値をドットで繋いでバージョンを表します。
1.2.3の数字の部分をそれぞれX.Y.Zと表すとするとそれぞれの数字の意味は以下の表のように分けられます。

位置 名前 用途
X メジャーバージョン 後方互換性のない変更が行われた際に増える
Y マイナーバージョン 後方互換性のある機能変更、あるいは特定の機能が今後廃止されることが決まった場合に増える
Z パッチバージョン 後方互換性を保ったバグ修正を行ったときに増える

※後方互換性:新しいバージョンにしたときに古いバージョンで使えていた機能が利用できるということ

この表のように意味を振り分けてバージョン管理していく方法をセマンティックバージョン管理といいます。

バージョン管理の例を見ていく

それでは、セマンティックバージョニングを基にして、「はじめに」で例にあげた3種類のバージョンについてそれぞれどんな意味を持っているか見ていきましょう。

Windows

WindowsにはWindows10やWindows11などがありますが、これらはWindowsのバージョン情報の一部を表しています。
正しくは、"バージョン番号:10.0(バージョン21H2) ビルド番号:22000" のように表します。

バージョン番号がセマンティックバージョニングで言う、メジャーバージョン、ビルド番号がマイナーバージョンorパッチバージョンを表します。

実は、Windows 10 November 2021 Update とWindows11のバージョン番号は変わっていないので、大きな変化は少ないと考えられます!

iOS

iOSではiOS15.6やiOS15.5.3といったバージョン表記があります。iOSでは、セマンティックバージョニングを基にバージョン管理がなされています。
例えば、iOS15.5.3であれば、15がメジャーバージョン、5がマイナーバージョン、3がパッチバージョンを表します。
iOS15.6であれば、15がメジャーバージョン、6がマイナーバージョンを表します。

API

Githubなど多くのAPIでは、v3v4のようにバージョンを表します。

このvの後に来る数字がメジャーバージョンを表しています。また、APIではマイナーバージョン以下は表さないものが多いです。

APIでは基本的に、後方互換性のある変更ではバージョンを上げません。これは、複数のAPIのバージョンをメンテナンスするのはコストがかかりますし、利用者側から見ても分かりにくいからです。
そのため、後方互換性を失っても良いと判断できるほどの本当に大きな変更を行いたい時にのみ、バージョンを上げます。

まとめ

この記事では、セマンティックバージョニングを基に、バージョン管理についてまとめました。
基本的な考え方を理解できれば、バージョン管理の数字の意味がわかってくるかと思います!

これで君もバージョン強者!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?