release-engine について
Rails エンジンを gem としてリリースする、または新バージョンを準備する開発者向けのスキルです。バージョン選定、テスト、変更履歴とアップグレード情報、ビルド確認、公開前の承認を案内します。
主な機能
- 01パッチ・マイナー・メジャーの選択
- 02RSpec テストスイートの実行
- 03バージョンと変更履歴の更新
- 04gemspec とビルド内容の確認
- 05公開前の承認の必須化
活用シーン
- 01Rails エンジン gem のリリース準備
- 02バージョン変更の互換性影響の評価
- 03公開前の gem ビルド検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ igmarin/ rails-agent-skills --skill release-engineインストール後、Claude Code で/release-engineを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
EXAMPLES.mdassets/examples.mdrelease_checklist.mdrelease_notes_template.md詳細
リリースエンジン
Rails エンジンを gem としてリリースするときや、新しいバージョンを準備するときにこのスキルを使用します。
クイックリファレンス
| バージョンアップ | 使用するタイミング | 対応 |
|---|---|---|
| パッチ | 公開動作に影響しないバグ修正や内部変更 | バージョン定数を更新し、「修正」に記載する |
| マイナー | 後方互換性のある機能や新しい拡張ポイント | バージョン定数を更新し、「追加/変更」に記載する |
| メジャー | API、セットアップ、ルート、マイグレーション、設定、またはサポート対象のフレームワークバージョンに関する破壊的変更 | バージョン定数を更新し、「変更/非推奨」に記載する。明確なアップグレード手順を書く |
必須ゲート
DO NOT release without updating CHANGELOG and version file.
基本プロセス
- 範囲と互換性への影響を確認します。これはパッチ、マイナー、メジャーのどれですか?
- テストスイート全体を実行します:
bundle exec rspec。先に進む前に、すべての失敗を修正してください。 - バージョンアップを設定します。バージョン定数を一度だけ更新します:
lib/my_engine/version.rb内のmodule MyEngine; VERSION = "1.2.0"; end。 - 変更履歴とアップグレード手順を更新します。
- gemspec のメタデータと依存関係が、テスト済みの Rails/Ruby バージョンに合っていることを確認します。
- gem のビルドをドライランします:
gem build *.gemspec && gem push --dry-run *.gem。内容を確認します。 - インストール手順と README がリリース内容に合っていることを確認し、必要に応じて更新します。
- 公開する正確な gem 名とバージョンについて、ユーザーの承認を求めます。リリースの準備は公開の許可を意味しません。
- 承認を得た後にのみ公開します:
gem push *.gem。
追加リソース
リリース用アセットは必要に応じて読み込み、出力にどれを使用したか明記します。
- リリースの検証チェックリストや品質ゲートを作成するときは、
assets/release_checklist.mdを読み込みます。 - GitHub リリースノート、詳細な告知、または一般公開用のリリース文面を作成するときは、
assets/release_notes_template.mdを読み込みます。 - ユーザーが具体的なリリース例を必要とする場合にのみ、
assets/examples.mdを読み込みます。
変更履歴のガイドライン
- コミットではなく、ユーザーに見える変更を記載し、「追加/変更/修正/非推奨」に分類します。
- 非推奨化については、削除計画と代替手段を記載します。非推奨コードは、少なくともマイナーリリースの1サイクルは維持します。
- アップグレード時にホスト側の変更が必要な場合は、バージョンアップがマイナーであっても、その内容を明記します。
例
## [1.2.0] - 2024-03-15
### Added
- `widget_count` config option to limit dashboard widgets (default: 10).
### Changed
- Minimum Rails version is now 7.0.
出力形式
- バージョンアップ — パッチ/マイナー/メジャーと、明確な理由。
- バージョン定数 — 更新した
lib/[engine_name]/version.rb。 - CHANGELOG の項目 — 「追加/変更/修正/非推奨」の見出しの下に記載します。
- アップグレード手順 — ホストアプリの作業(設定、マイグレーション、依存関係)。
- Gemspec とテスト状況 — メタデータ、ファイル、依存関係の範囲を確認し、
bundle exec rspecの合格/不合格の結果を示します。 - ドライランの出力 — 正確なコマンド
gem build *.gemspec && gem push --dry-run *.gemと、内容の確認(tar tf pkg/*.gemまたはgem contents)。 - アセットの使用状況 —
assets/release_checklist.md、assets/release_notes_template.md、assets/examples.mdのうち、読み込んだものを記載するか、必要なかったことを明記します。 - GitHub リリースノート — 概要、主な内容、アップグレード手順、検証状況を簡潔にまとめた草案。
- リリースの阻害要因 — 未解決の問題を記載するか、「阻害要因なし」と明記します。
連携
| スキル | 連携するタイミング |
|---|---|
| document-engine | リリースに合わせて README、セットアップ手順、または API ドキュメントを更新するとき |
| upgrade-engine | Rails/Ruby バージョンのサポートや非推奨化の影響を確認するとき |
| test-engine | リリース前にテストの合格を確認し、文書化された動作と一致させるとき |
コメント
Markdown 対応