【问题标题】:Applying semver on mono-repo node js projects在 mono-repo 节点 js 项目上应用 semver
【发布时间】:2021-04-06 05:47:21
【问题描述】:

我使用npx semantic-release 标记 GitHub 中的项目。我目前正在开发一个使用 mono-repo 布局的项目,例如:

单一回购

  • API
  • 网络
  • 移动

我想生成每个组件分开的标签/发布。我不太确定标记机制在这种情况下应该如何工作。我正在考虑添加逻辑来识别哪个组件已被更新并生成一个标签作为组件名称的前缀,如mobile-1.0.1api-1.2.1 等... 有没有人有过类似工作的经验?

我也在考虑创建一个单独的存储库,每个组件的每个组件都将更容易管理,任何建议都值得赞赏。

【问题讨论】:

    标签: node.js github monorepo semantic-versioning git-tag


    【解决方案1】:

    似乎要走的路是 lerna。我发现这个库在这些情况下非常有用。 https://github.com/lerna/lerna/tree/main/commands/version

    如果你们使用任何其他不同的方法,我想知道任何其他替代方法

    【讨论】:

    • 任何将 SemVer 版本字符串提交到 repo 的工具都被设计破坏了。好吧,它们的可扩展性不是很好。如果只有一个进程可以更改这些值,例如官方构建机器,但它不能扩展到并行/分布式构建,并且它不会阻止开发人员在本地触发这些构建步骤,您可以使其工作,并在下次推送时污染版本历史。还有一个问题是,对于给定的提交 ID,可能有许多构建,其中一些是成功的,并且可能构建在不同的环境中。
    • 没有两个包,应该有相同的 SemVer 版本字符串附加到它们,并且几乎不可能构建完全相同的东西,即使工具和源代码保持不变。我一直在尝试实现确定性构建,虽然为了实现这一目标已经对工具进行了很多很好的更改,但仍有很长的工具列表不是确定性的。
    • 我有一个例子在这里运行。让我知道你们对此的看法github.com/enriquezrene/lerna-mono-repo-semver
    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2017-04-21
    • 2021-05-23
    • 2014-03-25
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    相关资源
    最近更新 更多