アプリケーション、製品、パッケージ、プロダクトにおけるバージョンの数字の意味と付け方【業務効率化】

業務効率化

皆さんはアプリのバージョンとか気にする方でしょうか?何の気なしに利用している分には「ふーん、ん、なんか変わってバージョンアップしたんだな」程度な感触なのではないかと思います。

もちろん、ガチエンジニアで「このアップデートと修正があったから、前回よりも数値がこれだけ上がったんだな」って毎回チェックする方もいらっしゃるはずです。

ちなみに私は前者でバージョンの数字の羅列にはほぼほぼ興味なくて、プロダクトの過去の状態の識別子程度の認識でいました。

ただ、仕事で自分で0から作るプロダクトを創るようになってから、「あれ、この番号はどうしよう、とか、具体的根拠ってあるべきでしょ。適当に付けちゃまずいよな」と正常な思考になりました。

プロジェクトの末端(言葉ごめんなさい)にいらっしゃると、どうしてもバージョン決定の権利は冗長指示になりがちで、あまりなじみがない場合も多いかと思います。

この記事に興味を持った方は、ある程度裁量を持ったエンジニアだったり、プロジェクトリーダーだったりするかなと感じながら執筆しています。是非、今回の記事を通して、バージョンの数字の付け方について一貫性と意味を持って付けられるようになれるように一緒に頑張りましょう。

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

これはそもそもの話になります。聞いたことがある方も少なくないと思います。「セマンティックバージョニング」とはなんぞやということこから始めましょう。

セマンテックバージョニングとはソフトウェアのバージョン管理のための規則とアプローチの一つです。バージョン番号がソフトウェアの変更内容を明確に表現し、異なるバージョン間の互換性を簡単に理解できるようにすることを目的としています。

このセマンテックバージョニングはいわゆるデファクトスタンダードとなっていて、あらゆる企業や団体、個人製作の現場で採用されています。裏を返せば、ぶっちゃけ数字とか書き方は何でもいいんじゃないの?ってことにもなりかねないのですが、ここは長いものに巻かれておきましょう。損は皆無です。むしろ共通認識として社会の一端を担っているような感覚も得られます。

セマンティックバージョニングのバージョン番号は、通常、次の3つの桁から構成されます。

  • メジャーバージョン
  • マイナーバージョン
  • パッチバージョン

、もう少し詳しく見て見ましょうか。

精力的な方はhttps://semver.org/(参照 / 英語)を確認するとまず間違いないです。Tom Preston-Wernerという開発者によって提案され、Github上にドキュメントが掲載されています。

バージョンの記法

と、本題に入る前にバージョン表記のセマンティックな記載方法を知っておく必要があります。

(例)2.11.268

基本的かつ一般的にはバージョン情報は3つの数字を「.(ピリオド)」で区切ります。

この場合「2」がメジャーバージョン、「11」がマイナーバージョン、「268」がパッチバージョンに相当します。

メジャーバージョン・メジャーアップデート

メジャーバージョンの変更は、後方互換性がない大規模な変更を示します。つまり、既存のコードやインターフェースが壊れる可能性が高いです。そのため、このメジャーバージョンが変更になる、いわゆるメジャーアップデートが行われるとアプリケーション内容がガラッと変わることがおおいです。皆さんもゲームアプリやニュースアプリ等でも経験あるのではないでしょうか。

マイナーバージョン・マイナーアップデート

イナーバージョンの変更は、新しい機能の追加や既存の機能の変更を示しますが、後方互換性があることが期待されます。つまり、既存のコードは影響を受けないはずです。皆さんご存知、「マイナーアップデートあったねー、少し楽しみー」のあれです。

パッチバージョン・パッチアップデート

パッチバージョンの変更は、バグ修正や小規模な改善を示します。これらの変更は、既存の機能に対する修正であり、後方互換性があることが期待されます。パッチ、パッチ言っているお友達も多いんじゃないでしょうか。このバージョン番号で一番数値が爆上がりするものが、パッチバージョンです。仮にこの数値が少ない(ある程度リリースから日数が経っているとして)のであれば、開発した時の完成度が非常に高く、逆に数がべらぼうに高くなってしまうと、修正、修正、でむしろ修正前提でリリースしたんじゃないか、とかテストちゃんとした?と疑ったりしちゃうのがパッチバージョンです。

パッチを当ててより快適にプレイできるようになったゲームなんかはこの数値が多く変更されているはずです。もし時間があったらパッチあてたよ!って告知あり次第、このパッチバージョンの数値を前回と比較してみるのも面白いですね。

セマンテックバージョニングについてのまとめ

これはすべて覚える必要はないですが、もし忘れてしまったらこのページをまた参考にしてみてください。他の解説よりも分かりやすくまとめたつもりではあります。

自分でバージョニングをするときは上記を意識的に決定することが求められます。社会の1つのプロダクト、世に出すプロダクトであれば尚更必要となります。もしかしたらgit hub等で慣れている方もいらっしゃるかもしれませんね。

Google Chromのバージョン情報を見て見よう!ビルド番号に注意

Google Chromeのバージョン(2023/10/01時点)は

バージョン: 117.0.5938.132(Official Build) (64 ビット)

メジャーバージョンは「117」、マイナーバージョンは「0」、パッチバージョンは「5938.132?」と頭が混乱するのも無理もありません。バージョン番号が4つあるのでどれがどれか分からなくなりそうになります。

ですが、これは簡単で、もちろんメジャーバージョンは「117」、マイナーバージョンは「0」、すこしイレギュラーですがパッチバージョンは「132」になります。

え、では「5938」って何ぞやってなりますよね。実はこれ「ビルド番号」もしくは「リビジョン番号」なんです。この数字は通常、開発者やリリース管理者によって内部的に使用され、ソフトウェアの特定のビルドやリビジョンを識別するのに役立ちます。一般的なユーザーには、この部分の番号がソフトウェアの機能や互換性に関与しない

ここでは話がそれますのでビルド番号については軽く触れておきます。詳しくはGoogle先生にでも聞いてみてください。例えば、ソフトウェアのバージョンが “1.0.0” である場合、異なるビルド番号を使用して、異なるビルドが生成されることがあります。例えば、”1.0.0″ バージョンのソフトウェアには、”ビルド1234″ と “ビルド5678” の2つの異なるビルドが存在する可能性があります。このように、ビルド番号は特定のバージョン内でのソフトウェアのバリエーションを区別するのに役立ちます。エンジニアであればビルド番号の際についてはなんとなくでも分かるんではないでしょうか。

とりあえず今回はバージョン情報の数字の付け方と読み方、意味についてかいせつしました。ビルド番号についてはまた機会があったらまとめておきます。

タイトルとURLをコピーしました