没有项目描述
incremental的Python项目详细描述
incremental是一个小库,用于版本化python项目。
可以找到api文档here。
快速启动
将此添加到您的setup.py的setup()调用中,删除任何其他版本控制参数:
setup( use_incremental=True, setup_requires=['incremental'], install_requires=['incremental'], # along with any other install dependencies ... }
然后运行python -m incremental.update <projectname> --create(需要从pypi安装click)。 它将在您的包中创建一个名为_version.py的文件,如下所示:
from incremental import Version __version__ = Version("widgetbox", 17, 1, 0) __all__ = ["__version__"]
然后,项目的用户可以在根包的__init__.pyadd:
from ._version import __version__
然后,项目的后续安装将使用增量进行版本控制。
增量版本
incremental.Version是表示给定项目版本的类。 它由以下元素组成(在实例化过程中给出):
- package(必需),此Version表示的包的名称。
- major,minor,micro(全部必需),项目的Version的x.y.z。
- release_candidate(可选),设置为0或更高,以将此Version标记为候选发布(有时也称为“预发布”)。
- dev(可选),设置为0或更高,将此Version标记为开发版本。
您可以使用以下方法提取与PEP-440兼容的版本字符串:
- .local(),返回一个str,其中包含完整版本以及任何git或svn信息(如果可用)。示例输出为"17.1.1rc1+r123"或"3.7.0+rb2e812003b5d5fcf08efd1dffed6afa98d44ac8c"。
- .public(),返回一个包含完整版本的str,不包含任何git或svn信息。这是您应该提供给用户或公开使用的版本。示例输出为"13.2.0"、"17.1.2dev1"或"18.8.0rc2"。
用Version调用repr()将给出它的python源代码表示,用Version调用str()将提供类似于'[Incremental, version 16.10.1]'的字符串。
更新
incremental包含一个工具,可以使用名为incremental.update的项目版本自动更新增量。 它会更新_version.py文件,并自动将增量版本的某些使用从不确定版本更新到当前版本。 它需要来自pypi的click。
python -m incremental.update <projectname>将对该包执行更新。 之后可以给出的命令将决定下一个版本是什么。
- --newversion=<version>,将项目版本设置为完全指定的版本(如1.2.3或17.1.0dev1)。
- --rc,如果当前版本不是候选版本,则将项目版本设置为<year-2000>.<month>.0rc1,如果当前版本不是候选版本,则将候选版本号凹凸1。
- --dev,如果项目开发版本号不是开发版本,则将其设置为0;如果项目开发版本号不是开发版本,则将其凹凸1。
- --patch,以增加版本的修补程序号。这还将重置发布候选者编号,同时传递--rc,以增加修补程序编号并使其成为发布候选者。
如果您没有给出参数,它将删除发布候选编号,使其成为“完全发布”。
增量支持“不确定”版本,作为下一个“完整”版本的替代。当将显示给最终用户的版本未知时(例如“引入”或“不推荐使用”)。增量支持以下不确定版本:
- Version("<projectname>", "NEXT", 0, 0)
- <projectname> NEXT
当您运行python -m incremental.update <projectname> --rc时,这些版本将更新为真实版本(假设目标最终版本为17.1.0):
- Version("<projectname>", 17, 1, 0, release_candidate=1)
- <projectname> 17.1.0rc1
最终版本制作完成后,将变成:
- Version("<projectname>", 17, 1, 0)
- <projectname> 17.1.0