セマンティックリリースによるディストリビューションチャンネルを利用した公開 について動作確認してみました。元ネタはUsing distribution channelsです。
次にリリースする予定の機能を先行公開し、フィードバックを収集し、最終的に最新バージョンに取り込み、正式にリリースします。
前提/制約条件
- 最新バージョンのチャンネルは@latest(branch: main or master)、先行公開チャンネルは@next(branch: next)とします
- 次の環境で動作確認します
- GitHub Repository(ソースコードのリポジトリ)
- GitHub Actions(CI環境、この環境でsemantic-releaseを実行する)
- GitHub Releases(変更履歴)
- GitHub Packages(NPMレジストリ)
動作確認手順
元ネタの使用例の手順にそって動作確認します。
- 初回リリース
feat: initial commit => v1.0.0 on @latest
プロジェクトの初回コミットを行うところから始めます。 - バグ修正のリリース
fix: a fix => v1.0.1 on @latest
バグ修正し、ユーザーにリリースします。 - @nextに次の機能のリリース
feat: a big feature \n\n BREAKING CHANGE: it breaks somthing => v2.0.0[pre-release] on @next
破壊的な変更が伴う重要な機能を開発したいと考えます。この機能は、最初はよく利用してくれる一部のユーザーのみに公開させたいと考えます。そして、この機能のフィードバックを受け取ったら、改善し、最終的にすべてのユーザーがこの機能を利用できるようにします。 - @nextのバグ修正のリリース
fix: fix something on a big feature => v2.0.1[pre-release] on @next
一部ユーザーに公開した機能に対して、バグ報告を受け、修正をリリースします。 - @latestで小さい機能のリリース
feat: a small feature => v1.1.0 on @latest
@latestに下位互換のある機能の追加を行い、リリースします。 - @latestで追加した小さい機能を@nextにマージし、リリース
Merge branch master to next => v2.1.0[pre-release] on @next
@latestに追加した機能を@nextにマージし、一部ユーザーにも利用できるようにリリースします。 - @latestへ追加する
Merge branch next to master => v2.1.0 on @latest
@nextでリリースした機能は、一部ユーザーから一定期間フィードバックを受け、すべてのユーザーに対してリリースしても問題ないとレベルに到達したと確信しました。そのために、@nextの変更内容を@latestにマージして、リリースします。
動作確認結果
手順 | @latest | @next |
(1) | v1.0.0 TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(2) | v1.0.1 TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(3) | v2.0.0[pre-release] TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(4) | v2.0.1[pre-release] TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(5) | v1.1.0 TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(6) | v2.1.0[pre-release] TAG: 作成 RELEASES: 作成 PACKAGES: 作成 通知: メール | |
(7) | v2.1.0 TAG: 未作成 RELEASES: 更新 PACKAGES: 更新 通知: メール |
まとめ
@nextの最終バージョンが正式リリース後のバージョンになるのが特徴です。
- @nextは、@letestと同様にConventional-Commitsによるバージョンの決定になるが、GitHub上はプレリリース扱いになる
- 最終的に@nextを@masterにマージすると、@nextのバージョンが最新のリリースバージョンとなる(コミットハッシュが @next = @latestになることが条件になると思われる)
次の記事も合わせご覧ください。
コメント