【发布时间】:2018-01-17 18:37:32
【问题描述】:
我正在使用名为 ng-packagr 的工具开发 Angular 库
在构建库时,您可能有多个项目使用该库。 当您使用 ng-packagr 或任何库开发此类库时,将使用什么 git 工作流程?
例如,您有一个使用 agular 4.x 开发的 lib-1.0.0。 此 lib-1.0.0 由客户端 cl_1 和 cl_2 使用。
现在,当您希望同一个库与 angular 5 一起使用时会发生什么。 然后我想你的新库将被称为 lib-2.0.0,使用 angular 5.x 开发,为也使用 angular 5 的客户端提供相同的功能。 此 lib-2.0.0 由客户端 cl_3 和 cl_4 使用。
现在我的问题是:构建 git 存储库的最佳方式是什么?对于像 lib-1.0.0 和 lib-2.0.0 这样的库来说,它的工作流程是什么?
lib-1.0.0 和 lib-2.0.0 应该在同一个 git repo 中。
主人 ----------------------------------------- \ 分支 1 lib-1.0.0 (angular4.x)------------------------ \ 分支 2 lib-2.0.0 (angular5.x)
这里我有一个 repo 和两个分支。 分支 1 将用于使用 angular 4.x 的库,分支 2 将用于使用 angualr 5.x 的库
两个库的功能相同,唯一的区别应该是 angular 的版本 如果 lib-1.0.0 中出现错误,应该如何处理? 是否应该在 lib-1.0.0 中解决,然后移植到 lib-2.0.0 ? 我们永远无法将两个分支合并为 master,因为一个用于 angular 4.x,另一个用于 angular 5.x。
本文将解释使用 git 的应用程序的工作流程,称为 git flow。 这是链接http://datasift.github.io/gitflow/IntroducingGitFlow.html。 基本上,考虑到我之前的问题,问题归结为如何将这些想法纳入图书馆? 有角度的人如何处理角度本身以及他们如何处理版本?
如果您对此有任何想法,请分享。我认为他们会非常有趣。 谢谢
或者我们应该为同一个库有两个不同的存储库?
【问题讨论】:
-
我建议使用两个存储库,因为 AngularJS 和 Angular 2+ 不是单个框架的不同版本。此外,它们需要不同的开发工具,因此贡献者不需要同时安装这两种工具。