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

标签 semantic-versioning go-modules

假设我有一个存储库 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/

相关文章:

go - 有没有办法一次构建多个基于 Go 模块的项目?

ios - 使用 TestFlight 进行内部测试时,什么是好的 iOS 应用程序版本控制策略?

git - 语义版本控制和 git 分支

go - 如何使用 godoc 与 go 模块一起提供文档?

docker - 尝试在 docker 上使用 go mod download 时出错

go modules 多个主要方法

go - 通过drone.io提交代码构建应用时,如何在代码中提供所需的go模块?

node.js - Bower(和 npm)版本语法是什么?

node.js - 包裹 SemVer 错误

javascript - npm标准版补丁版本问题