👩💻
Web開発者ロードマップを学習する第5章 セマンティックバージョニング
はじめに
WEB DEVELOPER Roadmap 2021 に
webエンジニアが身につけておくべきスキルの順序が示されています。
このロードマップに沿って、各スキルの要点を抑えた記事を書きます。
WEB DEVELOPER Roadmap 2021 Introduction
- Git - Version control
- Basic Terminal Usage
- Data Structures & Algorithms
- Git Hub
- Licenses
- Semantic Versioning
- SSH
- HTTP/HTTPS and APIs
- Design Patterns
- Character Encodings
今回はセマンティックバージョニングについて学習します。
まとめた記事は今後リンク更新していきます!
セマンティックバージョニングとは
- シンプルなルールとナンバーを割り当てる
- バージョンが変更された際に何が変更されたかを示す
- X.Y.Z(メジャー.マイナー.パッチ)のバージョン形式
- 名前と正確な定義を与えることで、意図が伝わりやすい
- 柔軟な依存性の仕様が作成が可能
X.Y.Z(メジャー.マイナー.パッチ)のバージョン形式
- APIの変更に互換性のない場合 → メジャーバージョンをアップ
- 後方互換性があり機能性を追加した場合 → マイナーバージョンをアップ
- 後方互換性を伴うバグ修正をした場合 → パッチバージョンをアップ
※後方互換性とは
→新製品が既存の旧製品を取り扱うことができること
決まり事抜粋
-
パブリックAPIを宣言しなければならない
-
一度リリースしたバージョンの修正は行ってはいけない
-
いかなる修正も新しいバージョンでリリース
-
バージョンはX.Y.Zの形式、バージョンナンバーは0以上の整数
-
バージョンを上げる際はひとつずつ上げる
例 現在のバージョン 2.1.1 バグ修正(パッチバージョン変更) ➡️ 2.1.2 -
前に0を書かない
例 ❌01.2.2 ⭕️1.2.2 -
上位のバージョンが上がると下位バージョンをリセット
例 2.1.1 機能の追加(マイナーバージョン変更) ➡️ 2.2.0
2.3.1 互換性のない変更(メジャーバージョン変更)➡️ 3.0.0
その他
-
0.y.zのような開発の初期フェーズのバージョン取り扱い
→ 0.1.0から開発版をリリース、機能追加のたびマイナーバージョンを上げる -
1.0.0のリリースのタイミング
→ プロダクション用途でソフトウェアが利用されている時
安定したAPIを持ち、それを利用しているユーザーが複数いる時
開発の初期フェーズから後方互換性がない時
より知りたい方は公式サイトを参考にしてみてください
→セマンティック バージョニング 2.0.0
Discussion