Project management 同时版本编号

Project management 同时版本编号,project-management,versioning,Project Management,Versioning,这个问题混合了一些项目管理和开发。我了解项目版本编号的[major].[minor].[patch]计划。对于我客户的项目,我使用这些编号主要是为了内部目的,因此团队可以说“v1.3.2的进度如何?”,而不是根据所涉及的功能引用项目 然而,有时我们的客户会同时发布多个次要版本。每个小版本都包含一组独立的功能(与客户公司的不同部门合作),但它们可能会在不同的时间启动。因此,如果我们将它们标记为v1.3.3和v1.3.4,那么v1.3.4版本可能比v1.3.3更早发布,那么整个命名方案就无效了 如果

这个问题混合了一些项目管理和开发。我了解项目版本编号的[major].[minor].[patch]计划。对于我客户的项目,我使用这些编号主要是为了内部目的,因此团队可以说“v1.3.2的进度如何?”,而不是根据所涉及的功能引用项目

然而,有时我们的客户会同时发布多个次要版本。每个小版本都包含一组独立的功能(与客户公司的不同部门合作),但它们可能会在不同的时间启动。因此,如果我们将它们标记为v1.3.3和v1.3.4,那么v1.3.4版本可能比v1.3.3更早发布,那么整个命名方案就无效了

如果您不知道哪些版本将首先发布(由于等待客户批准或其他外部计划冲突),您如何在内部引用这些不同的版本

谢谢

非常简单——我们在发布之前不分配版本号。问题解决了

这听起来可能有些轻率,但这是事实。当然,我们会将内部项目命名为“v5.5”,但这些项目是独立于v5.4.x下一次迭代的当前工作的,只有在完成并发布后,才会收到下一个值“x”。当v5.5准备就绪时,5.4的工作将停止,我们将对5.4所做的任何更改合并到5.5中,然后发布5.5.0

如果您为不同的客户机(在您的案例中是部门)有单独的构建,那么您可以采用修改的版本控制方案。我们使用的是[major].[minor].[client].[patch],例如5.4.client1.4。[patch]将是独立的,并且只对特定的客户机有意义,而[major].[minor]将对应于我们分出的主代码库的[major].[minor]版本。例如,我们可能同时在5.5、5.4.x和5.4.client1.x上工作。当5.5准备就绪时,5.4.x会合并到其中,然后两个项目都会合并到5.5.x中,但是客户端项目可能还没有准备好合并所有这些更改,因此它将保持5.4.client1.x,直到它与5.5更新,然后成为5.5.client1.x

这听起来可能令人困惑,但实际上对我们来说效果很好。我们以前使用了此方案的一个变体,其中客户端名称被附加到完整的版本号,即[major].[minor].[patch].[client];然而,[major].[minor]同样对应于它分叉/最后合并的“core”[major].[minor],并且[patch]完全独立于其他版本,并且只对该客户端有意义(这就是为什么我们后来交换了[client]和[patch]的相对位置),以明确例如5.4.7实际上可能比5.4.12.client1有更多的补丁/更“最新”,并更好地传达这种独立性

当然,当一个特定于客户端的项目重新合并时,您可以将其删除并增加到下一个[patch],或者跳到下一个[minor]甚至[major]版本,这取决于工作的性质。当客户端项目合并到5.4.x项目中,然后我们从该版本6.0发布,然后记住将内部5.5项目重命名为6.1时,这偶尔会导致一些暂时的混乱,但仍然有效

作为您的环境的替代方案,仅通过客户(部门)在内部参考您当前的项目名称,例如会计项目、人力资源项目等。不要在内部使用版本号来处理这类事情,因为正如你所看到的那样,它只会导致混乱,比如5.4.7之后的版本5.4.6,但在5.4.9之前;同时5.4.8因为被取消而从未发布。那只是一团混乱,所以请远离它。只需打电话给你的专业人士按客户机名称创建项目,并分配下一个编号