首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果主要版本为0,则无预发布标记

如果主要版本为0,则无预发布标记
EN

Stack Overflow用户
提问于 2021-04-30 05:05:41
回答 1查看 75关注 0票数 1

我正在使用带有语义版本控制的bump2version。如果主要版本为0(即快速开发?),有没有办法防止出现标签的预发布组件?现在,我的.bumpversion.cfg

代码语言:javascript
复制
[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]

它会在我碰撞零件minor时添加预发布的值

代码语言:javascript
复制
>>> bumpversion minor
Bumpversion: 0.0.0 -> 0.1.0-alpha.1

我不希望在主版本0时出现标记的-alpha.N-beta.N等部分(即快速开发;在主版本1或更高版本之前不会对我进行预发布测试)。

当从主要版本01或从N到所有N > 0N+1时,我确实需要预发布部分(因为预发布测试将在这些阶段进行),只是不是为了快速开发。我讨厌在快速开发的过程中每次都要手动输入--new-version (特别是。因为在1.0.0之前我会有很多版本)。

有谁有解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 06:19:52

作为一个“猴子补丁”/workaround,我在bumpversion.version_part中编辑了函数_choose_serialize_format()

代码语言:javascript
复制
def _choose_serialize_format(self, version, context):

        chosen = None

        logger.debug(
            "Available serialization formats: '%s'", "', '".join(self.serialize_formats)
        )

        for serialize_format in self.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

代码语言:javascript
复制
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

添加的行是

代码语言:javascript
复制
if version._values["major"].value == "0":
    _serialize_formats = [
        self.serialize_formats[-1],
    ]
else:
    _serialize_formats = self.serialize_formats

更改后的行是

代码语言:javascript
复制
for serialize_format in self.serialize_formats:

代码语言:javascript
复制
for serialize_format in _serialize_formats:
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67325051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档