ペペロミアをリリースして1年くらい立ったので、振り返りしたいなーと思いリリースノート作りたいなーと思ったので、自動生成するスクリプトを書きました。
自動生成したリリースノート
v1.0.3〜2.0.4まで以下で確認できます。
リリースノート カテゴリーの記事一覧 - ペペロミア開発ブログ
本当は、はてぶじゃなくて別のブログサービスで公開しようと思ってましたが、noteも mediumも標準ではmark down使えなくて諦めました。
スクリプト
まず、設定を追加
config.tomlを書き換え
[GitHub] token = "" owner = "" repository = "" label = "リリースノート" startText = "## 対応内容" endText = "## 開発用メモ"
各設定内容は、以下の通り
仕組み的にはマイルストーンを元に指定のラベルが付与されたPull RequestをGitHub API経由で取得してきてテンプレートを元にMarkdownを生成しています。
また、config.tomlのstartText、endTextのようにPull Requestの本文の一部分を抜き出すようにしているので、GitHubのプルリクエストテンプレート機能を使用して上記の設定に合わせてテンプレートを作成。
■ Pull Request issueとpull requestのtemplate作成 by wheatandcat · Pull Request #638 · wheatandcat/Peperomia · GitHub
.github/PULL_REQUEST_TEMPLATE.mdを追加すればOK
■ .github/PULL_REQUEST_TEMPLATE.md
## 関連 issue - fixes #{issue 番号} ## 対応内容 (リリースノートのラベルをつけると、ここの記載がコピーされます) ## 開発用メモ 無し
これでPull Requestを作成すると自動で上記の文言が追加されるようになります。
あとは、以下の実行コマンドを実行(MILESTONEでマイルストーンの名前を指定)
$ MILESTONE=v2.0.4 go run main.go | pbcopy
出力はこんな感じ
# GitHub [Peperomia](https://github.com/wheatandcat/Peperomia) # マイルストーン [v2.0.4](https://github.com/wheatandcat/Peperomia/milestone/8) # 対応内容 - [Dangerを導入する](#MDExOlB1bGxSZXF1ZXN0MzgxODI0Mzgw) - [react-navigation v5にアップデート](#MDExOlB1bGxSZXF1ZXN0Mzk5NjgxMzc3) - [Expo sdk v37にバージョンアップ](#MDExOlB1bGxSZXF1ZXN0NDAzMjIzMzkw) - [prettier 2.0にバージョンアップ](#MDExOlB1bGxSZXF1ZXN0NDAzMjUwMTA2) - [Codecovを実装](#MDExOlB1bGxSZXF1ZXN0NDAzODAwNzA0) - [Sign in with Apple実装](#MDExOlB1bGxSZXF1ZXN0NDA1NjQwODM0) - [react-navigation v5でダークモード対応](#MDExOlB1bGxSZXF1ZXN0NDA1Njc4OTUw) # リリース詳細 <a id="MDExOlB1bGxSZXF1ZXN0MzgxODI0Mzgw"></a> ## [Dangerを導入する](https://github.com/wheatandcat/Peperomia/pull/478) - DangerでPull Requestを自動でコードレビューを追加 - https://danger.systems/js/ - 修正ファイルのテストカバレッジが80%以下だった場合に警告を表示する <img width="768" alt="スクリーンショット 2020-02-29 18 45 00" src="https://user-images.githubusercontent.com/19209314/75605489-adbdbf80-5b26-11ea-8b03-8a34be66993d.png"> <a id="MDExOlB1bGxSZXF1ZXN0Mzk5NjgxMzc3"></a> ## [react-navigation v5にアップデート](https://github.com/wheatandcat/Peperomia/pull/545) react-navigation v5にアップデート 内容は、以下の記事参照 https://www.wheatandcat.me/entry/2020/04/11/152650 <a id="MDExOlB1bGxSZXF1ZXN0NDAzMjIzMzkw"></a> ## [Expo sdk v37にバージョンアップ](https://github.com/wheatandcat/Peperomia/pull/559) 最新のExpo SDKにアップデートしました。内容は下記参照 https://blog.expo.io/expo-sdk-37-is-now-available-dd5770f066a6 バージョンアップに伴い修正した主な対応 * webサポート強化とあったのでトライしてみましたが、UIライブラリ系がサポートしてなかっのでビルド成功までいけなかった * Expo SDK37にしたら、@expo/match-mediaが動かなくなったので一旦table判定を別途作成して対応 <a id="MDExOlB1bGxSZXF1ZXN0NDAzMjUwMTA2"></a> ## [prettier 2.0にバージョンアップ](https://github.com/wheatandcat/Peperomia/pull/564) - Prettier 2.0にバージョンアップして、もろもろコード修正 - https://prettier.io/blog/2020/03/21/2.0.0.html <a id="MDExOlB1bGxSZXF1ZXN0NDAzODAwNzA0"></a> ## [Codecovを実装](https://github.com/wheatandcat/Peperomia/pull/565) - テストのカバレッジをCodecovで収集するように設定 - https://docs.codecov.io/docs <img width="802" alt="スクリーンショット 2020-06-14 13 54 05" src="https://user-images.githubusercontent.com/19209314/84585062-875a3080-ae46-11ea-8a9a-9c69e10f41eb.png"> <a id="MDExOlB1bGxSZXF1ZXN0NDA1NjQwODM0"></a> ## [Sign in with Apple実装](https://github.com/wheatandcat/Peperomia/pull/567) Sign in with Appleを実装。Apple storeの規約でサードパーティのログインを形式の場合はSign in with Appleの実装は必須になったのでFirebase Authenticationに追加 UIも含めてほぼドキュメントのコピペで実装できてよかった。 [https://docs.expo.io/versions/latest/sdk/apple-authentication/:title] <img src="https://cdn-ak.f.st-hatena.com/images/fotolife/w/wheatandcat/20200426/20200426114958.gif" width="250"> <a id="MDExOlB1bGxSZXF1ZXN0NDA1Njc4OTUw"></a> ## [react-navigation v5でダークモード対応](https://github.com/wheatandcat/Peperomia/pull/568) react-navigation v5のThemesの設定と https://reactnavigation.org/docs/themes ExpoのAppearance(機種のモード設定を取得できる)を実装して機種のモードでダークモードON/OFFするように変更 https://docs.expo.io/versions/latest/sdk/appearance こんな感じになりました ![20200426120605](https://user-images.githubusercontent.com/19209314/84451753-e70ddb80-ac8e-11ea-9520-7179743a8343.gif)
これを、ブログ記事に貼って以下のリリースノートが完成
ちなみにタグをつければRSS経由でリリースノートの情報が取得できるので、Webサイトのほうでも利用できそうです。
https://www.wheatandcat.me/rss?tag=%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88
今までリリースノートを適当で済ませてたけど、今後はちゃんと書いていこうと思います