SuperAPI AI 工具集

upgrade-engine

编程与开发

查看项目

更新于 10-16 06:17

技能介绍

用途:检查 Rails engine 在不同 Rails 版本下的兼容性,重点覆盖 Zeitwerk 自动加载与跨版本支持声明。核心原则:只在 CI 矩阵实际测试过的版本上声明支持。

主要能力:定义并记录支持的 Ruby/Rails 版本;验证自动加载路径与常量命名一致;检查初始化器在启动与重载时的行为;核对 gemspec 依赖边界与实际测试版本一致;用能力探测替代 Rails.version 分支;逐版本检查可选集成(jobs、mailers、assets、routes、生成器、dummy app 挂载);维护 CI 矩阵。

使用方式:声称支持某版本前依次运行命令:bundle exec rake zeitwerk:check,然后 bundle exec rspec,并确保 CI 矩阵通过。文件路径须与常量名精确对应(如 my_engine/widget_policy.rb 对应 MyEngine::WidgetPolicy);重载敏感钩子使用 config.to_prepare;gemspec 依赖边界用 spec.add_dependency "rails", ">= 7.0", "< 8.0" 这类写法且与 CI 测试范围一致;用 ActiveSupport::Cache.respond_to?(:format_version=) 之类能力探测替代版本判断。CI 矩阵示例包含 { ruby: "3.2", rails: "7.1" } 与 { ruby: "3.3", rails: "7.2" }。

适用场景:Rails engine 升级、多版本兼容维护、发布前兼容性验证。

限制:未验证自动加载与完整测试套件前,不应发布兼容性改动;无边界或超范围声明的依赖约束属于隐性不兼容。扩展资源包括 assets/compatibility_matrix.md、assets/zeitwerk_notes.md、EXAMPLES.md。该技能输出语言要求为英文。可链式配合 test-engine、create-engine、release-engine 使用。