新提案呼吁贡献者停止将实验性API从Gutenberg合并到WordPress核心中去

AI 智能摘要
将Gutenberg的实验性API合并到WordPress核心中的做法可能很快就要结束了。由Automattic赞助的贡献者Adam Zielinski发表的一项新建议,呼吁贡献者在将API合并到核心中之前合并它们。

将Gutenberg的实验性API合并到WordPress核心中的做法可能很快就要结束了。由Automattic赞助的贡献者Adam Zielinski发表的一项新建议,呼吁贡献者在将API合并到核心中之前合并它们。

Gutenberg

多年来,大约有280个实验性API被合并到Gutenberg插件中,Zielinski在4月份为这个问题开出的票据中审核了这些API。在平衡快速迭代编辑器的驱动力和WordPress对向后兼容性的承诺方面,实验性API的数量已经无法维持,现在正在积极重新考虑将它们合并到核心中的做法。

官方的说法是,实验性的API被标记为这样,以阻止第三方的使用,因为它们预计会改变。在实践中,为块状编辑器构建的人无论如何都在使用它们,因为它们在核心中,而且他们想扩展这些API所实现的功能。

“插件和主题作者被迫依赖__实验性功能,这些功能随时可能被删除或以向后不兼容的方式改变,”Zielinski说,呼应了许多开发者在过去几年中对该项目感到的挫折和担忧。”这是一个严重的维护负担。每一个新的Gutenberg/WordPress版本都意味着潜在的破坏性变化。”

WordPress核心提交人Peter Wilson对该票发表评论,说他赞成将实验性API限制在边缘产品上。他引用了这些核心实验性API对生态系统造成的一系列负面影响来说明这一变化的必要性。

核心提交人不愿意使用某些库的功能来简化核心任务,因为他们不相信其可靠性。
开发者不再升级WP客户站点。作为一个多年来一直努力保持向后兼容的核心提交者,这让我很失望。作为一个安全团队的成员,这让我非常担心
开发者决定在主题和插件中包含软件包的副本,而不是依靠wp.* globals。从安全的角度来说,这也让我很担心,但这也大大增加了JavaScript的有效载荷,而不是维持向后的兼容性。
在小版本中,有关于后向兼容性破坏的报告。”你不会指望5.9.1版本会破坏我们网站中块状编辑器之外的一堆图片的响应性吧”
开发人员考虑不再使用核心区块,因为它们太不稳定了。”我不再使用/扩展核心区块,因为它们变化太大,我一直在使用ACF区块,这样我至少知道我可以制作不会中断的区块。虽然用户界面没有核心区块那么好,但我随时都会选择稳定性而不是区块断裂。”

Gutenberg插件的目的是作为一个功能插件,在贡献者将功能合并到核心内容之前,预期会出现向后兼容的中断。回到这种方法的根源,并使编辑器不那么具有实验性,是这项建议的核心。

“威尔逊说:”不同版本之间的不稳定性已经开始疏远了一些块状编辑器最大的外部拥护者。

保持这种不稳定的水平可能会使人们不愿意在WordPress上进行构建,把他们推到其他更直接的项目上,这些项目是以不同的方式管理的。有可能的是,由于需要依赖实验性的API,阻碍了开发者构建更多的产品,减缓了块状编辑器的采用。

“作为一个目前正在使用许多实验性API的插件作者,我希望看到这些稳定下来,” WP Engine赞助的贡献者Nick Diego说。”大多数都提供了至关重要的功能,但构建一个依赖实验性API的产品总是让人有点不安。只要这个过程是极其透明的,被很好地宣传,并且我们为插件/主题作者提供了如何迁移到稳定版本的指南,那么我就喜欢这个倡议。”

经过几个月对票据的讨论,Zielinski将贡献者的关切提炼成了Make WordPress Core博客上提出的行动计划。

该建议表明,大多数现有的实验性API已经合并到核心中,将得到一个稳定的别名。

“Zielinski说:”这将保留向后的兼容性,并且不应该明显地影响包的大小。”有些会需要不同的处理方式;让我们逐一讨论。” 他还建议贡献者考虑是否需要删除已经在核心中的现有实验性API。他预计这种情况不会很多,但建议这些使用既定的做法,即联系插件作者,使用软弃用,并发表Core帖子。

“我也看到有两件事在起作用:在API设计期间使用和滥用实验性API(一般要在Gutenberg插件中使用和测试),以及当它们满足设计标准时,缺乏一个勤奋的过程来稳定它们,”Gutenberg首席架构师Matias Ventura在原始票上评论道。”那些要被认为是事实上的公共的,是那些尽管有名字,但已经以稳定的形式存在了许多版本的”。

为了维护WordPress实现其向后兼容的承诺的能力,该提案建议将实验性的API限制在Gutenberg插件中,并且永远不要并入核心。在一个稳定的功能依赖于一个实验性API的情况下,Zielinski确定了一个简单的答案。

“那么它实际上并不稳定。让我们先把依赖关系稳定下来”。

这基本上是一种新的前进方式,应该可以增加稳定性和对WordPress的API和更新的信心,但它确实有一些缺点。

用户和贡献者可以预期,Gutenberg的功能可能会更慢地合并到核心中,因为他们不能依靠实验性的API,当它们在主要版本中达到黄金时间的分布。Zielinski还指出,一旦这些API发货并在数以百万计的WordPress网站上投入使用,贡献者也可能难以重构这些API。

到目前为止,这个提议得到了压倒性的积极支持,因为许多人认为这些API在一开始就不应该在实验阶段就到达核心部分。

“我非常赞成这种做法,”WordPress开发者Mark Root-Wiley说。”我建立了定制的主题,并有一些简单的插件。对于这两者,我发现自己有些频繁地被迫处理实验性的API,以及当功能被放在核心中时,只能通过实验性的API来关闭、调整或扩展时,要与它们保持同步的困难。”

“在核心中恢复这种稳定性将大大有助于重新获得一些开发者的好感,”WordPress贡献者Dovid Levine对该提案发表评论。

对该提议发表评论的截止日期是9月7日,这将在WordPress 6.1 Beta 1预计到来之前的三周内结束讨论。这给了贡献者一些时间,在下一个主要版本之前更深入地审核实验性API,如果他们达成共识,把它们限制在Gutenberg插件上。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容