Python 项目版本控制

标签 python

<分区>

问题:

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

我做了什么:

  • 我读过PEP 396关于模块版本控制(这不是我需要的)
  • 我想出了如何使用 this documentation 中的 setup.py 文件为项目设置版本
  • 我弄清楚了 django 如何使用它的版本 here

我的下一步:

我需要释放:

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

所以我计划将我的发布编号格式设置为 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 项目中设置版本,我应该如何转换我的想法以简化我的方案。

最佳答案

两个相关问题:(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 更改时才进行重大更改,在出现新功能时进行较小更改,而在修复错误时进行微补丁更改。这也很常用,因此是一个很好的约定。

关于Python 项目版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486874/

相关文章:

python : tensorflow-gpu import errors

python - 为什么 Windows 上的 Cython 扩展依赖于 pythonXX.dll 而不是 MacOSX?

python - 带有预处理器和小写字母的 sklearn CountVectorizer 中的错误?

python - 发现此代码片段中的未定义行为

python - 需要一种巧妙的方法来为 pygame/pyOpenGL 项目创建一个大列表

python - 从 django 的查询集中获取第一个对象的最快方法?

python - RNN python numpy 内存错误

python - python 类对象的可变性何时影响赋值?

python - 访问第一个元素后无法通过 xpaths 循环访问剩余元素 - Webscraping Selenium Python

python - 如何将Django的评论表单默认标签名称更改为中文?