7月7日,Simon Willison发了条只有几行字的release公告:sqlite-utils 4.0发布了,详情点链接。这种公告他写了两百多次,大多数时候没人会多看一眼。
但这次值得多看一眼。就在两天前,他自己在博客里写过一句话:这个即将转正的4.0rc2版本,主要由AI编写,花费大约149.25美元。一句轻描淡写的release note,背后是一次相当具体的实验——一个维护了多年的核心开源库,把大版本升级的实际开发工作,交给了AI。
4.0到底更新了什么
功能层面,4.0不算小修小补。三项核心变化:
- 数据库schema迁移(database schema migrations):终于补上了sqlite-utils长期缺的一块——结构化地管理数据库结构变更,而不是靠手写SQL或推倒重来。
- 嵌套事务.通过
db.atomic()实现,允许事务里再套事务,方便更复杂的写入逻辑做局部回滚。 - 复合外键.支持多列组合的外键约束,这是不少数据建模场景里绕不开的需求。
这三项加在一起,更像一次面向长期用户的"补课",而不是锦上添花。
升级前先看这几处不兼容
大版本号跳到4,通常意味着breaking changes,这次也不例外。从4.0a1的release notes看,至少有四处会咬到老用户:
- `db.table(name)
不再兼容视图,视图访问要改用db.view(name)`。 - 生成schema时,标识符的引用方式从方括号改成了双引号。
- 默认浮点类型从
FLOAT改成了REAL。 - 命令行导入CSV/TSV时,默认开启类型检测,而不是像以前那样统一按文本处理。
这几处改动都不显眼,但都踩在实际使用的路径上。如果下游代码依赖旧的schema输出格式做字符串匹配,或者拿旧版CSV导入结果直接入库,升级后大概率会出问题。官方发布文章的标题只写了"新增schema迁移",没把"breaking"两个字放进去,这多少有点低估了它对老用户的影响。
- 提醒.升级前最好先跑一遍现有测试,重点检查视图访问、浮点字段比对和CSV导入这三处。
149.25美元买到了什么
真正有意思的,是这笔账。Willison自己承认,4.0rc2这一版"主要由Claude Fable编写"。Claude Fable具体是什么样的工作流、他怎么把AI接入日常维护流程,公开信息里没有细说——这本身就是个待验证的问题,不宜替他把话说满。
149.25美元这个数字也一样,来源可信,但口径不明。这笔钱算的是纯API调用费,还是包含了他自己审阅代码、跑测试、修bug的时间成本,档案里没有交代。考虑到他是这个项目的原作者,对代码结构极熟,"审阅成本"本身可能被极大压低了——这不是普通开发者能复制的条件。
但即便打了折扣,这件事的分量还在。子曰"工欲善其事,必先利其器",荀子讲得更直接:"君子生非异也,善假于物也"。一个维护了多年的成熟开源库,把大版本的实际编码工作交给AI,还愿意公开成本明细——这比单纯"又发布了一个新版本"更值得记一笔。它说明AI辅助编程已经跨过了"帮着写demo"的阶段,开始真正承担有真实用户、有历史包袱的核心库开发。
代码可以让AI写,但账本和责任,终究得维护者自己签字。
该看什么
对普通用户,这次升级的判断很简单:功能是实打实的加分项,但升级前先过一遍breaking changes清单,别嫌麻烦。
对关注"AI能不能干开源维护活"这件事的人,更该盯着后续:4.0正式版有没有修掉rc阶段暴露的问题、社区对这类"AI主笔"版本的issue反馈是热闹还是冷淡。这些信号,比一次性的成本数字更能说明AI辅助开发到底走到了哪一步。
