可选依赖

项目希望捕获它们的可选依赖项——只有在启用特定配置选项时才需要的那些东西。我们需要确保管道能够支持这一点,以便它们能够做到这一点。

问题描述

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 文档,但据我所知,就这些了。

依赖项

无已知问题。

参考资料

注意

本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode