深入 Go Module 之未说的秘密

鸟窝 at 
正常情况下,我们的 go.mod 依赖库的版本都是符合语义化版本 2.0.0 的版本格式,或者伪版本格式。在前面的文章我没有特别提到一点的事,Go 使用服务端提交的日期和 commit id 生成的伪版本号是符合语义化版本号 2.0.0 的,因为语义化版本号中规定 pre-release 以连接号-加一连串以逗号分隔的标识符组成,标识符以字母数字和连接号组成,所以你看到-yyyyMMddhhmmss-comitid 包含两个连接号,这是正常的。go 要求依赖库要么不包含 go.mod,要么依赖库中的 go.mod 定义的依赖库版本必须以语义化版本 2.0.0 格式(或伪版本号)标志(其实更严格……