Python 如果主版本为0,则没有预发布标签
我正在使用带有语义版本控制的Python 如果主版本为0,则没有预发布标签,python,bump2version,Python,Bump2version,我正在使用带有语义版本控制的bump2version。如果主要verison为0(即快速开发),是否有办法防止标签的预发布组件出现。目前,我的.bumpversion.cfg是 [bumpversion] current_version = 0.0.0 tag = False tag_name = {new_version} commit = True parse = (?P<major>\d+) \. (?P<minor>\d+) \.
bump2version
。如果主要verison为0(即快速开发),是否有办法防止标签的预发布组件出现。目前,我的.bumpversion.cfg
是
[bumpversion]
current_version = 0.0.0
tag = False
tag_name = {new_version}
commit = True
parse =
(?P<major>\d+)
\.
(?P<minor>\d+)
\.
(?P<patch>\d+)
(\-(?P<pre>[a-z]+)\.(?P<prenum>\d+))?
serialize =
{major}.{minor}.{patch}-{pre}.{prenum}
{major}.{minor}.{patch}
[bumpversion:part:pre]
optional_value = placeholder
first_value = alpha
values =
alpha
beta
rc
placeholder
[bumpversion:part:prenum]
first_value = 1
[bumpversion:file:pyproject.toml]
我不想在主版本0
时出现标签的-alpha.N
、-beta.N
等部分(即快速开发;在主版本1
及更高版本之前,不会对我进行发布前测试)
当从主要版本0
到1
或N
到N+1
时,我确实需要所有N>0
的预发布部分(因为预发布测试将在这些阶段进行),只是不用于快速开发。我不喜欢在快速开发时,每次颠簸都要手动键入——新版本
(特别是因为在1.0.0之前我会有很多版本)
有人有解决方案吗?作为“猴子补丁”/解决方案,在bumpversion.version\u部分中,我编辑了函数\u选择\u serialize\u format()
def _choose_serialize_format(self, version, context):
chosen = None
logger.debug(
"Available serialization formats: '%s'", "', '".join(self.serialize_formats)
)
if version._values["major"].value == "0":
_serialize_formats = [
self.serialize_formats[-1],
]
else:
_serialize_formats = self.serialize_formats
for serialize_format in _serialize_formats:
try:
self._serialize(
version, serialize_format, context, raise_if_incomplete=True
)
chosen = serialize_format
logger.debug("Found '%s' to be a usable serialization format", chosen)
except IncompleteVersionRepresentationException as e:
if not chosen:
chosen = serialize_format
except MissingValueForSerializationException as e:
logger.info(e.message)
raise e
if not chosen:
raise KeyError("Did not find suitable serialization format")
logger.debug("Selected serialization format '%s'", chosen)
return chosen
到
添加的行是
for serialize_format in self.serialize_formats:
线路也变了
for serialize_format in _serialize_formats:
到
你有没有特别的理由不做bumpversion-minor--no-tag
?@florisla因为我想要一个标签。我只是不想在主版本0
(快速开发)时出现标签的预发布部分。我会更新我的问题的措辞,因为我知道这会被误解。
if version._values["major"].value == "0":
_serialize_formats = [
self.serialize_formats[-1],
]
else:
_serialize_formats = self.serialize_formats
for serialize_format in self.serialize_formats:
for serialize_format in _serialize_formats: