web-dev-qa-db-ja.com

1.0.0より前のバージョンのnpmパッケージの規則は何ですか?

私はnpmによるバージョン管理について読んでいましたが、どうやらパッケージのバージョンを上げるための便利なコマンドを提供しています。

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]

プレリリース

パッケージがバージョン0.0.0で始まるとしましょう

npm version prerelease => 0.0.1-0

npm version prerelease => 0.0.1-1

基本的にはダッシュの後に数字をぶつけます

プリパッチ

代わりに0.0.0から開始し、代わりにpre [major | minor | patch]を使用しています...

npm version prepatch => 0.0.1-0

npm version preminor => 0.1.0-0

npm version premajor => 1.0.0-0

パッチ

パッチを使用して0.0.0から開始...

npm version patch => 0.0.1

npm version patch => 0.0.2

メジャーマイナーバージョンとパッチバージョンをバンプするためのルールを理解していますが、1.0.0より前のバージョンにバージョンを付けるための標準的な規則は何ですか?

30
SteamDev

TLDR

1.0.0より前のバージョンを使用したpreleaseバージョンは見たことがありません。パブリックAPIはまだ確定されていないため、これはかなり無意味なようです。これらは、1.0.0がリリースされた後に有用になります。

では、preleaseバージョンはいつ役立つのですか?

semver.org から:

バージョン1.0.0はパブリックAPIを定義します。このリリース後にバージョン番号がインクリメントされる方法は、このパブリックAPIとその変更方法によって異なります。

そして:

プレリリースバージョンは、パッチバージョンの直後にハイフンと一連のドットで区切られた識別子を追加することによって示すことができます。 ...プレリリースバージョンは、バージョンが不安定であり、関連する通常のバージョンで示されているように、意図した互換性要件を満たさない可能性があることを示します。

1.0.0より前のバージョンで見た慣例には、バグ修正/タイプミスに対するパッチの使用、および重要な変更に対するマイナーバージョンの使用が含まれます。パブリックAPIがまだ保証されていないため、1.0.0より前の規則はそれほど厳密ではありません。

Preleaseバージョンは、初期の機能をコミュニティと共有したい場合に便利です。

たとえば、この記事の執筆時点では、最新の安定版 npm-check-updates はバージョン1.5.1です。追加した新機能の一部には下位互換性のない変更が導入されているため、semverに準拠するには2.0.0でリリースする必要があります。それでも、コミュニティによる徹底的なテストが完了するまでは、2.0.0を最新の安定版としてリリースしたくありません。したがって、私はnpm publish --tag unstableでバージョン付けされたプレリリースバージョン(2.0.0-alpha.1を使用)を公開しました。コミュニティメンバーはプレリリースバージョン(npm install -g npm-check-updates@unstable付き)をインストールして最新の機能を試すことができますが、通常のnpm install -g npm-check-updatesはほとんどのユーザーに対して安定した1.5.1バージョンを引き続きインストールします。プレリリースが証明されたら、2.0.0で新しい安定版として簡単に公開できます。

24
Raine Revere