🔃

アプリ開発、web開発のバージョン表記の命名規則 メジャー、マイナー、パッチの記述例 npm Version

に公開

セマンティックバージョニング(semver.org 日本語版)に基づいて、メジャー・マイナー・パッチの定義


🍄 セマンティックバージョニングの基本構成

メジャー.マイナー.パッチ
例:2.3.1
要素 意味 変更の種類
メジャー 後方互換性のない変更 仕様変更・破壊的変更
マイナー 後方互換性のある機能追加 新機能・オプションの追加
パッチ 後方互換性のあるバグ修正 表示バグ・型修正・安定化など

🌿 バージョンを上げる判断基準

開発チームや企業によって違いがあるため、すでにある規則に従うべきだが、個人レベルだと仕様変更、新機能、バグの修正と覚えるか、大幅、少し、僅か程度で良い。

パッチなどよくわからない場合はパッチ例のコードなどのページへ移動

🔴 メジャーバージョンを上げるとき

  • API の仕様が変わる(引数順・戻り値構造など)
  • 型が変わる(stringnumber など)
  • コンポーネントの props が必須になる
  • 機能が削除される
  • デフォルトの挙動が変わる

パッチなどのコードでどのようにアップデートになるのかは次を参考。
メジャーアップデートの・コード例

🟢 マイナーバージョンを上げるとき

  • 新しい関数や API を追加
  • UI コンポーネントに新しい props を追加
  • 設定オプションや翻訳キーの追加
  • 内部構造の抽象化(hooks 化など)

マイナーアップデートのコード例

🔵 パッチバージョンを上げるとき

  • 表示バグの修正
  • 条件分岐の誤り修正
  • 型の安全化(null チェックなど)
  • 非同期処理の安定化
  • ログの削除や整理

パッチアップデートのコード例


🧪 プレリリース・ビルドラベル(拡張)

ラベル形式 用途例
1.2.3-alpha 機能が不完全な初期版
1.2.3-beta.2 外部テスト可能な試験版
1.2.3-rc.1 リリース候補
1.2.3+exp.sha.511 Git ハッシュなどの識別


🍄 npm version コマンドの基本

npm version [major | minor | patch]

このコマンドを使うと、package.json"version" フィールドが更新され、Git タグとコミットも自動生成される

公式npm versionのコマンド


🌿 それぞれの使い方と意味

🔴 メジャー更新(互換性のない変更)

npm version major
  • 例:1.2.32.0.0
  • API の仕様変更、型の変更、機能の削除など

🟢 マイナー更新(互換性のある機能追加)

npm version minor
  • 例:1.2.31.3.0
  • 新しい関数や props の追加、設定オプションの拡張など

🔵 パッチ更新(互換性のあるバグ修正)

npm version patch
  • 例:1.2.31.2.4
  • 表示バグ、条件式の修正、型の安全化など

🧪 プレリリースの指定

npm version prerelease
npm version premajor
npm version preminor
npm version prepatch
  • 例:1.2.31.2.4-0prerelease
  • -alpha, -beta, -rc などのラベルを付けることで、本番前の段階を明示できる

🛠️ その他のオプション

コマンド 説明
npm version 2.3.1 任意のバージョンに直接更新
npm version from-git Git タグからバージョンを取得して設定
npm version -m "msg" コミットメッセージを指定
npm version -h ヘルプを表示

📘 実行後に更新されるもの

  • package.json
  • package-lock.json(存在する場合)
  • npm-shrinkwrap.json(存在する場合)
  • Git タグ(例:v1.2.4
  • Git コミット(例:Upgrade to 1.2.4

📘 参考


Discussion