Peter Eisentraut:回退将持续,直到士气好转
内容提要
PostgreSQL 19 测试期罕见回退了约 8 至 10 个重要功能。原因包括:LLM 辅助代码审查提高质量标准,暴露旧代码边缘缺陷;Vulnpocalypse 使资深开发者忙于安全修复,测试审查减少;系统复杂度高,功能组合难以穷尽测试。社区倾向按期发布而非延迟。作者建议引入 LLM 辅助模糊测试和“实验性”功能状态,并相信多数功能会回归。
延伸解读
LLM 代码审查如何改变质量门槛
文章指出,LLM 辅助代码审查能快速发现旧代码中的边缘缺陷,导致大量缺陷报告集中出现。即使每个修复只需几行代码,处理每个问题的固定开销也会耗尽测试期时间。这意味着功能提交时的质量门槛已被事后提高,未来开发周期需适应这一变化。
安全修复对测试资源的挤压
Vulnpocalypse 使资深开发者在四月至八月间忙于安全修复,导致测试期常规的额外审查和测试减少。许多问题因此直到测试后期才被发现,回退也集中发生。社区选择按期发布而非延迟,这反映了在安全压力下维持发布节奏的权衡。
系统复杂度与测试困境
PostgreSQL 的“一切皆可组合”特性使功能组合难以穷尽测试,例如域、分区、视图和触发器的复杂交互。人工无法枚举所有用例,而 LLM 辅助模糊测试能快速发现问题。文章建议未来将模糊测试纳入开发流程,并增强内部接口的健壮性。
实验性功能状态的探索
社区长期考虑以“实验性”状态提交功能,再在主分支中成熟。这有助于处理复杂功能,但尚未找到实现方式,部分工作因此产生误解。文章认为这是具体可推进的方向,可能减少未来回退。
Q&A
PostgreSQL 19 测试期为什么回退了这么多功能?
主要原因包括:LLM 辅助代码审查提高了质量标准,暴露了旧代码的边缘缺陷;Vulnpocalypse 使资深开发者忙于安全修复,测试审查减少;系统复杂度高,功能组合难以穷尽测试。此外,部分功能本身存在架构缺陷或完成度不足。
LLM 辅助代码审查对 PostgreSQL 开发有什么影响?
LLM 辅助代码审查能更快发现边缘缺陷,导致在测试期出现大量缺陷报告,即使每个修复很小,处理开销也很大,可能使功能因时间不足而被回退。同时,它提高了代码质量门槛,旧代码可能因此不达标。
Vulnpocalypse 如何影响 PostgreSQL 19 的测试和回退?
Vulnpocalypse 导致许多资深开发者在 4 月到 8 月间忙于安全修复,减少了测试期通常的额外审查和测试,使得许多新问题在测试后期才被发现,从而造成大量回退集中在后期。
PostgreSQL 社区为什么选择按期发布而不是延迟修复?
社区倾向于坚持发布计划,而不是延迟以获取更多修复,因为长尾问题的持续时间难以预测,且 Vulnpocalypse 仍在持续。
作者对 PostgreSQL 19 和 20 的未来有什么看法?
作者相信许多被回退的功能会回归,PostgreSQL 19 仍将是一个出色的版本,拥有 REPACK CONCURRENTLY、逻辑复制序列、pg_plan_advice 等亮点。PostgreSQL 20 可能已有一些 80% 就绪的功能排队等待完成。
作者建议采取哪些措施来避免未来再次发生大量回退?
建议引入 LLM 辅助模糊测试,并考虑为功能引入“实验性”状态,在主分支中逐步成熟。同时,应使内部接口更健壮,减少不同上下文组合带来的交互可能性。