背景
GitHubで何かリリースする場合、GitHub Releasesを使うことが多いかと思います。自分は今まではGitHub Releasesにリリースノートを書いていました。以下はGoReleaserというツールのリリースノートですが、こんな感じです。
ですが、いつから追加されたのかわかりませんがリリースにGitHub Discussionsのスレッドを紐付ける機能が追加されていました。以下のドキュメントに書いてあります。
一応上のドキュメントのスクリーンショットも貼っておきます。"Create a discussion for this release"ってやつです。
これを使ったら結構良かったので、その辺りについて書いておきます。
設定方法
まず、GitHub DiscussionsのCategoryを作っておく必要があります。最初から用意されているものでもよいのですが、混ざってしまって見にくいので"Release"とか"Announcements"のようなCategoryを作っておくとよいかと思います。
以下のように"Announcements"のCategoryでフィルタするとリリースノート一覧が見られます。
あとは上のドキュメントどおりですが、リリース作成時にCategoryを選んでdiscussionを作成するだけです。
[Create a discussion for this release] を選択し、[Category] ドロップダウンメニューを選択してリリースディスカッションのカテゴリをクリックします。
すると、GitHub Releasesの画面で各リリースの右下に"Join release discussion"というボタンが表示されます。
ここをクリックすると先程のdiscussionページに飛びます。簡単なChangelogはreleaseに書いて詳細はdiscussionに書いておくと良いのかなと思います。
注意点としては、一度releaseを作ってしまうとあとからdiscussionを紐付けようと思っても出来ない点です。とはいえ不便なので将来的には出来るようになるかもしれません。
GoプロジェクトでGoReleaseを使っている場合は、 discussion_category_name
を設定してあげると勝手にdiscussionを作ってくれるのでおすすめです。
利点
なぜDiscussionのほうが良いと思ったか?という話ですが、まずシンプルにリリースノートの一覧を見られるのが便利だなと思いました。Releasesに詳細なリリースノート書くとスクロールが大変で一覧の視認性が悪いと感じていました。Tagsを開いてReleasesに飛ぶという手もありますが、必ずしもすべてのタグでリリースされているわけでもないしな...ということで困ってました。
一方、GiHub Discussionsで一覧が見られる以下の画面は個人的には見やすいです。
あとはユーザからのリリースノートに対するフィードバックをdiscussion上でそのまま受けられる点です。以下は自分がdiscussionに書いたリリースノートの例です。
「この機能はまだ含まれてないの?」などのちょっとした質問へも回答できますし、「Great!」「Nice!」とか褒めてもらえるとやる気にも繋がります。リアクションも付けてもらえます。最近はrelease側にも付けられますが。
まとめ
GitHub Discussionsにリリースノートを書くと良いかもしれない