PEP 751: Pylock.toml
8 months ago
- #Python
- #Packaging
- #Dependencies
- PEP 751提案提出了一种名为'pylock.toml'的新文件格式,用于指定Python依赖项以确保可复现的安装。
- 该格式设计为既人类可读又可机器生成,消除了安装过程中依赖项解析的需求。
- 关键特性包括支持单次使用和多次使用的锁定文件、强制哈希等安全默认设置,以及与各种环境的兼容性。
- 文件格式采用TOML,包含软件包详情、依赖项、版本控制系统源、目录、归档文件、源码分发和轮子包等部分。
- 引入了新的标记表达式'extras'和'dependency_groups'以支持多次使用的锁定文件。
- 安装步骤包括检查兼容性、评估标记表达式,并根据指定源安装软件包,同时验证哈希值和文件大小。
- 该PEP通过要求哈希值和文件详情解决了部分安全问题,但并未解决所有潜在安全隐患,如篡改或域名抢注。
- 向后兼容性无需考虑,因为此前并不存在标准锁定文件格式。
- 该PEP否决了记录依赖图用于安装、指定新的核心元数据版本,以及要求最低哈希算法支持等提议。
- 参考实现和工具如PDM、Poetry和uv被提及为语义相似的解决方案。