弃用和收回之间的区别?

我对 Go 比较陌生。今天我升级到 Go 1.17。然后我阅读了https://golang.org/doc/go1.17上的发行说明以了解更改。

我发现了这个新功能:

我从 Go 1.16 知道 go.mod 文件可以指定retract通知并撤回模块版本,或更多版本。

我不清楚新// Deprecated评论和retract. 看起来用法是相似的。

请你告诉我什么时候该用// Deprecate,什么时候用retract

回答

您应该使用// Deprecated: comment表示您不再支持主要版本。例如,您发布了v2.0.0,并且您不打算再继续工作v1.0.0v1.0.0可能仍然按预期工作,但它可能缺少许多您只想添加到的新功能v2.0.0

retract可用于标记[ ]可能包含严重错误或漏洞且不应使用的次要或补丁版本(或包含在 中的一系列版本)。例如,您可能会发布v1.2.0,2 天后有人发现其中存在安全漏洞。您可以修改go.mod以添加retract到 version v1.2.0,并将此添加标记为v1.2.1

retract (
v1.2.0 // Security vulnerability discovered.
v1.2.1 // Contains retractions only.
[v3.0.0, v3.9.9] // Retract all from v3
)

这将通知go工具不要升级到v1.2.0或升级到v1.2.1(例如,当您使用 指示更新到最新版本时go get example.com/m@latest)。当您修复问题并发布时v1.2.2go get example.com/m@latest将更新为v1.2.2.


引自Go Modules Reference:弃用:

并引用retract指令:

  • @Magus 您可以在 `rectract` 中指定 _ranges_,例如:`retract [v3.0.0, v3.9.9]`

以上是弃用和收回之间的区别?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>