我正在使用名为ng-packagr的工具开发角度库
构建库时,您可能有多个使用此库的项目。 使用ng-packagr或任何库开发此类库时使用的git工作流程是什么?
例如,你有一个用agular 4.x开发的lib-1.0.0。 客户端cl_1和cl_2使用此lib-1.0.0。
现在当你想让同一个库使用angular 5时会发生什么。 然后我将你的新库称为lib-2.0.0,使用angular 5.x开发,为同样使用angular 5的客户端提供相同的功能。 客户端cl_3和cl_4使用此lib-2.0.0。
现在我的问题是:构建git存储库的最佳方法是什么,以及像lib-1.0.0和lib-2.0.0这样的库的工作流程是什么?
lib-1.0.0和lib-2.0.0应该在同一个git repo中。
master ----------------------------------------- \ branch 1 lib-1.0.0(angular4.x)------------------------ \ branch 2 lib-2.0.0(angular5.x)
这里我有一个回购和两个分支。 branch 1将用于使用angular 4.x的库,而branch 2将用于使用angualr 5.x的库
两个库都执行相同的功能,唯一的区别应该是angular的版本 如果lib-1.0.0中出现错误,应如何处理? 它应该在lib-1.0.0中解决然后移植到lib-2.0.0吗? 我们永远不能将两个分支合并到主分支,因为一个用于角度4.x而另一个用于角度5.x。
本文解释了使用名为git flow的git的应用程序的工作流程。 这是链接http://datasift.github.io/gitflow/IntroducingGitFlow.html。 基本上问题是如何将这些想法纳入图书馆考虑到我之前的问题? 角度人员如何处理角度本身以及它们如何处理版本?
如果您对它有任何想法,请分享。我认为他们会非常有趣。 感谢
或者我们应该为同一个库提供两个不同的存储库吗?
答案 0 :(得分:0)
感谢您的回答Aluan Haddad 我正在开发一个使用角度(2,3,4,5 ......)的库。角度4和5之间的差异不是mayor,库的package.json将分别指定不同的版本。这有一点不同。第二个区别是某些导入,例如HTTP将从v4重命名为HTTPClient到v5。但它仍然是同一种语言。就像你说它的框架一样。但是对于库的v4我可以修复bug,我必须移植到v5或反之,因为无论是v4还是v5,库都会提供相同的功能。如果v4的新功能进来,我必须将它们添加到v5。那么主要的问题是,如果有两个repos一个用于v4而另一个用于v5,这比不为每个版本拥有一个repo和多个分支更容易。基本上它有一个库的git流我们需要保持v4和v5活着,直到没有更多的客户端使用它们或直到它们被弃用。此外,开发工具也不会随库一起提供。客户端必须安装它们。这些库将只包含实现该功能的代码。