6

我们最近发生了一个事件,其中一些代码被发布到生活中,但没有计划发布。

很明显,它已经被放进后备箱了。我想这很好,因为您想“早点入住,经常入住”

但是在这种情况下,它不应该在下一个版本中发布。

可以采取什么样的检查/策略/流程来避免代码过早发布。

在我看来,即使使用持续集成和单元测试,这也是一个人工程序问题?

——李

4

8 回答 8

8

修改您的集成程序。

如果“上线”意味着有人执行一些批处理脚本——如果这种情况再次发生,请不要感到惊讶。

另外,考虑分支。一个常见的例子可能是使用主干进行开发,使用一个单独的分支进行测试(例如,每周合并一次),以及一个用于 RTC 的最终分支(来自上述测试分支)。

在部署到生产环境之前,应该彻底测试这个分支。

于 2009-08-23T15:41:05.367 回答
7

如果你的源代码控制软件允许这样的事情,你应该有不同的分支。

在这种情况下,您将有一个人负责将已经满足质量标准的代码从主分支合并到生产分支。


更新: 虽然产品特定,但TFS 2008 分支指南 2.0中提供的指南有很多指南,可应用于其他具有创建分支能力的源代码控制软件。

于 2009-08-23T15:46:10.410 回答
4

不要从主干构建到生产环境 - 手动将经过测试的主干代码合并到生产分支中并从那里开始运行。或者正如其他答案所说,在测试过程中使用适合您需求的任何数量的分支和步骤。

此外,需要超过一天左右的代码更改通常应在单独的功能分支中进行,直到完成。

于 2009-08-23T15:53:23.780 回答
2

问题显然不在于将代码检查到存储库。你在这里有两个问题:

1) 任何应该上线的代码都必须有一个特殊的版本标签或分支或其他任何东西,具体取决于您使用的源代码控制。因此,上线的代码永远不会与开发中的代码混淆。

2) 谁是把未经测试的代码放到现场的白痴?如果发布它的人认为你的开发中的代码已经准备好生产,那么就会严重缺乏沟通。

于 2009-08-23T15:40:05.757 回答
2

要继续讨论分支,这是保持版本处理结构化的方法。

我们使用主干作为主分支,并且当我们在开发周期中达到不允许提交更多功能(仅限错误修复)的某个点时,我们为该版本分支一个新分支(而不是经历错误-容易合并),并且在我们从它构建发布之前,该分支已经过很好的测试。当然,要使这个工作正常,每个程序员都需要在功能冻结日期临近时保持提交的干净。

于 2009-08-23T16:11:12.933 回答
2

在我看来,即使使用持续集成和单元测试,这也是一个人工程序问题?

确实!但是,您应该能够从您的基础架构中获得一些支持,以支持流程的人性化方面。当你要发布一个版本时,你应该能够轻松地看到所有的提交以及所有相关的问题。这是持续集成的报告方面。(我想说有四个要素(pdf):构建、部署、测试和报告。)

于 2009-08-23T17:36:49.110 回答
1

可以采取什么样的检查/策略/流程来避免代码过早发布。

我会说任何没有将签入树干作为习惯性开发仪式的过程,这意味着除了牛仔编码之外的任何开发模型。

让开发人员尽早并经常检查他们的功能分支,并在时机成熟时将它们合并到主干中。

于 2009-08-23T16:07:09.087 回答
1

我们构建了一个与 subversion 配合使用的发布管理器。 www.ReleaseManager.com 因此,我们可以通过问题编号(或错误编号)控制发布的内容,并且我们可以控制,以便我们可以在需要时将内容从发布中拉出。现在寻找测试版网站:)

于 2009-08-23T16:19:26.863 回答