Nix + Go | 220 Members | |
| Go packaging for and with Nixpkgs. | Be excellent to each other. | 46 Servers |
| Sender | Message | Time |
|---|---|---|
| 25 Feb 2024 | ||
| 10:18:50 | ||
| 28 Feb 2024 | ||
| Paul Meyer (katexochen): hi | 09:42:17 | |
| just from reading the chat from 21st of Feb, I am still not sure I understand what is "Since this wait is causing breakage in the toolchain" | 09:44:17 | |
| It is not breaking the toolchain, but the development tooling. I assume this is what prmadev from the PR meant. | 09:46:15 | |
| So currently, it is difficult to develop Projects that use Go 1.22, because things like your language server etc. won't work. | 09:47:25 | |
| i cant speak for gopls, but golangci-lint needs to be built to specific version of golang you are using, therefore, there is no one default | 09:48:01 | |
| people can just override tools to their version of golang | 09:48:21 | |
| it shouldn't affect default version of golang in nixpkgs | 09:48:40 | |
In reply to @kirillrdy:matrix.orgI don't think this is true. You should be able to use golangci-lint built with Go 1.21 for Go modules that only require Go 1.20 in the same way you can build them with a newer toolchain. There is also nothing documented otherwise in the golangci-lint docs: https://golangci-lint.run/usage/install/ | 09:52:14 | |
In reply to @kirillrdy:matrix.orgI think it should. Go provides a backwards compatibility promise. People who work on Go expect this, rely on it and build upon it. There is no similar promise regarding forward compatibility. Keeping the Go toolchain and builder on the latest release support these guarantees provided by upstream. | 09:56:07 | |
| golangci-lint is just a massive collection of thirdparty tools, and many of them rely on source code of golang version they built against | 09:57:03 | |
| i think still main question is how this affects default version of golang for nixpkgs, i think i understand where your proposal comes from, but I would be leaning towards just bumping default golang in nixpkgs | 09:58:29 | |
In reply to @kirillrdy:matrix.orgThat's true, but incompatibilities should (and seemingly are) handled by golangci-lint itself, see for example https://github.com/golangci/golangci-lint/pull/4357 | 10:00:24 | |
In reply to @kirillrdy:matrix.orgNot sure I get what you mean, are you saying we should prefer bumping the default over introducing a buildGoLatestModule? | 10:01:53 | |
| "we should prefer bumping the default over introducing a buildGoLatestModule" --> yes | 10:02:21 | |
| Nice, thats my opinon as well. :) | 10:03:37 | |
| maybe less controversial, we should prefer less work, and i think currently "bumping the default" is less work | 10:03:46 | |
| i am building your PR now, and so far no failures :-) | 10:04:48 | |
In reply to @kirillrdy:matrix.orgYes, but not all people seem to like early bumps: https://github.com/NixOS/nixpkgs/pull/290212#discussion_r1497626679 I still don't get why, is it because x.x.0 versions are said to be error prone? | 10:05:44 | |
| we can work on that, as i said, this is unstable channel | 10:06:08 | |
| let me know if anything breaks | 10:07:52 | |
In reply to@katexochen:matrix.orgit's probably this, but I definitely agree that we've waited for way past long enough | 10:07:57 | |
(I'm considering having a go = go_1_22 override in all my newer repos) | 10:08:18 | |
In reply to @diamondburned:matrix.orgLooking at the release milestones, a upstream bump from 1.x.0 -> 1.x.1 seems to resolve just as many issues as a 1.x.1 -> 1.x.2 bump on average. | 10:09:20 | |
| yeah ime 1.x.0 is never an issue either | 10:09:42 | |
| we should rely on automation, if something important breaks we should add a test, and not fearing of 1.23.0 release | 10:10:10 | |
| And if packages are know to break on updates, they can still use the builder with the explicit version, so people know that manual work is needed. | 10:11:15 | |
hmm, if we do want to entertain the idea of fearing 1.x+1.0 releases, I think having a buildGoLatestModule would actually make a lot of sense, considering how it would work really well for Go development tools while other Go programs that can work with existing Go versions can stay on that version | 10:11:31 | |
| (though staying on Go versions is kind of weird because Go deprecates its releases very quickly) | 10:11:51 | |
In reply to @diamondburned:matrix.orgI think we should rather convince people not to fear .0 releases 😉 | 10:18:47 | |