Node.jsのプロジェクトではnpm versionコマンドでバージョンをインクリメントできます。package.json, package-lock.jsonの書き換えと、Gitタグの追加が自動化されます。よく使われるmajor, minor, patchの他に、pre*というプレリリース用のオプションが実装されています。
以下の動作確認はnpm v6.14.5で行いました。
次期バージョンのアルファ版作成
# 1.2.3 => 2.0.0-alpha.0
npm version premajor --preid alpha
premajorを指定すると、次期メジャーバージョンのプレリリース版となります。このとき--preidオプションを指定すると任意の接頭辞(この場合はalpha)が付加されます。接頭辞を指定しなかった場合は2.0.0-0となりました。
アルファ版の中でのインクリメント
# 2.0.0-alpha.0 => 2.0.0-alpha.1
npm version prerelease
プレリリース部分の番号を上げるには、prereleaseを指定します。この場合は--preid alphaを指定してもインクリメントされます。ただ--preidなしの方がbeta.0 => beta.1やrc.0 => rc.1のときでも同様に動作するので、ミスが起こりにくそうです。
アルファ版からRC版に格上げする
# 2.0.0-alpha.1 => 2.0.0-rc.0
npm version prerelease --preid rc
2.0.0のプレリリースであることには変わらないのでprereleaseを指定し、--preidオプションでアルファからRCに変更します。自動的にrc.0がセットされました。Semverではプレリリース版の接頭辞はアルファベット順に解釈されます。(2.0.0-alpha.1 < 2.0.0-rc.0 < 2.0.0)
正式版のリリース
# 2.0.0-rc.0 => 2.0.0
npm version major
上記のコマンドで動きましたが、引数はminorでもpatchでも同じ結果でした。そもそもバージョン番号は上がってないのでどれもしっくり来ません。明示的にnpm version 2.0.0を実行してもいい気がします。