在Automattic与WP Engine之间的持续斗争中,目前还难以预见最终结果,但WordPress整个社区已经成为了这场纷争的受害者。Automattic的创始人兼首席执行官Matt Mullenweg正利用他对项目及WordPress.org基础设施的控制权来惩罚WP Engine,并将一些持异议的贡献者从讨论渠道中移除。最近,Mullenweg还对WP Engine的一个插件发起了敌对分支,并通过WordPress更新将该分支替换了原本的插件。
在Automattic和WP Engine的争执初期,许多人曾希望两家公司能够缓和敌对情绪,或者至少让律师们来处理这场纷争,同时不将更大的社区牵扯进来。然而,这种希望并未实现。
WP Engine曾试图选择仅通过法律途径解决问题。在WordPress.org禁令的"暂时解除"结束后的第二天,即10月2日,WP Engine向Automattic和Mullenweg个人提起了一份62页的诉讼,并要求陪审团审理。该诉讼的指控包括合同干扰、计算机欺诈(因阻止其访问WordPress.org)、企图敲诈、诽谤和中伤。此外,诉讼还要求法院宣告WP Engine未侵犯或削弱Automattic在其停止侵权信中所列举的WordPress、WooCommerce等商标。
这一举动显然不太可能修复Automattic和WP Engine之间已经烧毁的桥梁。可以预见的是,WordPress.org的禁令将继续生效,Automattic将对诉讼作出回应,并可能反诉WP Engine。然而,到目前为止,尚未有任何迹象表明Automattic会反诉或回应WP Engine的诉讼。相反,Mullenweg正在通过其他手段制造WP Engine的麻烦,而这些手段已经以令人不安的方式影响到了更广泛的WordPress社区。
复选框想要参与WordPress的开发,如果不登录该网站几乎是不可能的。使用WordPress.org对于那些想要贡献和更新插件、访问WordPress错误跟踪实例等功能的人来说是必不可少的。10月9日,WordPress.org登录表单上新增了一个复选框,内容为:“我与WP Engine没有任何财务或其他形式的关联。”如果不勾选该框,用户将收到提示,要求勾选该框才能继续操作。
自然地,许多贡献者对这个新复选框提出了疑问,因为其措辞含糊,潜在的后果也不明确。显然,这可能适用于WP Engine的雇员,但“财务或其他形式的关联”究竟涵盖多广呢?这是否适用于那些将自己客户的网站托管在WP Engine上的员工?或者那些订阅了WP Engine某项服务的客户?许多贡献者在WordPress的Slack中寻求关于这一政策的答案,但结果令人失望。一些人报告称,由于这些讨论,特别是因持续追问或质疑Mullenweg的领导力,他们被禁止进入Slack实例。
Javier Casares分享称,在他在Slack讨论线程中提出一系列问题后,他的账户被停用了。(需要注意的是,申请WordPress Slack账户需要拥有WordPress.org账户并已登录。)在该线程中,Mullenweg表示不会存储复选框的值,但拒绝澄清什么样的情况算是与WP Engine有关系。他建议有疑问的用户“咨询律师”。
Casares表示,大多数人都同意WP Engine应该为WordPress做出更多贡献,但利用WordPress.org作为战斗的一部分是适得其反的。他在Slack中建议修改措辞,表示用户不应“为WP Engine工作”,但这一提议未被采纳。
站队另一位参与者Terence Eden在Slack中询问他是否可以在与WP Engine有关系的情况下通过GitHub提交拉取请求。在与Mullenweg进行了几轮毫无帮助的交流后,Eden回应道:
我从未见过有人对自己的项目散布如此多的恐惧、不确定性和怀疑。我起初对你与WP Engine的斗争表示同情。但你的行为使我——以及许多其他好人——远离了这个项目。
他后来在Mastodon上报告称,他的账户被停用了。Andrew Hutchings,一位为MariaDB基金会工作的WordPress贡献者,也参与了这场讨论。他在Slack上表示,有多少贡献者能负担得起律师来咨询这个复选框的问题,并补充道“我为另一个基金会工作,该基金会肯定无法为我提供律师费用来贡献代码。”他在自己的博客中写道自己被禁言,并表示他只是想为这个项目工作:
我认为我代表了许多WordPress社区/生态系统中的人们发声,我们不想在这场争斗中站队。我们也不想通过一个复选框被迫站队。我们只想完成工作,改进WordPress,让每个人受益。
然而,这似乎已经不再是一个选择。Alex Sirota在#meta Slack频道的复选框讨论中说道:“你难道不明白这里发生了什么吗?在我看来,这很简单:你必须选择一个立场。”Colin Stewart说道,如果这是目的,那么Mullenweg可以亲自说明。随后,Mullenweg回应道:“我希望你们都能了解情况并参与其中,而不是置身事外。”目前尚不清楚Sirota的账户是被禁用还是他自己主动停用了账户。
在禁止WP Engine使用WordPress.org后,Mullenweg也要求Automattic的员工站队。他在10月3日的博文中写道,Automattic向员工发出了“对齐邀请”。公司为那些因不认同Mullenweg的行动而希望离职的员工提供了30,000美元或六个月工资(取较高者)的买断方案。接受买断的员工将立即离职,并且不再有资格重新被雇用。根据该文章,159人——占公司员工的8.4%——接受了这一提议。
高级自定义字段WordPress的受欢迎程度很大程度上归功于其插件和主题。一个没有插件的WordPress安装缺少许多运行网站所需的功能:备份、电子商务功能、统计、联系表单、搜索引擎优化(SEO)、管理URL重定向,或为WordPress添加额外的内容类型。
围绕WordPress的庞大生态系统提供了这些插件以及具有附加功能的付费插件版本,付费主题则简化了网站设计。反过来,这也巩固了WordPress作为全球最受欢迎的内容管理系统(CMS)的地位。
WP Engine开发了一款名为高级自定义字段(ACF)的插件,该插件通过WordPress.org的安装次数已超过两百万次。它允许开发者为WordPress的编辑界面添加额外的内容字段(称为自定义字段)。例如,这可以用于添加一个日期选择器或一个创建照片库的界面。ACF也被大量其他WordPress插件使用或结合使用,如用于ACF的高级表单和WPML插件,用于翻译WordPress网站。
该插件的基础版本是免费的,但它也有一个付费版本(“ACF Pro”),需要按年订阅。两者都依据GPLv2许可证发布,但用户必须支付订阅费用才能获得Pro版本的更新,而这些更新直接来自WP Engine。
9月28日,Mullenweg在Slack上询问是否应该将ACF Pro纳入WordPress核心中,这引发了频道内的不同反应。一些用户指出,添加自定义字段的功能早该实现,但也有人对“出于报复”接管ACF Pro表示担忧。Richard Korthuis询问这将向其他开发付费插件的开发者传递怎样的信息:“无论你怎么看待WP Engine和这场争斗,这样的行为[向开发者]传递了错误的信息,并将阻碍未来对新插件的投资。”
Automattic在10月5日的一个现已删除的推文中宣布,他们已“负责任地披露了ACF中的一个漏洞”给WP Engine,但并未提供进一步的细节。WordPress核心安全团队的负责人John Blackbourn表示,Automattic违反了Intigriti行为准则,因为他们“无责任地公开”了该漏洞。Intigriti是一家为公司(包括WP Engine)运行漏洞赏金计划的公司。
WP Engine在10月7日宣布了该插件的安全更新。根据发布说明,该漏洞似乎是次要的。它不是一个可以远程利用的缺陷,且仅在“极不可能的情况下”影响到管理员用户试图攻击其他管理员用户,或试图在WordPress多站点安装中获取超级管理员权限。到目前为止,除了这些之外,关于该漏洞的详细信息还很少。另一个XZ后门它并不是。
由于其开发者现在被禁止访问WordPress.org,WP Engine不得不将其修复提交给WordPress安全团队,以便将其上传到插件目录中。另有手动更新插件的说明,以便直接从WP Engine接收更新。
ACF分叉10月12日,Mullenweg代表WordPress安全团队发布了一则公告,称ACF插件被分叉为安全自定义字段(SCF),依据的是插件目录指南中的第18条。该条规定的部分内容是,WordPress.org可以“在没有开发者同意的情况下,出于公共安全考虑,对插件进行更改”。根据公告,此举是“由WP Engine的法律攻击引发的罕见且不寻常的情况”。
Automattic不仅仅是分叉了ACF代码并将其以新名称发布以与WP Engine竞争。虽然这一举动可能会引发一些争议,但大多数观察者可能会认为这是公平游戏。
然而,Automattic不仅分叉了ACF的代码,还接管了该插件在WordPress.org目录中的条目,包括其所有的评价。新插件被替换到之前安装了ACF的所有用户站点上。根据WordPress.org上的公告,启用了自动更新插件的网站将自动收到SCF插件。一些网站所有者可能并未意识到他们的插件已经被悄然替换。根据Mullenweg在10月14日Hacker News评论所言,新插件的下载量已经达到了22.5万次,他估计“至少60%的启用了自动更新并使用.org进行更新的站点”已经迁移到了该分叉版本。
这并不是第一次有公司接管通过中央存储库分发的包,虽然这种情况很少见。2016年,npm公司在其开发者Azer Koçulu移除left-pad后,恢复了left-pad到Node.js的包管理器中。然而,那一举动是为了减少对Node.js生态系统的破坏:left-pad的移除导致成千上万的项目构建失败,而Koçulu基本上已经放弃了该包。
然而,接管ACF在WordPress目录中的位置,则是Automattic针对另一家公司的惩罚性举动,它超越了WordPress.org的基础设施,深入到数百万个WordPress安装实例。网络开发者Charles Fulton对此事件发表评论称:“这是对WordPress插件生态系统的深刻动摇”;他质疑自己是否需要担心WordPress核心的更新可能干扰ACF Pro的运行。
WPGraphQL被纳入阵营依赖WPGraphQL和WPGraphQL for Advanced Custom Fields插件的ACF Pro用户可能真的有理由担心Automattic会寻求打破与ACF的兼容性。WPGraphQL为WordPress站点提供了GraphQL架构和API,是与ACF结合使用的流行插件。该插件的维护者Jason Bahl于10月7日宣布,他将离开WP Engine加入Automattic。此外,他表示WPGraphQL将成为WordPress的“官方插件”。
“官方插件”这一概念定义模糊,但Mullenweg在2022年将其描述为一种官方推荐的插件,虽然功能较为小众,但对于某些类型的功能来说是首选。随着WPGraphQL的开发转移至Automattic,ACF的兼容性似乎不再是优先事项。
一直参与将字段API引入WordPress核心项目的Scott Kingsley Clark于10月13日宣布他将退出WordPress核心的贡献。GitHub上的字段API项目已被归档,告别声明中写道,虽然停止该项目让他感到痛苦,但他“不会再为Matt的行为寻找借口,不会再与核心项目有任何关联”。他在Mastodon.social上补充道,他将继续留在WordPress社区,并继续开发Pods插件。