诗歌插件,支持基于VCS标签的动态版本控制

poetry-dynamic-versioning的Python项目详细描述


诗歌动态版本控制插件

此包是Poetry的插件 要基于版本控制系统中的标记启用动态版本控制, 由Dunamai提供动力。

因为poetry还没有正式支持插件 (参考this issue) 截至2019年6月4日,本文件包包含一些新颖的内容 使功能成为可能的自由。一旦得到官方支持 登陆后,这个插件将以官方方式进行更新。

安装

需要Python3.5或更新版本。

  • 运行pip install poetry-dynamic-versioning
  • 将此添加到pyproject.toml:
    [tool.poetry-dynamic-versioning]enable=true

注意,必须在全局python安装中安装插件, not作为pyroject.toml中的依赖项,因为虚拟环境 诗歌创作看不到诗歌本身,因此无法修补它。

配置

在pyproject.toml文件中,可以配置以下选项:

  • [tool.poetry-dynamic-versioning]:常规选项。
    • enable:布尔型。默认值:false。因为必须安装插件 全局而言,此设置是每个项目的可选加入。这个设置很可能 一旦插件被正式支持就被删除。
    • vcs:字符串。这是用于检查版本的版本控制系统。 其中之一:any(默认),gitmercurialdarcsbazaarsubversion
    • metadata:布尔型。默认:未设置。如果为true,则在 版本,如果dirty为真,则还包括脏标志。如果未设置, 只有在提交时没有版本标记,才会包含元数据。
    • dirty:布尔型。默认值:false。如果为true,则在 元数据,指示是否有任何未提交的更改。
    • pattern:字符串。这是一个正则表达式,用于查找 表示版本的标记。必须有一个命名的捕获组base 在版本的主要部分中,还可以选择使用组 为预发行版命名为pre_typepre_number。默认值是 v(?P<base>\d+\.\d+\.\d+)((?P<pre_type>[a-zA-Z]+)(?P<pre_number>\d+))?
    • format:字符串。默认:未设置。这定义了 版本。可用替代品:
      • {base}
      • {epoch}
      • {pre_type}
      • {pre_number}
      • {post}
      • {dev}
      • {commit}
      • {dirty}
    • style:字符串。默认:未设置。其中之一:pep440semverpvp。 这些是预配置的输出格式。如果同时设置astyleformat,然后将根据样式规则验证格式。 如果style未设置,则默认输出格式将遵循PEP 440, 但是,只有在显式设置了style时,才会验证自定义format
    • latest-tag:布尔型。默认值:false。如果为真,则只检查最新的 标记一个版本,而不是查看所有的标记,直到一个合适的 找到一个匹配pattern
  • [tool.poetry-dynamic-versioning.subversion]:特定于subversion的选项。
    • tag-dir:字符串。默认值:tags。这是相对标记的位置 从根本上说。

简单示例:

[tool.poetry-dynamic-versioning]enable=truevcs="git"style="semver"

实施

为了将插件功能加载到poetry中,这个包 执行以下操作:

  • 在安装时,它提供一个zzz_poetry_dynamic_versioning.pth 文件到python站点包目录。这迫使python 加载完所有其他模块后自动加载插件 (或者至少是那些在zzz之前的字母顺序)。
  • 它会修补builtins.__import__,这样,每当第一次从 诗歌完成后,poetry.console.main将被修补。我们拥有的理由 如果您使用了get-poetry.py脚本,则等待诗歌导入, 在这种情况下,在python完全加载和 ~/.poetry/bin/poetry将poetry lib文件夹添加到pythonpath。
  • 当调用poetry.console.main的补丁版本时, 另外补片poetry.poetry.Poetry.create以取代versi在 从pyproject.toml文件中获取动态生成的版本。

开发

此项目是使用Poetry管理的。 由于Black,开发需要python 3.6+。

  • 如果要利用默认的vscode集成,请首先 配置诗歌以在存储库中创建其虚拟环境:
    poetry config settings.virtualenvs.in-project true
    
  • 克隆存储库后,激活工具:
    poetry install
    poetry run pre-commit install
    
  • 运行单元测试:
    poetry run pytest --cov
    poetry run tox
    
  • 运行集成测试:
    ./tests/integration.sh
    
    Git Bash推荐用于windows。

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

推荐PyPI第三方库


热门话题
java如何拆分字符串(基于各种分隔符),但不保留空格?   解析。Json格式的txt文件和knime中的java   java Spring rest api为什么在rest api调用的响应中更改了数据类型   升华文本3抛出java。lang.ClassNotFoundException,而记事本++不存在   java Android指纹扫描仪在尝试5次后停止工作?   java Android如何设置精确的重复报警?   java如何使用HTTPGET connect为access API输入用户名和密码   java当测试报告显示没有测试失败时,Gradle为什么说“有失败的测试”?   用Gson实现java获取响应   MapReduce程序中函数错误的java不可映射参数   java spring安全性不符合自动代理的条件   java GWT使用异步回调进行同步/阻塞调用   java奇怪的类数组问题无法在jsp中显示   如何在java中使用PrinterJob使用epl打印条形码   java如何在JTable中居中单元格   将Java Mockito测试转换为Kotlin   html Java正则表达式模式匹配到多个相同标记   testCompile中缺少java Gradle(Android)多项目依赖项   在输入提示后输入字符串时发生java FileNotFoundException