🐷

npmパッケージのバージョン管理

2024/04/22に公開

npmパッケージの公開に向けて、バージョン管理(セマンティックバージョニングとタグ)について学び、その基本的な内容について書きました。
npmパッケージの開発を行う予定の方や普段バージョンについてあまり意識せず、npmパッケージを使っている方にとってお役に立てれば幸いです。

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

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

セマンティックバージョニング(Semantic Versioning)は、ソフトウェアのバージョン番号を割り当てて管理するためのシステムです。
X.Y.Zの形式で定義(例: 3.1.0)され、APIの変更に互換性のない場合は、Xの番号に当たるメジャーバージョンを、後方互換性があり機能性を追加した場合は、Yの番号に当たるマイナーバージョンを、後方互換性を伴うバグ修正をした場合は、Zの番号に当たるパッチバージョンを上げます。
この方式によって、開発者はソフトウェアの更新が既存のシステムやコードにどのような影響を与えるかを容易に判断できるようになります。

参考: Semantic Versioning 2.0.0

セマンティックバージョニングに準拠したバージョンを設定する

npm version コマンドを使って package.json の version をセマンティックバージョニングに準拠した適切なバージョンへ上げます。

パッチバージョン OR マイナーバージョン OR メジャーバージョンを上げる

npm version patch | minor | major

参考: npm-version | npm docs

タグ

タグとは

特定のコミットをマークするために使用されるラベルです。
これにより、特定のリリースや重要なポイントを参照することができます。
これがないと、後からリリース時のコミットを特定するのに苦労することになります。

参考: Git - タグ

タグの作成

バージョンを上げたタイミングでパッケージのバージョン(v3.1.0 など)に紐づけることで特定のバージョンにスイッチできるようにしておきます。

3.1.0 バージョンのタグを作成する場合

git tag v3.1.0

タグ名の命名に関してルールはありませんが、過去Semantic Versioning 1.0.0vX.Y.Z の形式が指定されていたことから、この形式をとっている場合が多いようです。(Semantic Versioning 2.0.0 ではこのルールは撤廃されている)

タグの共有

git push origin [tagname] を実行することでタグを共有することができます。

先ほど作成した 3.1.0 バージョンのタグを共有する場合

git push origin v3.1.0

Discussion