release-please
GPT-4.icon
「Release Please」は、GitHubのリポジトリでソフトウェアのリリースプロセスを自動化するためのツールです。これは、コンベンショナルコミット(conventionalcommits.org)の規格に基づいてリリースのプルリクエスト(PR)を生成することを目的としています【6†ソース】。 このツールは、バグ修正(fix:)や新機能(feat:)など、特定のプレフィックスを持つコミットを識別し、それらを基にバージョン番号を決定し、変更ログを生成します。例えば、fix: プレフィックスはバグ修正を意味し、SemVer(セマンティックバージョニング)のパッチリリースに対応しています。また、feat: は新機能を示し、マイナーリリースに対応します。破壊的変更は ! を使って示され、メジャーリリースになります【8†ソース】。
Release Pleaseは、リニアなGitコミット履歴を推奨しており、プルリクエストをマージする際にはスカッシュマージ(squash-merge)を使用することを勧めています。これにより、履歴の追跡やバグの特定、メインブランチの整理が容易になります。また、複数の修正や機能を一つのコミットで表現することも可能です【8†ソース】。
Release Pleaseは、Node.js、Python、Javaなど様々な言語やプロジェクトタイプに対応しています。GitHubアクションとして実行するのが最も簡単な方法で、CLIツールとしても利用可能です。また、GitHubアプリとしてデプロイすることもできます【8†ソース】。
リポジトリのカスタマイズやモノレポ(単一リポジトリ内で複数のアーティファクトをリリースする)のサポートも提供しています【8†ソース】。
社内向けUIライブラリを作ろうと思っているんやけど、release-please使えばGitHub上のRelease、CHANGELOG.md、npmへのPublish、package.jsonでバージョン更新とかまるっとやってくれるんやね。恥ずかしながら知らなくて感動しました。ref