翻译自 PEP 396 – Module Version Numbers和 PEP 386 – Changing the version comparison module in Distutils
what–这两条讲了什么?
每个模块都因该有自己的版本号。
- 你的模块依赖某个模块,那么你的版本号应该和这个模块没有半毛钱关系。
- 若非必要子模块不应该有自己的版本号。
- 子模块也单独存在,是一个单独的包,那么也应该有自己的版本号。比如
re
,json
模块。 - 模块的
__version__
属性应该包含了版本号,disutils的setup函数应该可以独取到version。 - 版本号必须是字符串,符合
PEP 386
。 - 版本号大小如何比较,推荐使用
from verlib import NormalizedVersion
。
Python modules, both in the standard library and available from third parties, have long included version numbers-- 每个模块都应该有自己的版本号
why–为什么这么定规则?
- 如此定规则肯定是为了好用,服从高内聚低耦合。
- 设计这些规则的时候,是按照自低向顶制定的。