-
Notifications
You must be signed in to change notification settings - Fork 25
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
Archive or delete this repo #32
Comments
I agree. Once the doc changes are in place this repository can be archieved |
Actually, I still would like to keep it and add some automation for updating the upstream tap as well as the tap here in case of a release. The idea is to have a
@sameersbn do you know whether we can easily create formulas also for older versions of kn on the homebrew main repo ? I guess this is not well accepted (e.g. when we have more than one older release that we want to keep). So for installing older kn I'd recommend still keeping this repo. Old (supported) version's of kn might be needed when running against older installation of Knative that have not been updated to the latest knative release. |
Actually this is not required. Homebrew automatically tracks the releases on github and updates the formula for the new release. f.e. I had submitted the formula with v0.24.0 and the kn version currently available in homebrew is v0.25.1.
For every kn release series we want updated, we'd have to duplicate the formula similar to https://github.com/Homebrew/homebrew-core/blob/master/Formula/ruby%402.6.rb. I couldn't find any acceptance criteria for having multiple versions of the same tool in homebrew. So we could definitely try. |
I see. While we are at it, I think the formula need to be updated for 0.27 as we just have merged knative/client#1462 that allows for some automation of the dependency versions shown in I wonder whether we could reuse |
originally i used build.sh and they didn't really like it, so we'd have to update the formula instead. |
ok, so we probably have to live with the fact the binaries that you can download from the web page and the one created by brew might differ (so probably they will differ anyway). I wonder how they deal with Golang CVEs. Are they tracked individually and rebuild the binaries for the same version? I hope not. Actually, we go a lot of golang CVEs recently that forced us to create new patch releases. I wonder how we can deal with this, is there a way to specify the very exact golang version to use for creating the binary? From that POV I'm not so super happy anymore to have two different binaries that potentially differ because of different build processes and they both would have to monitor. |
I can't really see where we specify the go version in the formula. |
I may be wrong, but from what I can tell there is a
I am not really sure about this. But if I had to guess: they won't build the same version again.
yes, we can pin go versions like so |
I see. To not have full control over the golang version (down to the patch level) will give us some headaches in the future. I find it even more critical that we even don't know which exact golang version is used to create the binary. See for example the following golang related CVEs that caused us at Red Hat to create a new
These are only some examples, not necessarily blocking CVEs, but you get the idea. If you don't have control over the exact go compiler used for compiling I wonder whether the slight comfort win between |
Let me ask on the homebrew repo how they would tackle such situations. |
I started a discussion over there to find out how we could fix this in homebrew-core --> Homebrew/discussions#2185 |
https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap#official-vendor-taps touches a bit on this. |
Thanks for the pointer, this clarifies the philosophy a bit. Besides the concern that I have wrt/ respins and specific golang versions to build, I also wonder whether we might run into issue the homebrew uses a new compiler than the one that we have tested. E.g. currently homebrew/kn is compiled with golang 1.17.1 while our binaries (like the rest of Knative) is compiled and tested with golang 1.16. This can cause all kinds of troubles for user of the core homebrew kn when using a kn that has not been tested for the specific golang version that it is compiled with. |
From the clarification in Homebrew/discussions#2185
I think we should go back to this repo to keep full control over the golang compiler to use (and the build process in general) @sebgoa @sameersbn @omerbensaadon what is your opinion on this issue ? @sameersbn know, you invested quite a bit in that change and your help to get this to homebrew-core is highly appreciated, but I'm really concerned about the stability and supportability of a binary that has been produced with a newer golang compiler than what we are using for our unit and integration tests. If you don't mind I would like to bring this topic to the TOC for the next working group meeting. |
Time to start testing pre-release Go versions 😅. More seriously though, if there are tests we can add to the formula that would be good to have a pull request for. In either way, we likely won't be pulling the software from homebrew/core. So the best way would be to figure out together how to make the testing more robust. Another solution is like the one we have with Hashicorp. They have tap for "stable tested" releases, and we have core where we have bleeding edge versions. |
Completely understand your reasoning (and we don't ask for an exception for
This is definitely a route that we could consider. Another one would be to be faster wrt/ to update our golang versions, but that might become also difficult, as all Knative components (>10, not only the CLI) are aligned on the golang versions because they share certain code. Thanks again for the feedback! |
I added a discussion slot to the agenda for the next client WG call (next Tuesday, 9:30 EDT) to https://docs.google.com/document/d/1cD7NkJJhSBpo2Q6RBHrbrSe6R5zjTZgO_YDGAluQ_oI/edit?resourcekey=0-1s0gBQJ2r813ZhTBI8eHdg#bookmark=id.fblxf117hk7a |
I have read this thread, to keep it simple my point of view is that upstream homebrew is good enough for So it should be good enough for If a vendor wants to maintain their own tap to provide a slightly different version on which they have more control then they can do it, but this open source community does not need to do this. |
Now that we have a formulae in Homebrew core Homebrew/homebrew-core#83053 we can stop using this tap.
@sameersbn what do you think
The text was updated successfully, but these errors were encountered: