Drupal12 适配工具 Project Update Bot|自动修复废弃 API、一键更新第三方模块主题

Drupal 12 将于今年下半年正式发布。和以往所有主版本更新一样,各类第三方扩展都要针对不兼容的破坏性改动做适配升级。市面上数千款模块和主题,都需要调整代码里废弃 API 的调用逻辑,才能正常适配新版本。如果让社区开发者手动逐一修改全部第三方扩展,将会消耗大量人力工时。

项目更新机器人(Project Update Bot)就是为解决这项工作打造的工具。我们已经对它完成全面升级,如今专门用于适配 Drupal 12:它能自动扫描第三方扩展项目,一键生成附带修复补丁的工单,自动修正代码中废弃 API 的调用代码。

如果你是扩展维护人员,应该对这款机器人并不陌生。针对 Drupal 12 的开发周期,我们扩充了 Rector 代码重构规则,目前能够覆盖该版本超过 80% 的废弃 API 调用场景。整套成熟工具各司其职:Gábor Hojtsy(加博尔・霍伊齐)开发的 Upgrade Status(升级状态)负责代码扫描分析;Drupal Rector 负责自动修复代码,现阶段主要由 SWIS 团队维护;再通过 Project Analysis(项目分析)组件串联起整套工具的运行流程。

本次更新带来两项关键优化:第一,重构规则的覆盖范围变得更全面,一部分新增规则是基于 Dries Buytaert(德里斯・布伊塔特)的 drupal-digests 文档,通过 AI 自动生成;第二,代码分析时可识别并解析子模块的依赖关系。在前几个版本周期里,工具仅能扫描子模块,无法识别对应的依赖,时常出现扫描失败、大量误报错的情况。目前该问题已修复,扫描结果更加整洁,识别准确率也显著提高。

机器人生成的补丁会分别提交到 GitLab 或 Drupal.org 的工单中,两个平台的工单操作方式略有区别。机器人创建的每条工单里,都会标注好补丁安装、暂停机器人自动处理、关闭工单的操作步骤,项目的全部操作权限始终由你自主把控。

大家如果有疑问,或是想参与工具优化,可前往 Drupal 官方 Slack 的 #d12readiness 频道沟通。要是发现补丁存在问题,欢迎前往 Drupal Rector 或 project_analysis 的工单队列提交反馈,我们会统一修正通用规则,方便全体开发者使用。

这款机器人基于 Upgrade Status、Drupal Rector、drupal-digests 等多款开源工具开发。在此也感谢所有开放代码仓库、配合我们测试新版机器人的扩展维护者。

联系我们

提供基于Drupal的门户网站、电子商务网站、移动应用开发及托管服务

长按加微信
长风云微信
长按关注公众号
长风云公众号