Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Semantic Versioning

Semantic Versioning

社内勉強会で発表した資料

842aaadff6e13fbf372c9b17b49b031c?s=128

Pine Mizune

November 17, 2015
Tweet

More Decks by Pine Mizune

Other Decks in Programming

Transcript

  1. Semantic Versioning 17 Nov, 2015 / Pine Mizune

  2. 目次 • ターゲット層と目的 • Semantic Versioning とは ? • Semantic

    Versioning の規格について • Semantic Versioning で良いこと • npm@v3 と Semantic Versioning • まとめ
  3. ターゲット層と目的  ライブラリを作成・メンテナンスする人  仕事で他者の作ったライブラリを使う人 ターゲット層 ターゲット層  ライブラリの利用者を混乱させないため 

    安定的に動作するソフトウェアを構築するため 目的 目的
  4. Semantic Versioning とは ?  バージョン番号の付け方の規格  v1.0.0 / v0.10.38

    ← この付け方の規格  SemVer と略す  Ruby / Node で公式に採用  Rubygems / npm のライブラリは従う必要がある  Perl は非準拠
  5. Semantic Versioning の規格 v 1 . 2 . 3 破壊的変更

    機能追加 バグ修正 major を上げる minor を上げる patch を上げる major . minor . patch
  6. Semantic Versioning の規格 (その他)  major.minor.patch-pre_release … 不安定版  例:

    1.0.0-beta / 1.0.0-rc.10  0.minor.patch … 開発版  例: 0.1.0 / 0.9.8 / 0.10.38  Semantic Versioning では 0.x.x は特別扱い  0.x.x 系は常に破壊的変更が許される
  7. Semantic Versioning の良い所  バージョン番号だけで変更内容を伝えられる  バージョンアップするか否かの指標になる  状況に応じてバージョンアップを選択できる 

    全体を通した依存関係の解決ができる  依存関係に矛盾がないか機械的に判定できる  依存関係を最適化できる -> npm@v3
  8. Semantic Versioning と npm@v3 npm@v3 は SemVer base の flat

    tree 採用 → SemVer に準拠する必要性が高まる!!  A@v1.2.0  B@v1.3.1  C@v1.3.0  B@v1.2.0  C@v1.2.0  C@v1.1.3  A@v1.2.0  B@v1.3.1  C@v1.3.0 npm@v2 npm@v3
  9. まとめ Semantic Versioning で、安全な開発を  ライブラリを使うとき  ライブラリをバージョンアップするとき  ライブラリを公開するとき

  10. fin