创建修补程序包,这些程序包在现有版本上添加迭代,而不创建标记。
vdt.versionplugin.hotfix的Python项目详细描述
当进行热修复并尝试自动化版本控制时,我们可以找出几个问题。
- 需要修复2个现有版本之间的修补程序。 这是必需的,因为在测试为 AllReady在版本1.0.123上运行。
- 修补程序应合并回主分支,但不应导致 自动版本系统。 可能发生的情况是,我们正在1.0.0上执行修补程序,而head已经收到allready 版本1.0.123的标记。如果我们添加一个hotfix标记并将其合并到1.0.123之上,则 无法重置版本计数器。
因此,从不标记修补程序。我们只是在 一个以前的包并在不标记存储库的情况下发布它。背后的原因 策略是,当修补程序合并到头上时,它将被标记并释放 不管怎样,通过主分支,对于 同样的特点。(强制执行这是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
您可以看到,虽然我们请求增加次要版本号,但这并没有发生。
这些修补程序包可以被推送到一个单独的“修补程序”存储库,因为它们接收到一个更高的迭代 根据它所基于的包的编号,它将安装在该基本版本上运行的任何环境中。
较新的包将具有更高的版本号并超过迭代。
插件参数
--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.