13

问题:

我需要在我的python项目中设置版本控制。
每次发布 - 我都会在我的 VCS 中合并我的生产开发分支。
我需要在设置项目版本和自动化过程中进行最少的更正。

我做了什么:

我的下一步:

我需要发布:

  • 发布日期
  • 修订
  • 版本号

所以我打算制作我的发布号格式major.minor.changeset,因为在版本中保留发布日期会使它变得很长。我想创建version.py文件:

MAJOR_VERSION = 1
MINOR_VERSION = 1
RELEASE_DATE = '28 .08.2013 '


def get_revision ():
    ...

def get_version ():
   ....

并在我需要时从那里导入版本(但我担心有人会忘记设置正确的日期),并将文件放在CHANGE.TXT它旁边,描述发布更改。

问题:

我想知道您如何在python项目中设置版本,以及我应该如何转换我的想法以简化我的方案。

4

1 回答 1

5

两个相关的问题:(1)在模块级别跟踪元数据有哪些好的选择,包括版本控制以及其他有用信息;(2) 什么是表示该元数据的好方法。

http://epydoc.sourceforge.net/manual-fields.html#module-metadata-variables解释了模块元数据的一般方法。这基本上是说,使用名为__author__, __authors__, __contact__, __copyright__, __license__,__date__和的常量__version__。这些是常用的,所以这是一个很好的约定。

然后关于如何填充__version__常量——对任何东西进行版本控制的一个很好的模型是语义版本控制——参见http://semver.org/。基本上,使用1.2.3仅在不兼容的 API 更改时进行重大更改的样式,在有新功能时进行次要更改,并在修复错误时使用微型补丁更改。这也很常用,因此是一个很好的约定。

于 2013-08-28T12:00:24.350 回答