LWN:Forgejo跟Gitea分手了!

Forgejo,起源于Gitea的软分叉,宣布将进行硬分叉,以保持社区控制和反对专有工具。Gitea的商业化转型引发争议,Forgejo寻求非营利治理模式。两者竞争为开发者提供自主托管的开源平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关注了就能看到更多这么棒的文章哦~

Forgejo makes a full break from Gitea

By Joe Brockmeier
February 23, 2024
ChatGLM translation
https://lwn.net/Articles/963095/

开源forge领域的世界正在变得更加碎片化。Forgejo项目是一个软件开发平台,于 2022 年下半年作为Gitea的一个“软分叉”启动。2024 年 2 月 16 日,Forgejo 宣布计划成为 Gitea 的“硬分叉”,以继续其目标(社区控制开发),并“解放软件开发,摆脱专有工具的枷锁”。在一个专有工具对开源开发投下长影的世界里,这些言论是很受欢迎的——如果该项目能够实现的话。

Gitea(过去以及现在都)是一个流行的开源 Git 托管和协作平台。Gitea 本身是Gogs的分叉,由于对“Gogs 的单维护者管理模式”感到沮丧,于 2016 年 12 月启动,选择了“更加开放和更快的发展模式”。最初,该项目的管理方式在其较早版本CONTRIBUTING.md文件中规定,项目将有三名“所有者(owner)”,负责保持开发可以“健康”进行。实际所有者的责任和权利是模糊的,但他们将由 Gitea 的维护者每年选举产生,这些维护者“通过简单的投票模型决定哪些贡献被接受,谁将扮演所有者的角色”。

当 Gitea 的域名和商标被 Gitea 的两位“所有者”(Lunny Xiao 和 Matti Ranta)悄然转移到一家名为 Gitea Ltd 的营利性企业时,负责维护 Gitea 的社区没有进行投票。公告表示,这个动作是为了实现“确保项目长期成功”的目标,允许无法通过赞助或代码贡献支持开源的公司直接支付 Gitea Ltd。此外,该公司将“作为项目的管家”,该项目“当然仍然是开源的,并且是一个社区项目”。到目前为止,该公司似乎一直遵守其关于 Gitea 本身保持开源的承诺。它推出了一种基于云服务的托管服务,其中包含 self-hosted 版本中不可用的功能,但 self-hosted 版本的 Gitea 仍然保持开源。公告中提及的“增强(enhanced)”企业版,人们期望它是核心开源的,目前尚未问世。

毫不奇怪,Gitea 社区的成员表示反对。他们在2022年10月25日发表了一封公开信(之后也在随时更新),要求 Gitea 的所有者应该改成成立一个非营利性组织来持有 Gitea 的域名和商标。当明确这一点不会发生时,社区宣布将创建 Gitea的软分叉,以“保持 Gitea 社区的团结”。Forgejo 项目于 2022 年 12 月 15 日在德国柏林的 Codeberg e.V.的赞助下公布,Codeberg e.V.是一个非营利性组织,提供Codeberg协作平台。

对于感兴趣的人,解释一下 Forgejo 这个名字,它取自世界语中 forge 的单词 forĝejo。社区从前辈的错误中吸取教训,安排 Forgejo 域名由 Codeberg e.V. 持有,项目有一套详细的文件,包含了项目治理的方方面面,如决策、品牌、合并 pull request、使命、团队以及如何处理资金。尽管 Gitea 仍然使用GitHub进行开发,但 Forgejo 是在 Codeberg 平台上开发的,现在 Codeberg 的底层基础就是 Forgejo。

为什么现在?

自 2022 年 12 月发布以来,Forgejo 一直在跟踪 Gitea 开发分支上的一系列提交——会在 feature 分支中工作并定期 rebase 来包含 Gitea 的改动。今年 1 月初,Forgejo 贡献者 Earl Warren发起了一场讨论,以改变 Forgejo 的开发工作流程,并“变得独立,并从 Gitea 代码库中挑选(直到分歧太大,变得不再可能为止)”。Warren 认为,现有的工作流程已经不再有意义,因为 Gitea“合并了未经测试的海量代码(包含功能或重构),这导致了一些重要的回归问题,并对用户产生了重大影响”。他还认为,更简单的 workflow 将提高稳定性,并使具有单个开发分支的贡献者比起具有多个 feature 分支的情况下工作得更加轻松。Warren 还声称 Gitea 已经“转向了 open core”,并对其“安全行为(security behavior)”表示了质疑,但没有详细说明。

在讨论之后,Warren 于 1 月 14 日提出了一项提案,来改变下一个主要发布之后的 Forgejo 工作流程(或者是 3 月 1 日,“以先到者为准”)。在该提案中,他解释说 Forgejo 有资金、资源和治理能力独立运营,并且这种改变“不会阻碍一直就不存在的合作”。尽管 Forgejo 一直在利用 Gitea 的工作,Warren 写道,Gitea 贡献者“从未从 Forgejo 中挑选过一个提交”。Warren 至少已经基于 Forgejo 的工作向 Gitea 提交了许多贡献https://github.com/go-gitea/gitea/issues?q=earl-warren。

