为什么取消了Go1.21,而采用了Go1.21.0的版本命名规则

polaris · · 1609 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

Go语言的发展遵循了一个设计驱动的过程,任何对语言、库或工具的重大改变或增加都必须经过提议、讨论和文档化的步骤,才能被实现。 Go语言的版本号由三部分组成:主版本号、次版本号和修订号。例如,Go 1.20.4 表示第一代Go语言的第20个次版本的第4次修订。Go语言的版本号遵循了一个简单而清晰的原则:只有在保证向后兼容性的情况下,才会增加次版本号或修订号;如果需要引入不兼容的变化,就需要增加主版本号。这样可以保证Go语言的稳定性和一致性,也方便开发者和用户管理和使用不同版本的Go语言。 然而,Go语言的版本命名规则也存在一些问题和不一致。在主版本或次版本发布时,第三位数字(修订号)被省略了。例如,Go 1.20 表示第一代Go语言的第20个次版本的第0次修订。这样做可能会导致一些混淆和误解,比如在go.mod文件中使用三位数字的版本号(如go 1.20.0),而在其他地方使用两位数字的版本号(如go 1.20);而且 Go1.20 这样的版本会让一些开发者感到困惑,不清楚他们正在运行或应该运行哪个版本。一些早期的评论也表达了类似的观点,希望第一个补丁版本能用 go1.20.0 而不是 go1.20 来命名。 为了解决这些问题,有人提出了一个关于Go语言的版本命名规则的提议(https://github.com/golang/go/issues/57631)。提议的内容是,在主/次版本发布时,在第三位数字使用零,而不是省略它。例如,Go 1.21.0 表示第一代Go语言的第21个次版本的第0次修订。这样可以避免一些混淆和不一致,也可以保持与go.mod文件中使用的三位数字版本号相同。 这个提议已经被接受,并计划在 Go 1.21 中实施。这个提议对于 Go 语言本身并没有引入任何功能或行为上的变化,只是对于版本命名规则做了一个小而合理的改进。这个改进可以让 Go 语言的版本号更加清晰和一致,也可以给开发者和用户带来一些便利。当然,这个改变也会带来一些成本,比如需要更新一些文档、代码和工具。但是,相比于它带来的好处,这些成本应该是可以接受和承担的。 总之,这个提议是一个关于 Go 语言的版本命名规则的改进建议,它旨在解决当前存在的一些问题和不一致,并提高 Go 语言的可用性和易用性。这个提议已经得到了社区的支持和认可,并将在未来实施。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1609 次点击  ∙  2 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传