最近、社内でnpmパッケージを配布していた時、versionはどのようなルールで決まるのかが気になりました。
そこで、バージョン管理について検索していたら、たまたまセマンティックバージョンという概念を知りました。
Semantic Versioningとは、
バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、
- APIの変更に互換性のない場合はメジャーバージョンを、
- 後方互換性があり機能性を追加した場合はマイナーバージョンを、
- 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。
プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。
上記のようなアイデアを持って、メジャー/マイナー/パッチバージョンを有意義に更新するバージョン管理方法です。
セマンティックバージョニングはパッケージ利用者に、そのパッケージがどのように変更してきたかを知ることができる。
セマンティックバージョンの詳細な説明は以下のリンクで確認することができます。
https://semver.org/lang/ja/
重要な内容だけまとめると
- 初回の配布バージョンは0.1.0とし、その後プロダクト化前までのリリースごとにマイナーバージョンあるいはパッチバージョンを更新する。
- 1.0.0はプロダクトして利用される初めてのバージョンとする。
- 特定のバージョンが配布された後、そのバージョンは絶対に変更されないこと。