我创建了一个包含 2 个包的 git 存储库:
pkg1
和 pkg2
.
pkg1
是 pkg2
的依赖项。
我想把它们分开,因为一个人只能使用
pkg1
。
在我们的 CI/CD 过程中,创建了一个合并请求。合并后,开发人员为每个部署的包及其版本创建一个 git 标签,这会触发一个管道,该管道使用 git 标签中的版本部署包。
现在假设我正在开发一项功能,该功能会改变
pkg1
中的内容。我想要pkg2
包含pkg1
的变化所以我也想更新它的版本。
在
pkg2
requirements.txt(它是一个python包,但它无关紧要)我想升级pkg1
的所需版本,但我在管道中找不到正确的方法。我们找到了几个选项,但每个选项都有问题:
pkg1
的版本作为合并请求的一部分,但这很糟糕,因为我在创建包之前依赖它。如果另一个开发人员在我之前合并代码并“捕获”那个版本怎么办?pkg1
pkg1pkg2`` requirements but this is unsafe because someone can deploy
pkg2and an application that uses
pkg1```中删除might rebuild itself and use a different version of
的特定版本,而没有人期望。pkg1
需求中为pkg2
的包升级创建一个单独的合并请求。这将使 CI/CD 过程变得更重。并假设我将拥有更多依赖性更高的包。这样,每次更新可能会消耗多个合并请求,与依赖树的深度一样多。在这种情况下,正确的策略是什么?