到底什么是硬分叉而不是软分叉?在 2 月 16 日的公告中,Forgejo 项目解释称,软分叉意味着 Forgejo 包含“所有的 Gitea 内容,好坏兼具”,因此用户可以将 Gitea 作为即插即用的替代品迁移过来。这种日子尚未结束,但已经看出快到尽头了。计划从 Gitea 迁移到 Forgejo 的用户应该“尽早而不是在之后的某个时间”完成迁移,因为“最终,Forgejo 将不再是一个可以即插即用的替代品”。Forgejo 确实打算与 Gitea API 保持兼容,至少是目前存在的 API。公告称,对 API 的任何更改都将经过仔细评估,并且 Forgejo 将尝试与 Gitea 保持兼容——尽管贡献者可能根据自己的判断决定是否实现新的 API。公告指出,Forgejo 的某些部分已经发生了差异,例如文档、本地化和Forgejo Actions持续集成系统。

现在怎么办?

Gitea Ltd 没有直接回应 Forgejo 的公告。然而,它在 2 月 14 日发表了一篇博客文章(正好在 Forgejo 计划公开的“硬分叉”公告之前),庆祝欧洲自由软件基金会(FSFE)的“我热爱自由软件日(I Love Free Software Day)”。该文章提到了几个“使用 Gitea 构建自由软件或者开源软件”的组织,包括 FSFE、Blender 基金会、openSUSE 和其他组织。

两个项目似乎都有足够的动力来继续前进,但是否有足够的用户、贡献者和客户来维持两个项目,这一点尚不确定。例如,Gogs 从 Gitea 分叉出来之后似乎并没有茁壮成长。Gogs 在 GitHub 上的仓库显示了还有近期的活动,但 Gogs 的最后一个发布是在 2023 年 2 月 25 日——截至本文撰写时已经几乎过去了一年。主页上链接的演示也出现了错误,主页上的新闻通讯链接会出现 404 错误,而不是展示项目的最新新闻。

鉴于 Codeberg e.V. 对 Forgejo 的支持(及使用),Forjejo 在长期内似乎仍将保持其活力。作为一个平台,Codeberg 吸引了超过 117,000 个项目和 95,000 名用户,这是一个值得尊敬的数字,但与 GitHub 的数百万项目和用户相比,只是冰山一角。除非有大量用户从 Gitea 转向 Forgejo,否则 Gitea 似乎也将以大致相同的速度继续发展。Gitea 宣称今年 1 月其在 GitHub 上获得了 40,000 颗星,这一指标被认为证明了 Gitea 在 "全球范围内赋能开发者" 方面的 重要性,以及"全球开发者社区对 Gitea 的信任和信心"。不过引用的成功是在一个明显希望替代的平台上的信息,这有一丝丝讽刺的意味。

理论上,使用 ForgeFed 协议的网站可以通过让软件仓库之间的协作更加容易,从而帮助取代专有的解决方案。前提是它实际上可以得到实施。ForgeFed 协议是 ActivityPub 的一个扩展,它允许软件仓库在不要求用户在每一个仓库上创建账户的情况下进行交互。在 2023 年初关于联邦方式(federation)的一篇帖子中,Forgejo 项目描绘了一个挑战 GitHub 的开放生态系统的美好画面:

GitHub 是一个典型的封闭花园的例子。我们想创造一些类似 GitHub 的东西,但要在一个开放的生态系统中,在这个生态系统中,一切都使用 ForgeFed 协议,所以你不会因为使用的代码协作软件或仓库而受到限制。

实际上,联邦方式可能还需要数年才能得到实施或被采用。该帖子暗示联邦方式很可能会包含在 1.19 版本中,并声称 Forgejo 打算将联邦功能贡献给 Gitea 的上游。然而,1.19 中并没有出现联邦功能,Forgejo 中跟踪联邦功能的实现的 issue 表明还有很多工作要做。ForgeFed 网站上列出的只有一个项目,名为 Vervis,它有一个可用的实现,但该项目似乎还没有准备好用在现实世界中的项目上。

Gitea 和 Forgejo 都在试图解决同一个问题—提供一个可以由用户自行托管的开源软件开发平台,该平台能提供开发者需要和想要的所有功能。Gitea 选择放弃真正的社区治理,试图通过提供商业支持来维持发展,愿意在专有平台上工作,也考虑非开源的解决方案。Forgejo 选择了另一条路,拒绝专有工具,试图建立一个由社区领导、非盈利的模式来维持自身的发展。

这两条道路都有许多挑战和障碍。Gitea 和 Forgejo 可能会争夺同一批用户、贡献者和注意力。未来我们会再看看他们一年或三年后的成功程度,以及他们在将开源开发者从专有平台转移到开源平台方面产生了多大的影响。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

998c999db4a93c792154df49d2cb546c.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值