我将如何使用^{
1.0.0.a2.post0 # post-release of a pre-release a2
到
1.0.0.a3 # pre-release a3
可复制示例:
$ python3 -m pip install 'bump2version==1.0.*'
__init__.py
:
__version__ = "1.0.0.a2.post0"
setup.cfg
:
[bumpversion]
current_version = 1.0.0.a2.post0
parse = ^
(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+) # minimum major.minor.patch, 1.2.3
(?:
\.
(?P<prerel>a|alpha|b|beta|d|dev|rc) # pre-release segment
(?P<prerelversion>\d+) # pre-release version num
)?
(?:\.post(?P<post>\d+))? # post-release
serialize =
{major}.{minor}.{patch}.{prerel}{prerelversion}.post{post}
{major}.{minor}.{patch}.{prerel}{prerelversion}
{major}.{minor}.{patch}.post{post}
{major}.{minor}.{patch}
[bumpversion:file:__init__.py]
[bumpversion:part:prerel]
optional_value = dev
values =
dev
d
alpha
a
beta
b
rc
此方案的有效版本示例,其中采用了PEP 440中的部分但非全部规则:
1.2.3 # (1) final
1.2.3.dev0 # (2) prerelease
1.2.3.a0
1.2.3.alpha0
1.2.3.b0
1.2.3.beta0
1.2.3.rc0
1.2.3.rc3.post0 # (3) postrelease (of a pre-release version)
1.2.3.post0 # (4) postrelease (of a final version)
例如,我尝试过bump2version --verbose prerelversion
或者显式地使用--new-version=1.0.0.a3
。这两种尝试都保留了.post0
,而不是丢弃它
注:几周前,我在bump2version回购协议中以usage question issue的形式提出了这个问题,但没有运气
我们必须努力解决这个问题(在过去的日子里,我们是用原来的
bumpversion
,而不是更好的bump2version
)通过下面的配置,您可以使用
bumpversion pre
从1.0.0.a2.post0
转到1.0.0.a3
说明:
由于
pre
和post
都有一个字符串前缀和一个数字,我认为有必要将它们相应地拆分。例如,pre
部分可以分为prekind
(字符串)和pre
(数字)。然后,很好的一点是,您可以独立于发行编号(通常是一个序列)增加prekind
('dev'
到'alpha'
到'beta'
等)下面,我列出了一个完整的配置和一个示例,其中包含了一系列顺序调用,以显示可能发生的各种变化。我相信下面的设置可以进一步定制,但希望它能让你和其他人在正确的轨道上登陆
测试:
它们执行一系列的变异操作,以证明某些可能的变异。当然,您可以使用
new-version=...
强制设置新版本输出(已评论):
相关问题 更多 >
编程相关推荐