跳转到主要内容

创建热修复包,这些包在现有版本上添加一个迭代,而不创建标签。

项目描述

在进行热修复并尝试自动化版本管理时,我们可能会遇到一些问题。

  1. 热修复需要介于两个现有版本之间。这是必要的,因为生产可能正在运行版本1.0.0,而测试已经在版本1.0.123上运行。

  2. 热修复应该合并回主分支,但不应干扰自动版本系统。可能会发生的情况是我们正在对1.0.0进行热修复,而HEAD已经接收了1.0.123的标签。如果我们添加一个热修复标签并将其合并到1.0.123之上,我们可能会重置版本计数器。

因此,热修复永远不会被打标签。我们只是将软件包作为先前软件包的迭代版本发布,而不在存储库中打标签。这种策略背后的推理是,当热修复合并回HEAD时,它将通过主分支进行标记和发布,因此为同一功能拥有多个标签完全没有意义。(强制执行这一点是vdt.version的主要功能之一)。

使用方法

热修复插件将查找您当前分支中的最新标签并获取其版本。如果我们从版本历史中间某个标签开始创建分支,这将没问题

> version --plugin=hotfix --iteration=11 --maintainer=lars@permanentmarkers.nl -e -t deb setup.py
Skipping installation of /var/folders/46/j79zq70n21n5m54j30f1rwrh0000gp/T/package-python-staging20140618-19649-432fe4/usr/lib/python2.7/dist-packages/vdt/__init__.py (namespace package)
Skipping installation of /var/folders/46/j79zq70n21n5m54j30f1rwrh0000gp/T/package-python-staging20140618-19649-432fe4/usr/lib/python2.7/dist-packages/vdt/versionplugin/__init__.py (namespace package)
> ls
python-vdt.versionplugin.hotfix_0.0.1-11_all.deb

热修复插件不能为您创建新版本和标签

> version --plugin=hotfix --minor --iteration=11 --maintainer=lars@permanentmarkers.nl -e -t deb setup.py
Skipping installation of /var/folders/46/j79zq70n21n5m54j30f1rwrh0000gp/T/package-python-staging20140618-19819-l5ti7o/usr/lib/python2.7/dist-packages/vdt/__init__.py (namespace package)
Skipping installation of /var/folders/46/j79zq70n21n5m54j30f1rwrh0000gp/T/package-python-staging20140618-19819-l5ti7o/usr/lib/python2.7/dist-packages/vdt/versionplugin/__init__.py (namespace package)
> ls
python-vdt.versionplugin.hotfix_0.0.1-11_all.deb

您可以看到,尽管我们请求递增次要版本号,但这并没有发生。

这些热修复包可以推送到一个单独的“hotfix”存储库,因为它们接收到的迭代号比基于它的包要高,所以它们将在运行该基础版本的任何环境中安装。

较新的包将具有更高的版本号,并超过迭代。

插件参数

--iteration The iteration number for the hotfix
-s Fpm input type, one of 'dir', 'rpm', 'gem', 'python', 'empty', 'tar', 'deb'.
   The default is python, which has some default configuration.

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

vdt.versionplugin.hotfix-0.0.8.tar.gz (3.9 kB 查看哈希值)

上传时间 源代码

支持者