【问题标题】:angular libraries and git workflow角度库和 git 工作流程
【发布时间】: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+ 不是单个框架的不同版本。此外,它们需要不同的开发工具,因此贡献者不需要同时安装这两种工具。

标签: angularjs git workflow


【解决方案1】:

感谢您的回答阿卢安·哈达德 我正在开发一个使用 angular(2, 3, 4, 5 ...) 的库。 angular 4 和 5 的区别不是mayor,库的package.json 会分别指定不同的版本。那是一个区别。第二个区别是某些导入,例如 HTTP 将从 v4 重命名为 HTTPClient 到 v5。但它仍然是同一种语言。就像你说的它是相同的框架。但是对于库的 v4,我可以修复我必须移植到 v5 或反之亦然的错误修复,因为无论它是 v4 还是 v5,该库都将提供相同的功能。同样,如果 v4 的新功能出现,我将不得不将它们添加到 v5。那么主要的问题是,如果有两个存储库,一个用于 v4,另一个用于 v5,这比每个版本都有一个存储库和多个分支更容易做到。基本上它有一个用于库的 git 流,我们需要让 v4 和 v5 保持活动状态,直到没有更多客户使用它们或直到它们被弃用。开发工具也不会随库一起提供。客户端必须安装它们。这些库将仅包含实现该功能的代码。

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 2013-10-31
    • 2014-11-25
    • 1970-01-01
    • 2011-03-02
    • 2019-06-08
    • 1970-01-01
    • 2017-06-09
    • 2010-10-25
    相关资源
    最近更新 更多