0

我们使用 composer、satis 和 SVN 来管理我们内部的 PHP 库。我们在开发过程中提交对 SVN 主干的更改,然后在它们准备好进行测试时标记版本(遵循语义版本控制)。一旦库版本被标记,我们可以使用 composer 作为我们部署到测试环境的一部分。在成功测试之后,我们会将相同的版本部署到生产环境中。

这里的问题是,一旦我们标记了一个版本进行测试,我们必须非常小心,因为作曲家在准备下一个产品版本时会选择新标记的版本。

我想象的是,我们将一个版本标记为 beta 或 RC(例如 v1.1RC1),并以某种方式配置我们的部署过程,使其拒绝将 RC 或 beta 部署到生产中。如果某个版本测试成功,我们会将该版本重新标记为已发布版本(v1.1RC1 -> v1.1)并发布。

这可以实现吗?

4

1 回答 1

0

根据您的说法,我知道您实际上害怕标记库的新版本,因为该代码实际上可能会被使用并破坏其他应用程序,对吗?

一种方法是进行良好的测试。我认为标记库的版本应该不是问题。如果测试都是绿色的,那么应该没有理由不标记它。即使测试基本上只是“让我们手动看看它是否有效”,这也会起作用。

现在第二步是将新版本集成到应用程序中:运行composer update并查看应用程序是否仍在运行,即启动所有测试并等待绿色。

我想最好有一个单独的区域来检查应用程序,故意运行composer update以获取所有最新的库,运行所有测试并报告 a) 有更新 b) 它们工作。然后开发人员应该确认更新,即再次手动执行并提交结果composer.lock文件,或者从更新测试中获取结果锁定文件。

我认为使用非生产版本没有好处。无论如何,您必须处理下一个版本 - 不断切换最低稳定性设置或向库的版本要求添加@RC@beta标记并没有真正帮助。

于 2014-03-07T21:00:44.103 回答