QGIS 投票通过新规:代码贡献禁用 AI

开源地理信息软件 QGIS 把自己的 AI 政策改成了 “不允许”。编号 QEP 428 的提案 10 月 7 日在 QGIS 增强提案仓库里被标为 Accepted 并合并,标题就一句话:No AI contributions permitted。

提案由 QGIS 核心开发者 Nyall Dawson 9 月 24 日发起,10 月 5 日进入投票。他在投票帖里列出 4 位投赞成票的成员,另有几位在讨论中明确表态 +1;开场帖收到 25 个赞、3 个踩,前后约 15 人参与讨论。QGIS 是全球用得最广的开源 GIS 桌面软件之一,这次表决之后,它不再接受 AI 写出的代码贡献。

从“人在回路中”收紧到一刀切

QGIS 之前执行的是 QEP 408,核心原则叫 “human in the loop”,允许使用 AI 工具,只要有人对提交负责。Dawson 在 6 月的开发者邮件列表里就提过,这套规则“相当宽松”,并提到 PostGIS 社区当时因为 AI 提交闹出的冲突。

这次提案给出的理由主要有两条。一是维护者审不过来:AI 生成的提交量超过了人工审阅的能力,硬审会审不细,放水会伤代码质量。二是开源社区靠人与人之间的关系维系,需要给人类贡献者留出空间。

旧政策的执行情况也被拿出来讨论。原本计划设立的 “extractive” 标签一直没建起来;成员 uclaros 在讨论中提到,大约 50 个 PR 被标成 “AI Assisted”,其中约 40 个最终关闭、没有合并。这个数字出自讨论帖,页面上没有给出逐条清单,目前无法独立核实。

Dawson 对新规的定位是“先把门关上”,以后再按个案慢慢打开,比如拿 AI 代替 IDE 的自动补全、做界面文字翻译,前提是先充分讨论。

跟 GDAL、Godot 比一比

同一圈子里,GDAL 走在前面。它的规则写明 “Submission of vibe-coded contributions is banned”,人类必须是贡献的主要作者;大模型只能当增强版自动补全,或者做那些本可以用确定性算法完成的机械重构;无人值守的智能体提交一律不收;任何使用大模型的地方都要在工单、评论或提交信息里注明。

游戏引擎 Godot 的思路更偏向“问责”,核心一句是 “Contribute only what you understand”:提交者要能向维护者讲清自己的代码,用了 AI、抄了别人代码或者实现了别人的想法,都要说明哪些部分不是自己写的。

Dawson 6 月发帖时提的是参考 GDAL 加 Godot 的组合。最终落地的 QEP 428 比两者都硬:GDAL 至少给补全和机械重构留了口子,QGIS 这一版连这些都要等日后单独讨论。

怎么执行,还没说清

执行层面目前只有原则。成员 timlinux 在讨论中说,标准是“你是不是凭良心自己写的代码”,项目不会去检查任何人的电脑。换句话说,规则主要靠贡献者自律,加上维护者在审阅时的判断。

边界上也留着几处空白。vpicavet 和 adamjstewart 先后问到,issue、评论、PR 描述、文档这些非代码内容是否同样适用;“用 AI 写代码”和“用 AI 辅助排查、审阅”之间怎么划线,讨论里也有分歧。截至提案合并,页面上没有看到正式答复。

对国内参与开源的开发者,这条新规的直接影响是:往 QGIS 主仓库提 PR 之前,Copilot、Cursor 一类工具生成的代码不能再直接带进去。国内不少地理信息、测绘和政务 GIS 项目基于 QGIS 二次开发,自家仓库怎么用 AI 不受约束,往上游回馈补丁时就得按新规来。

参考来源:QGIS 增强提案仓库 QEP 428 讨论页、QGIS 开发者邮件列表、CocoLoop、GDAL 项目 AI 政策;核验提案编号、投票赞成人数及约 50 个 AI Assisted PR 的口径。