我们使用我认为非常标准的 maven-release-plugin开发风格。master 分支包含我们下一个版本的开发(pom 标记为 xy-SNAPSHOT)。当我们进入代码冻结状态时,我们从 master 分支以准备发布。我们从这个分支执行发布,任何错误都在这个分支上修复。
现在我的问题。在准备 xy 版本时,我们通常针对 xy-SNAPSHOT 进行测试,从这个版本分支构建。但是我们意识到,当测试“通过”时,它已经通过了带有 SNAPSHOT 标签的安装程序。因此,要执行发布,我们必须更改代码(删除 SNAPSHOT 标签)并重新发布新版本。在我们看来,重新构建构建只会使我们针对 SNAPSHOT 所做的任何测试无效——要求我们重新测试最终版本。
该怎么办?
我正在考虑建议我们只针对非 SNAPSHOT 构建执行正式测试。如果在本质上是“候选版本”中发现错误,我们会在发布分支中修复它们并提升版本 xy(z+1),然后重新测试。不利的一面是,它现在命名为 xyz,而不是一个干净的 xy0 版本,其中 z 是此发布的候选版本的数量。
任何人都有这样的场景经验?这是一个正常的过程还是我们对测试 SNAPSHOT 反应过度?