没有项目描述

incremental的Python项目详细描述


travispypicoverage

incremental是一个小库,用于版本化python项目。

可以找到api文档here

快速启动

将此添加到您的setup.pysetup()调用中,删除任何其他版本控制参数:

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表示的包的名称。
  • majorminormicro(全部必需),项目的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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java通过Spring依赖注入部署CXF服务端点   java字节或字节,请解释   java Swing组件命名约定?   java可以在JOptionPane中放置多个输入。显示输入对话框?   Dropwizard for Hibernate中的java SQLight方言   Windows8中的java CPU负载   将Java版本号映射到主要Java版本   使用数据库Java重新启动pi   java如何在RecyclerView中显示ArrayList?   使用枚举作为映射键的java会在数据库中生成RAW   java vscode不能用于本机模块?   分段函数的java导数   java为什么主体在spring安全性中作为类型对象返回?   java MySupportMapFragment未按照google地图Android显示位置名称   java Android OCR(光学字符识别)   java有什么理由我不应该使用文件阅读器吗?   java私有静态成员内存使用   java在将POJO转换为xml时去掉innerclass的类名   java我需要关闭音频剪辑吗?   java最新文件和文件的动态命名