PyPI 实现可复现构建还缺什么?

What's missing to have reproducible builds on PyPI

PyPI 实现可复现构建还缺什么?

在撰写 2026 年 Python Packaging Council 提名材料时,我意识到安全供应链中缺失的关键一环是可复现构建。这不仅能验证分发包是否被篡改,还能追溯构建工具是否被植入恶意代码,正如 SolarWinds 事件所警示的那样。目前,wheels 虽支持记录软件物料清单(SBOMs),但 sdists 却缺乏类似机制来记录构建环境。若能在元数据中明确记录源代码位置和构建工具,配合可信验证者将复现结果反馈给 PyPI,我们就能在无需开发者额外工作的情况下,显著提升生态安全性。这不应是强制要求,而是值得推广的加分项。

可复现构建能让独立的第三方验证分发包中的二进制文件是否与基于源代码的预期结果一致,从而检测构建过程中是否有人篡改了代码。

同日更多故事

2026-08-20