Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

go: install go1.16beta1 in go1.16beta1 directory #69000

Closed
hyangah opened this issue Jan 14, 2021 · 8 comments
Closed

go: install go1.16beta1 in go1.16beta1 directory #69000

hyangah opened this issue Jan 14, 2021 · 8 comments
Labels
outdated PR was locked due to age

Comments

@hyangah
Copy link

hyangah commented Jan 14, 2021

On arm CPU, the go formula uses 1.16beta1 with the version 1.15.6 - because M1 support is available only from 1.16.

if Hardware::CPU.arm?
url "https://golang.org/dl/go1.16beta1.src.tar.gz"
sha256 "48e032c8cf71af4dc8119a29ee829c4fbd5265e32fd012564d4a70bb207695c1"
version "1.15.6"

I understand the intention, but this caused great confusion while debugging 1.16 issues like

golang/vscode-go#1087

Please consider using the true version name.

@carlocab
Copy link
Member

This is explained if you do brew info go:

def caveats
s = ""
if Hardware::CPU.arm?
s += <<~EOS
This is a beta version of the Go compiler for Apple Silicon
(Go 1.16beta1).
EOS
end
s
end

@hyangah
Copy link
Author

hyangah commented Jan 14, 2021

I understand, but this version string appears in various go command logs and outputs (go env for example), and it's distracting.
I had to explain to various go maintainers that this is a lie multiple times. All this slowed issue triage.

On the other hand: we are very close to go1.16 rc release - I hope that can be installed with the true version string directory path.

@carlocab
Copy link
Member

this version string appears in various go command logs and outputs (go env for example)

Why is it doing that? Is the version string being parsed from the Cellar path? I don't think you should be doing that, as I'm not sure the Cellar path is considered a public API.

In any case, if you would like this fixed, please open a PR so that it can be reviewed properly. Note that the version string cannot contain the word "beta" or else our CI will reject it.

You may also wish to read this for context on why the version is listed wrongly: #67665

@hyangah
Copy link
Author

hyangah commented Jan 14, 2021

@carlocab we are not parsing version string from the directory path. But, still humans who read the trace and bug reports get distracted by the version string embedded in the directory path.

@hyangah
Copy link
Author

hyangah commented Jan 14, 2021

If the CI can't be fixed to accept prereleases, I don't see a reasonably easy path forward :-(
go1.16 release is very close and I hope this is a rare situation that shouldn't happen again soon.
Should we just leave as it is now for another month? @fxcoudert @FiloSottile

@fxcoudert
Copy link
Member

I apologize for the choice of "lying" in the version number, it was deemed the lesser of two evils, really. Hopefully go1.16 is released soon and this is all behind us!

@carlocab
Copy link
Member

I guess the version string could be changed to something like 1.15.99 to avoid confusing it with the non-beta 1.15.6. However, I don't want to force the ~90,000 downloads of go in the last month to reinstall it, so the new version string will only apply to future downloads of go. Given that the new release is going to be soon, it may not be worth it.

@carlocab
Copy link
Member

carlocab commented Jan 14, 2021

Actually, arch-dependent versions don't work, so even if CI would accept a beta version, changing the listed version won't help: #68946 (comment)

@BrewTestBot BrewTestBot added the outdated PR was locked due to age label Feb 14, 2021
@Homebrew Homebrew locked as resolved and limited conversation to collaborators Feb 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated PR was locked due to age
Projects
None yet
Development

No branches or pull requests

4 participants