【发布时间】:2021-02-18 09:17:14
【问题描述】:
想象一下,我有一个 repo github.com/user/golang-examples,并且我准备单独对其中的每个示例模块进行版本控制:
guthub.com/user/golang-examples
/modA
/go.mod
/pkgA1
/pkgA2
/modB
/go.mod
/pkgB1
/pkgB2
(我知道成语是“一个 repo - 一个模块”,但也有多模块项目的用例,所以这不是讨论的主题)
同时,语义 git 标记(v1.0.0、v2.0.0 等)发生在 repo 级别,而不是它的 子文件夹。这使得无法单独标记模块,例如
- 首先,
modA在主要版本的开发中超过了modB,标签v2.0.0被推送到repo 级别,意图是版本modA - 后来,当想升级
modB到v2时,不能第二次将相同的v2.0.0git标签推送到版本modB。
如何根据 golang 的版本控制范式完成这项任务?同样,这是关于多模块项目。将模块拆分为 repos 的明显解决方案在这里有点不利,因为需要顶级 repo 的总体“示例”语义。
谢谢!
【问题讨论】:
标签: semantic-versioning go-modules