LoginSignup
20
20

More than 3 years have passed since last update.

ソフトウェアのバージョニングの仕方について学んだことまとめ

Last updated at Posted at 2019-11-13

目次

  1. バージョニングとは
  2. セマンティックとは
  3. セマンティック バージョニング 2.0.0のまとめ
  4. 今後の課題

今回の学習のゴール

一般的なバージョニングの仕方がわかる

バージョニングとは

バージョン管理。作成、編集したファイルやプログラムなどの変更履歴を保存し、過去の任意の時点の状態に復元したり、変更内容の差分を表示したりできるよう管理すること。単にデータをバージョン管理システムに保存して管理することを意味することが多い。

セマンティックとは

情報の持つ意味を適切に理解させる技術のことを指す。

セマンティック バージョニング 2.0.0のまとめ

バージョンの依存性について

  • 厳密に依存関係を指定すると、システムはバージョン・ロックの危機に晒される
    • 全ての依存パッケージを新しくしない限り、アップグレードできないことをバージョン・ロックという
  • 依存指定を緩く管理するとバージョンが複雑に絡まりあってしまう
  • 依存性地獄とは、バージョン・ロックやバージョンの混乱に陥ること

セマンティック バージョニングについて

  • バージョンを変更する際には、ルールに従ってバージョン番号を上げる必要がある
  • X.Y.Z(メジャー.マイナー.パッチ)のバージョン形式を遵守する必要がある
    • 後方互換性※1 のないAPIの変更は、メジャーバージョンを上げる※2
    • 後方互換性を保ちつつAPIを変更・追加した場合は、マイナーバージョンを上げる※3
    • APIに影響を及ぼさないバグ修正は、パッチバージョンを上げる※4
  • セマンティック バージョニングのスキーム(枠組み)に従えば、新しいバージョンへ変更された際に何が変更されたのかをユーザーに伝えることができる

※1 後方互換性とは、新しい部品やコンポーネント(構成要素)などを古いものに置き換えても同様に動作させることができる性質のこと。新しい部品やコンポーネントが、古い部品の仕様や機能を包含している状態のこと。
※2 性能や機能を大幅に改良・向上することをメジャーバージョンアップという。大きく目立った変更を伴うバージョンアップを指す。
※3 性能や機能を小幅に改良・向上することをマイナーバージョンという。小さな変更を伴うバージョンアップを指す。
※4 プログラムの一部分を更新してバグの修正や機能の変更を行うためのバージョンアップを意味する。

セマンティック バージョニングの仕様書

  • セマンティック バージョニングを適用するソフトウェアは、パブリックAPIを宣言しなければならない
    • アカウントを取得していなくても使用できるオープンなAPIをパブリックAPIという
  • バージョンナンバーは、X.Y.Z (それぞれ非負の整数)の形式にしなければならない
  • 一度パッケージをリリースした場合は、そのバージョンのパッケージのコンテンツは修正せず、新しいバージョンとしてリリースしなければならない
  • メジャーバージョンのゼロ(0.y.z)は、初期段階の開発用を意味する
  • メジャーバージョンを上げた場合は、マイナーバージョン及びパッチバージョンを0にリセットしなければならない
  • マイナーバージョンを上げた場合は、パッチバージョンを0にリセットしなければならない
  • プレリリースバージョンは、パッチバージョンの直後にハイフンとドットで区切られた識別子を追加することで表現しても良い
    • 識別子は、ASCII英数字とハイフン [0-9, A-Z,a-z,-] でなければいけない
    • ex. 1.0.0-alpha, 1.0.0-0.3.7
  • メジャーバージョン、マイナーバージョン、パッチバージョン、プレリリースバージョン識別子の順でバージョン同士を比較する際の優先度が決まる
    • ex. 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0-alpha < 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1

今後の課題

  • メジャーバージョンとマイナーバージョンの具体的な境目については、実務で学ぶ
20
20
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
20
20