go 建议:x/website/internal/dl:添加包括不稳定版本但不包括归档版本(?mode=json&include=stable,unstable)

e4eetjau  于 6个月前  发布在  Go
关注(0)|答案(5)|浏览(48)

什么版本?

golang/website@51b22ef

这个问题在最新版本中是否重现?

是的

你做了什么?

查询 https://golang.org/dl/?mode=json 以获取稳定版本和测试版。

你期望看到什么?

一种查询端点并返回最新稳定版本的方法,即 go1.14.7 和 go1.13.5,以及最新的不稳定/测试版/候选发布版本,即 go1.15rc2。

你看到了什么?

我只看到了一种查询最后两个稳定版本的方法:
https://golang.org/dl/?mode=json
或者查询所有包含稳定版本、不稳定版本和已归档版本的发布版本,其中有很多:
https://golang.org/dl/?mode=json&include=all

jhdbpxl9

jhdbpxl91#

建议

我认为对于那些能够自动安装最新稳定版本的工具或开发环境,能够轻松查询最新不稳定版本是很有用的。鼓励使用不稳定版本,这样可以尽早发现问题,这是我们使之变得更容易的一种方式。
我们可以将 include 选项更改为其他值,如 stableunstablearchived 。查询值可以支持逗号分隔的有效值列表,因此有可能指定 stable,unstable
https://golang.org/dl/?mode=json&include=stable (默认)
https://golang.org/dl/?mode=json&include=stable,unstable
https://golang.org/dl/?mode=json&include=all
这个实现起来非常简单,因为这里的逻辑非常直接且可塑性强:
https://github.com/golang/website/blob/0108f0928b89f2c1b821381349f473db3f4cbfc4/internal/dl/server.go#L101-L107

fsi0uk1n

fsi0uk1n2#

https://golang.org/cl/247524提到了这个问题:internal/dl: add includes values stable, unstable, archive

pdtvr36n

pdtvr36n3#

确实,为这个功能添加支持的实现相当小且简单。然而,一旦我们为这个功能添加了支持,它将变得难以(几乎不可能)移除,我们需要无限期地维护它。所以在做出改变之前,我想更好地了解现在哪些事情是不可能的(或者困难或低效的)。
在我看来,客户端可以请求 ?mode=json&include=all 并在他们自己的端执行任何类型的过滤逻辑。这是灵活且简单的。
你能详细说明为什么你认为应该进行这个更改吗?这是否与能够在某些情况下减少需要传递的响应大小有关?还有其他因素吗?
我认为对于能够自动安装最新稳定版本Go的开发工具或环境来说,能够轻松查询最新的不稳定版本是有用的。
目前哪些方面不容易实现呢?
另外,请参阅 #36898#38773#37581 ,它们可能与此相关。

anhgbhbe

anhgbhbe4#

目前的情况有什么不容易的地方吗?
这并不是关于减小响应大小的问题,而是那些在不同环境中自动安装Go的人可能会遇到困难,比如我,我在像bash脚本这样的脚本中这样做。因为默认的响应只是最后两个稳定版本,所以很容易将输出管道到其他shell命令以安装稳定版本。
我没有发现在bash中过滤大量JSON很简单。在Go或其他语言中做这件事应该没问题,所以也许我只是用错了工具。
当发布候选版本和测试版发布时,理想情况下,人们可以通过在URL中添加参数来轻松安装它们,就像安装稳定版本一样容易。解析所有已归档的旧版本以获取发布候选版本/测试版绝对是可能的,但我认为至少在归档列表之外显示betas是有意义的,这样人们更容易安装所有稳定+RCs/betas,因为鼓励运行betas和RCs。如果鼓励的话,降低门槛是值得的吗?
另一个选择是将发布候选版本/测试版包含在默认输出中,但那将是一个破坏性的变化,我不确定这是否合适。

nhhxz33t

nhhxz33t5#

我们希望为vscode-go的Go发布检查使用这个。在我们的案例中,响应的大小很重要,因为vscode-go定期监视这个端点。目前,include=all输出大小接近1M,并且会持续增长。@dmitshur和@leighmcculloch,你们介意我们重新打开这个问题来重新考虑这个功能并整理细节(例如include=stable,unstable)吗?

相关问题