PBR 增强以支持 pip¶
pip,Python 包安装工具,正在寻找非常类似于 pbr 的东西。pbr 本身将受益于 pip 正在寻找的通用化。
问题描述¶
目前 pbr 在某些地方不满足 pip 的需求。
pbr 要求在从 git 和 tarball 安装时,pbr 易于安装或预先安装。这种方式过于脆弱,pip 希望避免在从 tarball 的情况下出现这种情况。OpenStack 用户已经向 pbr 提出了这个要求。
pbr 没有关闭 requirements.txt 反射的方法。这已经在与上游实践融合的过程中计划中。
需要能够根据安装到的 Python 环境生成动态入口点。例如,foo、foo2、foo2.7,在安装到 Python 2.7 时,无论是全局安装还是 venv。
提议的变更¶
将 pbr 嵌入到 sdists 中¶
通过选择加入的选项,我们可以将 pbr 嵌入到 sdist 的根目录中。当从 sdist 运行时,本地目录将首先出现在 Python 路径中,这将导致嵌入的 pbr 副本被找到并加载。嵌入过程将复制静态定义的 pbr 源代码子集(我们可能希望稍作重构以使其更易于管理)。pbr 的非测试代码目前未压缩时为 128K,压缩后为 30K - 这是可以接受的。嵌入所有 pbr 允许测试、文档构建等都从 sdist 中正常工作。
选择退出 requirements.txt 反射¶
我们将添加一个选项,skip_requirements_files,以禁用 requirements 文件反射。设置后,requirements 将仅通过 setup.cfg 或 setup.py 进行管理。这与我们最终弃用这些文件的目标一致。
入口点合并¶
与其引入 wheels 不支持的模板语言,不如允许 setup() 传入入口点并合并它们。这将防止这在 OpenStack 中成为一个令人讨厌的问题,同时仍然允许 pip 执行其当前针对更广泛工具集中缺乏入口点模板化的解决方法。
备选方案¶
对 pip 说“不,这不是 pbr”。不必要。发展生态系统是 OpenStack 的使命的一部分。
实现¶
负责人¶
- 主要负责人/联系人
Robert Collins - lifeless
工作项¶
将 pbr 嵌入到 sdists 中。
选择退出 requirements 反射。
依赖项¶
无
历史¶
发布名称 |
描述 |
|---|---|
Mitaka |
引入 |
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode