knqyf263's blog

自分のためのメモとして残しておくためのブログ。

GitHub Discussionsにリリースノートを書くのが良さそうという話

背景

GitHubで何かリリースする場合、GitHub Releasesを使うことが多いかと思います。自分は今まではGitHub Releasesにリリースノートを書いていました。以下はGoReleaserというツールのリリースノートですが、こんな感じです。

github.com

ですが、いつから追加されたのかわかりませんがリリースにGitHub Discussionsのスレッドを紐付ける機能が追加されていました。以下のドキュメントに書いてあります。

docs.github.com

一応上のドキュメントのスクリーンショットも貼っておきます。"Create a discussion for this release"ってやつです。

f:id:knqyf263:20210603161335p:plain

これを使ったら結構良かったので、その辺りについて書いておきます。

設定方法

まず、GitHub DiscussionsのCategoryを作っておく必要があります。最初から用意されているものでもよいのですが、混ざってしまって見にくいので"Release"とか"Announcements"のようなCategoryを作っておくとよいかと思います。

以下のように"Announcements"のCategoryでフィルタするとリリースノート一覧が見られます。

github.com

あとは上のドキュメントどおりですが、リリース作成時にCategoryを選んでdiscussionを作成するだけです。

[Create a discussion for this release] を選択し、[Category] ドロップダウンメニューを選択してリリースディスカッションのカテゴリをクリックします。

すると、GitHub Releasesの画面で各リリースの右下に"Join release discussion"というボタンが表示されます。

f:id:knqyf263:20210603161826p:plain

ここをクリックすると先程のdiscussionページに飛びます。簡単なChangelogはreleaseに書いて詳細はdiscussionに書いておくと良いのかなと思います。

注意点としては、一度releaseを作ってしまうとあとからdiscussionを紐付けようと思っても出来ない点です。とはいえ不便なので将来的には出来るようになるかもしれません。

GoプロジェクトでGoReleaseを使っている場合は、 discussion_category_name を設定してあげると勝手にdiscussionを作ってくれるのでおすすめです。

goreleaser.com

利点

なぜDiscussionのほうが良いと思ったか?という話ですが、まずシンプルにリリースノートの一覧を見られるのが便利だなと思いました。Releasesに詳細なリリースノート書くとスクロールが大変で一覧の視認性が悪いと感じていました。Tagsを開いてReleasesに飛ぶという手もありますが、必ずしもすべてのタグでリリースされているわけでもないしな...ということで困ってました。

github.com

一方、GiHub Discussionsで一覧が見られる以下の画面は個人的には見やすいです。

f:id:knqyf263:20210603162411p:plain

あとはユーザからのリリースノートに対するフィードバックをdiscussion上でそのまま受けられる点です。以下は自分がdiscussionに書いたリリースノートの例です。

github.com

「この機能はまだ含まれてないの?」などのちょっとした質問へも回答できますし、「Great!」「Nice!」とか褒めてもらえるとやる気にも繋がります。リアクションも付けてもらえます。最近はrelease側にも付けられますが。

まとめ

GitHub Discussionsにリリースノートを書くと良いかもしれない