Release Engine
用途:在需要把 Rails engine 作为 gem 发布或准备新版本时使用此技能。它强调发布前必须更新 CHANGELOG 和版本文件(HARD-GATE:未更新不得发布)。
主要能力与流程:
- 确认发布范围与兼容性影响,判断是补丁、次要还是主要版本(含 API、配置、路由、迁移等破坏性变更时写显式升级说明)。
- 运行完整测试套件:bundle exec rspec,修复全部失败后再继续。
- 更新版本常量,例如 lib/my_engine/version.rb 中的 module MyEngine; VERSION = "1.2.0"; end。
- 更新 changelog 与升级说明,按 Added/Changed/Fixed/Deprecated 分组;弃用需说明移除计划并保留至少一个次要版本周期。
- 核对 gemspec 元数据与依赖范围是否匹配已测试的 Rails/Ruby 版本。
- 试运行构建:gem build *.gemspec && gem push --dry-run .gem,并用 tar tf pkg/.gem 或 gem contents 验证内容。
- 确认安装文档与 README 一致后,请求用户批准确切 gem 名称和版本;准备发布不等于授权发布,仅在获批后执行 gem push *.gem。
输出风格:版本升级类型及理由、更新后的版本常量、CHANGELOG 条目、宿主应用升级说明、gemspec 与测试状态、试运行命令及内容验证、所用资源说明、GitHub release notes 草稿,以及发布阻塞项(无则写 No blockers)。
资源:生成检查清单或质量门禁时读 assets/release_checklist.md;起草发布说明或公告时读 assets/release_notes_template.md;需要具体示例时读 assets/examples.md,并说明实际加载了哪个。
集成:更新 README 或 API 文档可衔接 document-engine;验证 Rails/Ruby 版本支持可衔接 upgrade-engine;确保测试通过可衔接 test-engine。