👩‍💻

Web開発者ロードマップを学習する第5章 セマンティックバージョニング

2021/02/28に公開

はじめに

WEB DEVELOPER Roadmap 2021
webエンジニアが身につけておくべきスキルの順序が示されています。
このロードマップに沿って、各スキルの要点を抑えた記事を書きます。

WEB DEVELOPER Roadmap 2021 Introduction

今回はセマンティックバージョニングについて学習します。
まとめた記事は今後リンク更新していきます!

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

  • シンプルなルールとナンバーを割り当てる
  • バージョンが変更された際に何が変更されたかを示す
  • 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