需要拉取请求通信策略
Pull request communication strategy needed
进行基于主干的开发以实现持续部署。这就是我们的分支策略。
master > whats live in production
release > test passed and release point created by CI server
dev > daily merges from the development team.
如果我们考虑做从发布到主阶段的拉取请求。
这种方法的优缺点是什么?我们如何与他们想在 dev 分支做 PR 的开发团队沟通?
我真的没有答案,但认为这个问题的上下文值得进一步讨论。
如果您正在进行持续部署,那么我不确定发布分支的用途。它似乎重复了以下任一目的:
- 'master': 代码为 deployed/released
- 'develop' 集成功能
分支,但尚未准备好发布
或者,您是否使用它来对里程碑或计划的主要版本进行分组(即 Release/1.0、Release/2.0 ), 就像一个迷你主分支。
我不会考虑这种持续交付(可能是部署),但如果您的项目需要分阶段发布而不是持续交付,它肯定是一个有效的模式。
考虑您的 CI 设置以及它如何与您的分支机构集成也很重要。部署到生产环境的不是源代码,而是来自 CI 系统的构建工件。考虑这一点可能会简化您的分支模型。
如果你想回滚,你不想从源代码重建应用程序,你想重新部署以前版本的预构建工件。同样,如果您的构建已通过所有测试并准备好发布 - 希望已经 运行ning 在您的预生产环境中 - 您不想将它合并到不同的分支,重建它然后部署新构建 - 您使用经过测试的构建。
下一个考虑因素是每个额外的分支都会增加开发人员的时间和复杂性。合并、拉取请求、等待 CI 到 运行 等都不是免费的,因此将分支策略的复杂性降低到您需要的最低限度是一个很好的目标。
回答您关于在哪里 PR to/from 的问题,您是否将 "Develop" 视为主线并尝试使其始终保持稳定和正常工作?
如果是这样,那么从功能到开发的 PR 就是关键集成。然后构建、测试 Develop 并将其部署到您的测试环境。
那时从 develop 分支(即创建一个 Release 分支)被认为是好的。
在不重新构建的情况下将该工件从测试环境提升到生产环境,可能会消除对其中一个分支的需求。
进行基于主干的开发以实现持续部署。这就是我们的分支策略。
master > whats live in production
release > test passed and release point created by CI server
dev > daily merges from the development team.
如果我们考虑做从发布到主阶段的拉取请求。 这种方法的优缺点是什么?我们如何与他们想在 dev 分支做 PR 的开发团队沟通?
我真的没有答案,但认为这个问题的上下文值得进一步讨论。
如果您正在进行持续部署,那么我不确定发布分支的用途。它似乎重复了以下任一目的:
- 'master': 代码为 deployed/released
- 'develop' 集成功能 分支,但尚未准备好发布
或者,您是否使用它来对里程碑或计划的主要版本进行分组(即 Release/1.0、Release/2.0 ), 就像一个迷你主分支。
我不会考虑这种持续交付(可能是部署),但如果您的项目需要分阶段发布而不是持续交付,它肯定是一个有效的模式。
考虑您的 CI 设置以及它如何与您的分支机构集成也很重要。部署到生产环境的不是源代码,而是来自 CI 系统的构建工件。考虑这一点可能会简化您的分支模型。 如果你想回滚,你不想从源代码重建应用程序,你想重新部署以前版本的预构建工件。同样,如果您的构建已通过所有测试并准备好发布 - 希望已经 运行ning 在您的预生产环境中 - 您不想将它合并到不同的分支,重建它然后部署新构建 - 您使用经过测试的构建。
下一个考虑因素是每个额外的分支都会增加开发人员的时间和复杂性。合并、拉取请求、等待 CI 到 运行 等都不是免费的,因此将分支策略的复杂性降低到您需要的最低限度是一个很好的目标。
回答您关于在哪里 PR to/from 的问题,您是否将 "Develop" 视为主线并尝试使其始终保持稳定和正常工作?
如果是这样,那么从功能到开发的 PR 就是关键集成。然后构建、测试 Develop 并将其部署到您的测试环境。
那时从 develop 分支(即创建一个 Release 分支)被认为是好的。
在不重新构建的情况下将该工件从测试环境提升到生产环境,可能会消除对其中一个分支的需求。