🔃
アプリ開発、web開発のバージョン表記の命名規則 メジャー、マイナー、パッチの記述例 npm Version
セマンティックバージョニング(semver.org 日本語版)に基づいて、メジャー・マイナー・パッチの定義
🍄 セマンティックバージョニングの基本構成
メジャー.マイナー.パッチ
例:2.3.1
| 要素 | 意味 | 変更の種類 |
|---|---|---|
| メジャー | 後方互換性のない変更 | 仕様変更・破壊的変更 |
| マイナー | 後方互換性のある機能追加 | 新機能・オプションの追加 |
| パッチ | 後方互換性のあるバグ修正 | 表示バグ・型修正・安定化など |
🌿 バージョンを上げる判断基準
開発チームや企業によって違いがあるため、すでにある規則に従うべきだが、個人レベルだと仕様変更、新機能、バグの修正と覚えるか、大幅、少し、僅か程度で良い。
パッチなどよくわからない場合はパッチ例のコードなどのページへ移動
🔴 メジャーバージョンを上げるとき
- API の仕様が変わる(引数順・戻り値構造など)
- 型が変わる(
string→numberなど) - コンポーネントの 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 major
- 例:
1.2.3→2.0.0 - API の仕様変更、型の変更、機能の削除など
🟢 マイナー更新(互換性のある機能追加)
npm version minor
- 例:
1.2.3→1.3.0 - 新しい関数や props の追加、設定オプションの拡張など
🔵 パッチ更新(互換性のあるバグ修正)
npm version patch
- 例:
1.2.3→1.2.4 - 表示バグ、条件式の修正、型の安全化など
🧪 プレリリースの指定
npm version prerelease
npm version premajor
npm version preminor
npm version prepatch
- 例:
1.2.3→1.2.4-0(prerelease) -
-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