-
-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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 1.13.5 #47510
go 1.13.5 #47510
Conversation
What happened? |
Compared with what we done in the previous PRs, removed all the revision bumps. Will go straight for the merge. |
@leonklingele and @chenrui333 dont you need to bump godep version too? Example from 1.13.4: https://github.com/Homebrew/homebrew-core/pull/46046/files |
I don't know why @chenrui333 has reverted the godep bump. |
sorry that is my fault. the godep is certainly needed. i was just trying to revert my change. |
Just re-commit the godep change. While I was testing this PR yesterday, I did not find anything weird from my side. |
Has this PR not progressed? Many days have passed 😟 |
However magical software development may seem, it does actually involve humans making time and doing work. So no, it hasn't progressed. But you're always welcome to make a pull request that has all the issues fixed. |
Hi all. I've partially tracked down the issue, but don't have time to dig in further right now. The build is including the From borg's That README was last updated 2 years ago, so it doesn't look like this is a new issue with Conjecture:
Potential solutions:
I'll try to get back to it later. |
Given that the test in the current borg formula will fail anyway (because of the missing host), it makes sense to adjust the test there to e.g. (I agree that finding out what depends on borg would be great, too, regardless :-)) |
Where is this dependency defined? |
Hi, I've looked at the console output for the Jenkins job and it looks like after So it goes
And so on... and So |
Yes, otherwise an update could break all formula that use go. |
How about changing borg's formula to test with |
Seems like there is no easy fix other than removing I changed the test command to
IMHO it's kind of pointless to try to fix borg, when the future of the project is unclear. See ok-borg/borg/README.md. |
Now we have borg removed (Thanks @iwittkau), going to rebase the formula and retest. |
deec1cf
to
b5f412d
Compare
That did about nothing. We need to track down why these other formulas still fail. Failed tests:
|
For Dashing looks like contents of https://ruby-doc.org/downloads/ruby_2_5_0_core_rdocs.tgz changed:
I guess we only have to update this hash here: |
@beauhoyt it's a 403, seems like the URL has changed |
@iwittkau huh weird it worked for me 🤔
|
@beauhoyt mysterious, now it works for me as well. Maybe the error here is caused by a flaky webserver. |
For Fass-cli (OpenFaaS CLI) https://github.com/openfaas/faas-cli
Is there anyway to force this Formula to only run against golang1.11.x? |
https://github.com/wilhelm-murdoch/gost is also kind of outdated and uses deprecated formula fields. CI error might be related to a GitHub API change: High Sierra / go 1.13.4:
|
As for Gost (Some Gist posting tool) https://github.com/wilhelm-murdoch/gost
I think we should just remove this test or remove the whole thing 🤷♂ |
@beauhoyt |
b5f412d
to
f2885ab
Compare
I think |
Figured it out, it's the sandbox! The sandbox is preventing |
|
Hello, I'm trying to understand the above process and I have a question. So when golang updates, you also update every package that has go as It's dependency and point it to latest version. So when an error occurs, you debug them yourselves because update might break them. It seems that some tests are not working anymore, and the reasons are unrelated to go. Now comes the question. Can you make formulas pinpoint to a certain semver version like language package managers do ? If I want to install a package that has dependency [email protected], and my machine has [email protected], just allow it because golang semver assures that they are compatible, as it's a patch. It's golang core team's responsibility. So if someone wants to use latest version of go, let them update their own package, do the tests and open a PR. I'm probably missing some vital part as I don't know internals of homebrew very well , thus the question. |
Homebrew generally only ships the last version so when Go updates, we check if that update doesn't break anything that we're already shipping (because users of homebrew shouldn't notice the difference). When errors occur we're debugging because it isn't always an issue with the software. Sometimes the test or CI is just flaky. As for the versioning, that's pretty much what we do already. Versions depend on As for letting people test their own stuff, that doesn't work for package managers. If you install a language dependent library, you probably know the language. If you install teleport from homebrew, how can you be expected to be fluent in Go? |
I also want to add that most of the failed formulas also failed on the previous version of Go. It just so happened that this was brought to attention through this PR because the CI tests everything when the Go version changes. |
There's about 5000 formula in homebrew, just building the python one already maxes out our CI for the better part of a day. Testing all of them regularly simply isn't a viable solution. |
This may be true for python but doesn't the Go pipeline run in just under 3 hours? Anyway, this is probably the wrong place to discuss this ... |
First of all, thanks for all the hard work put into this. I have a couple of reflections and questions about this. First of all, isn't these dependencies on Btw, are you all aware that Go 1.x kind of promises that a new release of Go should never break an existing program. I'm not saying that it will never happen but it's actually quite unlikely. You can read more about it here: https://golang.org/doc/go1compat Second, there seems like most of the failing tests have dependencies on external systems, e.g. sites that has to be up and available. This doesn't feel like a sustainable solution. Are there guidelines on how testing should be designed? |
@atakanyenel It's not that the build is updating every package that uses Go. It's just verifying that they all work with the new version of the Go formula. For Go specifically, this is generally not an issue. But other languages it could be an issue, and signal that more work needs to be done. In this case, it seems that there happen to be a bunch of other formula that are just broken - not because of the change in Go, just because they haven't been maintained. Once this change is committed, the other formula that depend on Go will not change. The only way they would change on a users machine is if the user chose to reinstall and used the HTH. |
Hi @poffe. You are correct that Go is a build-only dependency. Once the binary is created, the end user has no need for any version of Go. But, if we only build, and don't test, those dependent formula, we could miss subtle bugs. Yes, the Go team strives to maintain backwards compatibility. But they aren't perfect. I think it's better to deal with issues like this every now and then, then to have packages not install for end users (Yes, I know that the only way they wouldn't install is if the users included the
Your are right. The issues we are seeing now are not related to Go, but to various other things. This could be because brew is just getting too big to have a flat structure. But I don't think that's going to get resolved in this PR. |
Looking forward to this 😬 |
It is not because of go 1.13.5 (I encourage everybody to test this on their own machine). So can we move on with the merge? @BrewTestBot test this please |
I've tested this and it fails due to this versions of Btw,
No, it's not due to go 1.13.5, again... so how should this be resolved? Update the
We could have moved on with the merge days ago if we change the strict dependency view of
|
@poffe, yes i've been tracking this here: #47842 and there technosophos/dashing#54 |
Homebrew compiles go itself and does not codesign. As the runtime hardening flag is set during code signing, a Homebrew release of go will not have the hardened runtime. To get the hardened runtime, go would have to be released via Cask using the official binaries. |
@iwittkau Great! So we can release the blocking of this pull request then? |
Latest results: only |
Probably not worth blocking this for |
brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingbrew install <formula>
)?