命名一个奥斯陆库¶
为新的奥斯陆库选择一个好的名称非常重要,因为该名称可以用来表明我们打算如何使用该库。本页描述了我们在选择新名称时使用的指南。
问题描述¶
库名称需要传达库的目的,以及预期的受众。
拟议政策¶
《项目创建者指南》包含有关查找具有有效字符集的唯一名称以及其他技术标准的指南。该策略扩展了这些指南,涵盖了奥斯陆特有的某些标准。
目前,奥斯陆库使用了三种命名方案。
用于 OpenStack 的生产运行时依赖项¶
用于 OpenStack 项目的生产运行时依赖项的库应遵循 oslo.something 的命名模式,用于库和 dist,但对于顶级包名称使用 oslo_something。 避免使用 oslo. 命名空间包 (停止使用命名空间包)。
生产运行时依赖项的示例包括 oslo.config 和 oslo.messaging。
用于 OpenStack 的非生产依赖项¶
用于 OpenStack 项目的非生产或非运行时依赖项的库应遵循 oslosomething (省略 “oslo” 和 “something” 之间的 .) 的命名约定,用于库、dist 和顶级包。
非生产依赖项的示例包括 oslosphinx 和 oslotest。
注意
如果您计划使用这样的名称,请先与奥斯陆团队讨论 - 我们不太确定是否喜欢这种命名方案,可能会建议替代方案。
其他一切¶
无论如何在 OpenStack 中使用,对于可能在 OpenStack 之外普遍有用的库,都应赋予描述性和唯一的名称,不使用任何形式的 “oslo” 前缀。
奥斯陆名称的其他示例包括 pbr 和 taskflow。
备选方案¶
始终使用通用名称¶
一种替代方案是使用所有通用名称,不带 “oslo” 前缀。这种方法的的主要缺点是它缺乏表明我们针对库的预期受众的能力。我们构建的一些库对在 OpenStack 之外工作的受众没有用处。这可能是因为它没有受到 OpenStack 特定库(如 oslo.config)的依赖项的限制,使用了其他地方未使用的模式,或者仅仅是不太可能对其他人感兴趣。使用 “oslo” 前缀使我们能够向 Python 社区的其他成员表明该库主要用于 OpenStack 中使用。
非生产库使用“oslo.”前缀¶
如上所述,奥斯陆团队对诸如 oslotest 和 oslosphinx 之类的名称并不完全满意。 决定使用不带点分隔符的前缀源于这些库未安装到旧的 “oslo” 命名空间包中。 库名称的选择是为了与导入语句中使用的包名称保持一致,并且我们保留了这些名称,而不是麻烦地重命名像 oslotest 这样的库,OpenStack 很大程度上依赖于它。
实现¶
里程碑¶
自 Icehouse 版本起生效。
工作项¶
N/A
参考资料¶
修订历史¶
发布名称 |
描述 |
|---|---|
Icehouse |
引入 |
注意
本作品采用知识共享署名 3.0 非移植许可协议授权。 http://creativecommons.org/licenses/by/3.0/legalcode