nikkie-ftnextの日記

イベントレポートや読書メモを発信

メンテナ記 | GitHubでリリースを作るのは、怖くない

はじめに

今日(1/10)、犬王の日じゃない? nikkieです。

1日1エントリを使って、億劫と感じていたリリース作成を行いました🎉(偉い!)
SpeechRecognitionのv3.9.0のリリースです。

こちらについて、2022年12月の自分に送るエントリです。

目次

前提;3.9.0のリリースは思っていたより大変でした

コラボレータとなったSpeechRecognition、2022/12/04にPyPIにv3.9.0をリリースしています。

2017年12月のv3.8.1以来5年ぶりのリリースです。
setup.py中のnameが変わっているなど着手時には見通せなかったつまづきもありましたが、なんとかリリースできました。

PyPIにリリースした後「GitHubにもリリースを作る必要あるんじゃないか、これ」と気づいたnikkie氏。
限界を迎えていたため、タグを打ち、予定地をドラフトだけして(一般には見えないまま)1ヶ月がすぎました。

伝えたいこと:2022年12月のnikkieへ

SpeechRecognition v3.9.0 リリース、お疲れさまでした!
コラボレータ活動、頑張ってますね〜、素晴らしいです。

GitHubにリリースを作る必要を認識していながら、なかなか手が動かない状況かと推察します。
手が動かない主な要因は「経験がない作業でどれくらい大変かも見通せず、着手しづらい」ことではないでしょうか。

実は、GitHubでのリリース作成手順は、以下のドキュメントにまとまっています!

スクリーンショットも豊富で、非常に分かりやすいです。
これだけ見れば操作は完全理解だと思います。

5年ぶりのリリースということで、自分が知らないプルリクエストがたくさんある状況というのが見通しづらい一因だと思います。
で・す・が、GitHubの機能でリリースノートがプルリクエストから自動生成されます

これを使えば、一からリリースノートを書く必要がありません。
Uberiさんが残した前回のリリースノートに合わせて体裁を整えるだけで完成です!

どうですか? この2つを知ったら結構簡単なんじゃないかと思えてきませんか?
GitHubのリリース作成を待っているユーザもきっといますよ。
1日1エントリで大変だと思いますが、どこかで少しだけ時間を取ってリリースを作ってみてください。

未来のnikkieより

リリースを書いての所感

  • GitHubのドキュメント、そして自動生成機能に大変助けられました
  • pull requestのタイトルって、自動生成の中に出てくるので大事なんだな〜
    • メンテナはpull requestに編集権限が付くけれど、タイトル変更はガンガンやっていってよさそう(これまで使い所分からず)
    • pull requestに関わっているときがそのpull requestに一番詳しい。後で思い出すのに苦労しないように、タイトルをリリースノートだと思って整えちゃおう!
  • 5年分のプルリクエスト、機能追加とバグ修正・改善、ドキュメントの改善が混在していた
    • タイトルで見当がつかないものは内容を確認しつつ、大まかに種類分けした
    • ラベルを使うと種類ごとに分けやすいのかも
    • タイトルのプレフィックスを使ってもいいかも(Conventional commit的な) -全部のpull requestから自動生成されたけれど、どこまで取捨選択すべきなんだろう?
    • 例えばv3.8.1には「Lots of small build system improvements.」とある
    • v3.9.0でこれに該当するのはどういうpull request? 私が実施したあまりにちょっとしたpull requestだけ削った
  • リリースノートのテンプレートってあるのかな?
    • 有名どころのリポジトリってリリースノートどうやってるんだろう? 真似してちょっとだけでもうまくやりたい

終わりに

自動生成に大いに助けられ、GitHubでのリリースを作ることができました。
やってみると色々気づきがあるもので、「pull requestがリリースの一部になる」というのはこれまで考えつきませんでした。

世の中のメンテナの皆さまはどうやってメンテナに入門されているんですかね?
駆け出しメンテナなので、メンテナの入門書的なものがあったら読んでみたいなあ。
リリースノートを支える技術とか、メンテナの所作をもっとうまくやる方法も知りたいです(調べてみよう)

SpeechRecognitionのv3.9.0、お楽しみください(Whisperサポートなどいろいろ入ってます)!
引き続きSpeechRecognitionにコードで価値を届けていく所存ですが、スターやスポンサーで支えていただけるととっても嬉しいです!

P.S. 達人のリリース活用術

textlintのazuさんはGitHubのリリースでブログを書いているそう!

GitHubでタグに対してリリースノートを書ける機能

このリリースノート機能は、パーマネントリンクもあるし、Markdownも書けるし、画像もアップロードできるし、絵文字でリアクションもできるし、RSSもあるし、通知機能もあるし、GitHub Discussion連携すればコメントも書けるし、全文検索もついてくるしこれブログとして使えるんじゃないかと思いました。

なるほど、こんな使い方もできるんですね〜