- 背景:2025 年第一季度将 pigweed.dev 从 GN 迁移到 Bazel,保留旧的 GN 构建以防 Bazel 构建出现问题,现在 Bazel 构建运行良好,保留旧的 GN 文档构建减慢了贡献者的速度,需要关闭 GN 构建,只需从所有
BUILD.gn
文件中删除文档生成功能,可通过 Gemini 尝试自动化该过程。 方法:
- 抓取仓库中的所有源文件,过滤出
BUILD.gn
文件,再过滤出使用 docgen 功能的BUILD.gn
文件。 - 对每个
BUILD.gn
文件使用 Gemini 去除 docgen 功能,每次调用一个 Gemini API。
- 抓取仓库中的所有源文件,过滤出
实现步骤:
- 在仓库根目录创建并激活虚拟环境。
- 安装 Gemini Python 库。
- 保存脚本
edit.py
,包含收集路径、判断是否为 GN 构建文件、是否使用 docgen 等功能的函数。 - 保存指令
prompt.md
,包含背景、目标、示例等内容。 - 运行脚本
python3 edit.py
。
- 结果:235 个文件被修改,构建继续工作(除了一些小问题),修改记录在https://pwrev.dev/286672,总 Gemini API 成本在 30 - 40 美元,若更小心则成本在 10 - 20 美元,脚本运行耗时 20 分钟,设置工作耗时约一天,审查 235 个修改文件耗时 30 - 40 分钟。
准确性:
- 非常好地只删除指定代码,仅出现一次生成错误(遗漏引号)。
- 在一些文件中超出指令删除
pw_size_diff
代码(团队决定后后续添加到查找列表),在一个文件中添加了两个多余的依赖项,在其他情况下又过于严格地遵循指令(留下空的无用if
块)。 - 很多文件末尾的换行符被弄乱,由于有
pw format
工具所以不是大问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。