可选依赖¶
项目希望捕获它们的可选依赖项——只有在启用特定配置选项时才需要的那些东西。我们需要确保管道能够支持这一点,以便它们能够做到这一点。
问题描述¶
Python 工具支持“extras”,但 pbr 没有暴露它,而且我们的工具也不了解它。
提议的变更¶
将 extras 添加到 oslo.db,导出它使用的各种驱动选项,并更新 keystone 在 CI 期间使用这些选项。处理任何问题,然后打开大门。
备选方案¶
无
Impact on Existing APIs¶
检查 requirements.txt 的人将看不到项目中的可选依赖项(但之前也看不到)。使用 extras 的依赖项已经可以使用(例如 requests[security]),因此这方面没有改变。
安全影响¶
无。
性能影响¶
无。
Configuration Impact¶
无。
开发人员影响¶
开发人员需要了解更多关于 Python 打包的工作原理,但不需要太多。
Testing Impact¶
无。
实现¶
负责人¶
谁在编写代码?或者这是一个蓝图,您正在将其抛出以查看谁会接受它?
如果有多个人正在进行实现,请指定主要作者和联系人。
- 主要负责人
<launchpad-id 或 None>
- 其他贡献者
<launchpad-id 或 None>
里程碑¶
完成目标里程碑
工作项¶
在 master 分支中,将 pbr 的上限提高到 <2.0,或者取消上限。
确定是将驱动选择(例如 postgresql)直接集成到 oslo 库中使用,还是将其保留在应用程序中,或者从应用程序导出选择,但将实现集中化。具体来说,是 ‘pip install nova oslo.db[mysql]’ 还是 ‘pip install nova[mysql]’,并且后一种情况应该定义为 ‘mysql: PyMySQL’ 还是 ‘mysql: oslo.db[mysql]’。
确保每个人都知道使用最新的 virtualenv 包(需求管理规范将推动这一点)。
教 update.py 更新 setup.cfg 中的 extras。
记录测试相关的约定,即将其放在 ‘test’ extra 中(通过 pip install -e .[test] 使用)。
将 extras 添加到 oslo.db。
将这些添加到 keystone 用于 CI。
宣布准备就绪并鼓励人们这样做。
孵化¶
不适用。
文档影响¶
我们需要更新一些 pbr 文档,但据我所知,就这些了。
依赖项¶
无已知问题。
参考资料¶
峰会讨论 https://etherpad.openstack.org/p/YVR-oslo-optional-dependencies
oslo.db 补丁 https://review.openstack.org/#/c/184328/
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode