关于 release-engine
面向以 gem 发布 Rails 引擎或准备新版本的开发者的发布准备技能。它涵盖版本选择、测试、变更日志和升级说明、构建检查,以及发布前的审批。
主要功能
- 01选择补丁、次要或主要版本升级
- 02运行 RSpec 测试套件
- 03更新版本号和变更日志
- 04检查 gemspec 和构建内容
- 05发布前要求审批
适用场景
- 01准备 Rails 引擎 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 发布或准备新版本时,使用此技能。
快速参考
| 版本升级 | 适用场景 | 操作 |
|---|---|---|
| Patch | 修复缺陷和内部变更,不影响公开行为 | 更新版本常量,在 Fixed 下记录 |
| Minor | 向后兼容的功能和新的扩展点 | 更新版本常量,在 Added/Changed 下记录 |
| Major | 对 API、设置、路由、迁移、配置或受支持的框架版本进行不兼容变更 | 更新版本常量,在 Changed/Deprecated 下记录;编写明确的升级说明 |
硬性门槛
DO NOT release without updating CHANGELOG and version file.
核心流程
- 确认范围和兼容性影响——这是 patch、minor 还是 major?
- 运行完整测试套件:
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。
变更日志指南
- 记录用户可见的变更,而非提交;按 Added/Changed/Fixed/Deprecated 分组。
- 对于弃用项,说明移除计划和替代方案;至少在一个 minor 周期内保留弃用代码。
- 如果升级引擎时需要更改宿主应用,即使版本升级为 minor,也要明确记录这些操作。
示例
## [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.
输出风格
- 版本升级——说明是 patch/minor/major,并明确解释原因。
- 版本常量——更新后的
lib/[engine_name]/version.rb。 - CHANGELOG 条目——置于 Added/Changed/Fixed/Deprecated 标题下。
- 升级说明——宿主应用的操作步骤(配置、迁移、依赖项)。
- 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