行业#代码生成

Zig 迁出 GitHub 转向 Codeberg,并明令禁止 AI 贡献

Zig 迁往 Codeberg:导火索是 GitHub Actions CI「完全无法使用」;行为准则同步禁止 AI 贡献,称其「无一例外都是垃圾」。

云海之上的山脊与初升的太阳

Zig 创始人 Andrew Kelley 在 InfoQ/JetBrains 专访中确认两件事:Zig 仓库已迁往 Codeberg(德国非营利组织运营的代码托管平台),且项目行为准则明令禁止 AI 生成贡献。

事实部分

  • 迁移动因:GitHub Actions CI 故障且长时间未修复——「对我们来说,GitHub 已经完全无法使用」;迁移后 CI 恢复正常。Kelley 强调选择 Codeberg 是为了非营利组织的稳定性:「非营利组织只是致力于坚持做他们正在做的事,而这种稳定性正是我所追求的。」
  • No-AI 政策:ziglang.org 行为准则列入 Strict No LLM / No AI Policy——AI 贡献「无一例外都是垃圾」(负价值、增加评审负担)。
  • 「贡献者扑克」比喻:评审时间是对贡献者成长性的下注;AI 用户是过路贡献者,不值得投入。
  • 背景:Bun 用 AI 辅助在四个月里把 Zig 重写为 Rust 一事,被 Kelley 点名为价值观冲突而非语言问题。
  • 时间线:Zig 始于 2016-17 年;Kelley 2018 年辞职全职。

开源治理的明确站队

同时拒绝两大平台惯例(GitHub 托管 + AI 贡献)在旗舰开源项目里是第一次。Codeberg 托管回答「基础设施归谁」——非营利、无广告、无办公室政治;No-AI 政策回答「贡献是什么」——把评审时间视作项目最稀缺资源。

对其他项目的参照

小型高评审成本项目(编译器、密码学库、安全工具)最可能跟随:AI 生成的贡献在这些领域的误报率最高。大型基金会项目(Linux、Apache)则相反——它们有专职维护者与机器化 triage,吸得下。中间地带的项目会观望 Zig 的实际效果。

编辑判断

Kelley 的两个决定其实是同一个判断:项目的时间是稀缺资源,平台与贡献政策都要为守护它服务。Bun 的重写事件证明 AI 能高效翻译 Zig,但 Kelley 关心的从来不是效率——是社区是否能长出理解系统的人。这个实验值得所有被 AI PR 淹没的维护者关注;对照 arXiv 的限流新政,基础设施层对 AI 洪水的两种回答(配额与拒收)都已出现。

Codeberg 的取舍,直白说

Codeberg 给 Zig 的是非营利治理、欧盟辖区、没有广告——代价是 GitHub 的网络效应:可发现性、Actions 市场、以及「所有项目都在那」的默认假设。Kelley 赌的是 Zig 的贡献者管道已经成熟到不需要 GitHub 的漏斗顶端。触发迁移的 CI 故障本身也是数据点:GitHub 在 AI 规模负载下的可靠性问题——成千上万个仓库挤同一批 runner。

No-AI 政策实际禁什么

政策管贡献,不管私下使用:开发者可以私下用 AI,但进仓库的代码必须是人写、人懂。执行靠维护者自由裁量——见到即拒,外加行为准则条款。有趣的测试是边界案例:AI 重构的补丁、AI 解释的 bug 报告、AI 翻译的文档。Zig 画的线是「LLM 写的不是贡献」;大多数项目会画得更模糊。

对贡献者而言,实践中那条线在评审里怎么落:作者自己理解并能辩护的 AI 辅助补丁大概能过;原始 LLM 倾倒不行。Zig 把这个判断写成了显式且可执行的条款,而多数项目只把它当愿景——这就是差距所在。 Codeberg 的非营利资金模式是故事里安静的主角。

Zig 十年如一日的 0.x 版本纪律本就说明这个项目敢说不;这次只是把同一个本能用在了平台与贡献者身上。

迁往 Codeberg 还分散了单一厂商依赖的风险:GitHub 的故障、调价与 Copilot 强制条款都是单点故障,非营利 forge 把它们分散掉了。长周期的项目——语言尤其是——的托管经济学与应用不同,Kelley 是在给十年后的情况定价。 InfoQ 专访是一手来源;Kelley 回答这些问题时的耐心本身就是治理的产物。