诗歌插件,支持基于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
(默认),git
,mercurial
,darcs
,bazaar
,subversion
。metadata
:布尔型。默认:未设置。如果为true,则在 版本,如果dirty
为真,则还包括脏标志。如果未设置, 只有在提交时没有版本标记,才会包含元数据。dirty
:布尔型。默认值:false。如果为true,则在 元数据,指示是否有任何未提交的更改。pattern
:字符串。这是一个正则表达式,用于查找 表示版本的标记。必须有一个命名的捕获组base
在版本的主要部分中,还可以选择使用组 为预发行版命名为pre_type
和pre_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
:字符串。默认:未设置。其中之一:pep440
,semver
,pvp
。 这些是预配置的输出格式。如果同时设置astyle
和format
,然后将根据样式规则验证格式。 如果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
- 运行集成测试:
Git Bash推荐用于windows。./tests/integration.sh