内容提要
本文介绍了 PDM 的锁定策略及依赖解析过程,使用 PubGrub 算法生成 pdm.lock 文件,记录依赖版本和元数据。讨论了条件依赖、锁定策略和更新策略,强调了 PDM 在不同平台和版本处理中的灵活性与局限性。
关键要点
-
PDM 使用 PubGrub 算法解析依赖,生成 pdm.lock 文件,记录依赖版本和元数据。
-
PDM 当前不支持条件依赖解析,这是其一大缺陷。
-
pdm.lock 文件采用 TOML 格式,包含元数据如 groups、strategy 和 content_hash。
-
Lock 策略包括 cross_platform、static_urls、inherit_metadata 和 direct_minimal_versions,控制依赖解析过程。
-
PDM 提供多种更新策略,如 --update-all、--update-reuse 和 --update-eager,允许用户灵活更新依赖版本。
延伸问答
PDM 是如何生成 pdm.lock 文件的?
PDM 使用 PubGrub 算法解析依赖,最终将解析结果写入 pdm.lock 文件,记录所有依赖的版本和元数据。
PDM 的 pdm.lock 文件包含哪些元数据?
pdm.lock 文件采用 TOML 格式,包含 groups、strategy 和 content_hash 等元数据。
PDM 当前有哪些锁定策略?
PDM 的锁定策略包括 cross_platform、static_urls、inherit_metadata 和 direct_minimal_versions。
PDM 不支持条件依赖解析的原因是什么?
PDM 不支持条件依赖解析是因为其依赖解析器将包名作为解集中的 key,导致每个包只能有一个确定的版本。
PDM 提供了哪些更新策略?
PDM 提供的更新策略包括 --update-all、--update-reuse 和 --update-eager 等,允许用户灵活更新依赖版本。
如何禁用 PDM 的 cross_platform 策略?
可以通过命令 pdm lock --strategy=no_cross_platform 来禁用 cross_platform 策略。