我们正在使用composer,satisf和SVN来管理我们的内部PHP库。 我们在开发期间提交对SVN主干的更改,然后在准备好进行测试时标记版本(在语义版本控制之后)。 一旦标记了库版本,我们就可以使用composer作为我们部署到测试环境的一部分。在成功测试之后,我们会将相同版本部署到生产中。
这里的问题是,一旦我们为测试标记了一个版本,我们就必须非常小心,因为在准备下一个prod版本时,作曲家会选择新标记的版本。
我想象的是,我们将版本标记为测试版或RC版(例如v1.1RC1)并以某种方式配置我们的部署过程,以便拒绝将RC或beta部署到生产环境中。如果成功测试了某个版本,我们会将该版本重新标记为已发布的版本(v1.1RC1 - > v1.1)并将其发布。
这可以实现吗?
答案 0 :(得分:0)
根据您的说法,我知道您实际上害怕标记新版本的库,因为该代码实际上可以使用并打破其他应用程序,对吗?
一种方法是进行良好的测试。我不认为标记库的版本应该是一个问题。如果测试都是绿色的,则没有理由不对其进行标记。即使测试基本上只是“让我们看看它是否有效,手动”,这也会有效。
现在第二步是将新版本集成到应用程序中:运行composer update
并查看应用程序是否仍在运行,即启动所有测试并等待绿色。
我想最好有一个单独的区域来检查应用程序,有意运行composer update
来获取所有最新的库,运行所有测试并报告a)有更新和b)他们工作。然后,开发人员应确认更新,即手动再次执行并提交生成的composer.lock
文件,或从该更新测试中获取生成的锁定文件。
我认为使用非生产版本不会有好处。无论如何,您必须处理下一个版本 - 不断切换最低稳定性设置或将@RC
或@beta
标志添加到库的版本要求并没有真正帮助。