将Gutenberg的实验性API合并到WordPress中的做法核心可能很快结束。由 Automattic 赞助的贡献者 Adam Zielinski 发布的一项新提案呼吁贡献者在将 API 合并到核心之前稳定它们。
多年来,大约 280 个实验性 API 已从 Gutenberg 插件中合并,Zielinski 在他于 4 月开始讨论的票证中写道。通过迭代编辑器和 WordPress 对向后兼容性的承诺来平衡快速移动的动力,实验性 API 的数量已经变得不可持续,现在正在积极重新考虑将它们合并到核心的做法。
正式地,实验性 API 被标记为阻止第三方使用,因为它们预计会发生变化。实际上,为块编辑器构建的人们无论如何都在使用它们,因为它们是核心,并且他们希望扩展这些 API 启用的功能。
“插件和主题作者被迫依赖 __experimental 功能,这些功能可能会以向后不兼容的方式随时删除或更改,”Zielinski 说,这与许多开发人员表达兴趣的方式不同在过去几年的项目中。挫败感和担忧声此起彼伏。 “这是一个严重的维护负担。每个新的 Gutenberg/WordPress 版本都意味着潜在的重大变化。”
WordPress 核心提交者 Peter Wilson 对这张票发表评论说他赞成将实验性 API 限制为尖端产品。他强调了这种变化的必要性,并指出这些核心实验性 API 对生态系统产生了许多负面影响:
- 核心提交者是不愿意使用某些库功能来简化核心任务,因为他们不信任可靠性
- 开发人员不再升级 WP 客户端站点。作为多年来一直努力保持向后兼容性的核心提交者,这让我很失望。作为一名安全团队成员,这非常令人担忧
- 开发人员决定在主题和插件中包含该包的副本,而不是依赖于 wp.* 全局变量。同样,从安全的角度来看,这让我很担心,但它也大大增加了 JavaScript 负载,而不是保持向后兼容性
- 关于次要版本的向后兼容性中断的报告:“你不会期望 5.9.1 版本打破块编辑器之外我们站点中一堆图像的响应能力”
- 开发人员考虑从不使用核心块,因为它们太不稳定:”我停止使用/扩展核心块,因为它们各不相同太多了,我一直在使用 ACF 块,所以我至少知道我可以不间断地制作。诚然,用户界面不如核心块好,但我会在打破块兼容性的任何时候保持它的稳定。
Gutenberg 插件旨在用作功能插件,预计会打破向后兼容性,并且贡献者会在将其合并到核心润色之前处理功能。回到这种方法的根源,减少编辑器的实验性,是该提案的核心。
“版本之间的不稳定性已经开始疏远块编辑器的一些最大的外部拥护者,”威尔逊说。
保持这种不稳定性可能会阻止人们在 WordPress 上构建,将他们推向其他管理方式不同的更直接的项目。依赖实验性 API 的需要可能会阻止开发人员构建更多产品,从而减缓块编辑器的采用。
“作为目前使用许多 __experimental API 的插件作者,我希望看到这些 API 得到稳定,”WP Engine 赞助的贡献者 Nick Diego 说。 “大多数提供关键功能,但构建依赖于 __experimental API 的产品总是有点令人不安。只要过程透明、广为人知,并且我们为插件/主题作者提供有关如何迁移到稳定版本的指导,那么我喜欢这个倡议。”
经过数月的讨论,Zielinski 在 Make WordPress Core 博客上将贡献者的担忧提炼为拟议的行动计划。
该提案指出,大多数已合并到核心中的现有实验性 API 将获得一个稳定的别名。
“它将保持向后兼容性,并且不会显着影响包的大小,”Zielinski 说。 “有些人需要区别对待,我们要具体情况具体讨论。”他还建议贡献者考虑是否需要删除核心中已有的实验性 API。他并不期望其中有很多,但建议联系插件作者、使用软弃用和发布核心帖子的既定做法。
“我在这里看到另外两件事:在 API 设计期间使用和滥用实验性 API(通常在 Gutenberg 插件中使用和测试)以及在满足设计标准的同时缺乏稳定它们的勤奋过程, ”Gutenberg 的首席架构师 Matthias Ventura 在原始票证上评论道。“那些被认为是事实上公开的是那些在许多版本中以稳定形式存在的,尽管它们的命名法。”
为了保留 WordPress 实现其向后兼容性承诺的能力,这是一项将实验性 API 限制为 Gutenberg 插件并且从不将它们合并到核心的提议。对于依赖于实验性 API 的稳定功能,Zielinski 给出了一个简单的答案:
“那么它实际上并不稳定。让我们先稳定依赖关系。”
这本质上是一种新的前进方式,应该会增加 WordPress API 和更新的稳定性和信心,但它确实有一些缺点。
用户和贡献者可以预期 Gutenberg 功能可能会更慢地合并到核心中,因为当它们在主要版本中达到黄金时间分发时,它们不能依赖实验性 API。Zielinski 还指出,一旦交付,贡献者也很难重构这些 API并在数百万个 WordPress 网站上使用。
到目前为止,该提案已获得压倒性的积极支持,因为许多人认为这些 API 根本不应该成为核心,因为它们仍处于实验阶段。
“我非常喜欢这种方法,”WordPress 开发人员 Mark Root-Wiley 说。“我构建自定义主题并拥有一些简单的插件。对于这两者,我发现自己经常被迫处理实验性 API,当核心功能被放入只能通过实验性 API 关闭、调整或扩展时,很难跟上他们的更新。” p>
WordPress 撰稿人 Dovid Levine 评论了该提案:“恢复这种核心稳定性将大大有助于重新获得一些开发人员的善意。”
p>
建议截止日期定于 9 月 7 日,届时将在 WordPress 6.1 beta 1 发布前三周结束讨论。这让贡献者有时间在下一个主要版本之前更深入地审核实验性 API,如果他们同意将它们限制为 Gutenberg 插件的话。
类别:新闻、WordPress
资源