gpt4 book ai didi

semantic-versioning - 戈朗 : separate versioning of multiple modules

转载 作者:行者123 更新时间:2023-12-02 16:25:06 25 4
gpt4 key购买 nike

假设我有一个存储库 github.com/user/golang-examples 并且我准备单独对其中的每个示例模块进行版本控制:

guthub.com/user/golang-examples
/modA
/go.mod
/pkgA1
/pkgA2

/modB
/go.mod
/pkgB1
/pkgB2

(我知道成语是“one repo - one module”,但也有用于多模块项目的用例,所以这不是讨论的主题)

同时,语义 git 标记(v1.0.0v2.0.0 等)发生在 repo 级别,不是它的子文件夹。这使得无法单独标记模块,例如

  1. 首先,modA 在主版本的开发中超越了 modB,并且标签 v2.0.0 被推送到 repo 级别,目的是版本 modA
  2. 以后想升级modB到v2时,不能push同一个v2.0.0 git标签第二次到modB版本

如何按照golang的版本化范式来完成这个任务?同样,这是关于多模块项目的。将模块拆分为存储库的明显解决方案在这里有点不利,因为需要顶级存储库的总体“示例”语义。

谢谢!

最佳答案

好的,在继续搜索之后我找到了这个资源:https://github.com/go-modules-by-example/index/blob/master/009_submodules/README.md

应用于我的情况,答案是使用:

  • 对于模块 modA 使用 modA/vX.Y.Z 形式的标签(使用语义版本控制)
  • 对于模块 modB 使用 modB/vX.Y.Z 形式的标签>

对于上下文,来自上面 lint 的引用:

The official modules proposal predicts that most projects will follow the simplest approach of using a single Go module per repository, which typically means creating one go.mod file located in the root directory of a repository.

出于某种原因,我仍然找不到正确的文档/规范引用。

关于semantic-versioning - 戈朗 : separate versioning of multiple modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64701064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com