用途:指导 Go 模块与应用的发布工程,面向库的 API 兼容性与应用的二进制分发。
主要能力:讲解 Go 版本语义(v0 无兼容承诺、v1 保持承诺、v2+ 需变更导入路径);判定破坏性变更(删除或重命名导出标识符、改签名、给导出接口加方法、改无类型常量值、收紧输入校验等);弃用约定(以“Deprecated:”开头的注释,须给出替代方案,在次版本中弃用,v1 上不删除);go.mod 卫生(go 指令是下游下限,不得发布含 replace 的版本,打标签前运行 go mod tidy);发布检查清单(gorelease、apidiff、govulncheck 等);失败发布用 retract 修复而非重打标签;应用分发用 GoReleaser、ldflags 注入版本、多平台构建,以及 debug.ReadBuildInfo 回退。
使用方式:仓库打标签前运行 go mod tidy、go build、go vet、go test -race、govulncheck 与 gorelease,再以注释标签推送,并为人类写发布说明。
适用场景:规划或执行 Go 模块/二进制发布、审查变更是否破坏已发布库、弃用或移除导出 API、调整影响依赖方的 go.mod、搭建二进制分发。
限制:模块代理永久缓存已打版本,不能删除或重打标签;弃用不能授权删除;错误消息文本不属稳定 API;本文档未提供具体托管平台、价格或效果信息。