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
x/build/internal/releasetargets: evaluate for each upcoming major Go release #40561
Comments
/cc @cagedmantis |
The @golang/release team has considered the current builders, and we are proposing the following builder changes for the Go 1.16 release: go1.16*.linux-amd64.tar.gz
(Or rather a new builder, identical to the Rationale: Debian 8 "Jessie" Long Term Support (LTS) has ended on June 30, 2020 (see https://wiki.debian.org/LTS). We want to start using the next stable release, Debian 9 "Stretch", which has LTS support until June 2022. Note that this has caused #31293 in April 2019 when this change was made unintentionally as part of a minor release, and it was reverted. We hope that it should be okay to try again for Go 1.16 a year later, since this is being done intentionally this time, and for a major release. CC @ianlancetaylor, @jayconrod, @bradfitz. go1.16*.linux-386.tar.gz
Rationale: Same as the one above for linux/amd64. go1.16*.linux-armv6l.tar.gz
Rationale: The replacement builder has proven to be more reliable, and it is easier for us to maintain. go1.16*.linux-arm64.tar.gz
Rationale: The replacement builder has proven to be more reliable, and it is easier for us to maintain. Also see #42304 (comment). Feedback is welcome: we are happy to alter the plan based on information we haven't already considered. These builder changes are planned for Go 1.16 Beta 1, and we will re-evaluate this as needed based on any new findings and feedback. |
Change https://golang.org/cl/276034 mentions this issue: |
See https://golang.org/issues/40561#issuecomment-731482962 for the plan description and rationale. Add new builder definitions that are needed for the plan. Don't rely on generic builder name like "linux-amd64" to avoid a repeat of golang.org/issue/31293; use a specific builder name instead. Remove support and test cases for Go 1.13, it's unsupported per release policy. For golang/go#40561. Change-Id: I070744e15be9f1932d649a27ee7e4599e467553f Reviewed-on: https://go-review.googlesource.com/c/build/+/276034 Trust: Dmitri Shuralyov <dmitshur@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org>
CL 276034 has implemented the aforementioned plan for Go 1.16. We'll need to revisit this issue next time during the Go 1.17 development cycle. (If we discover problems with the Go 1.16 plan, we'll come back here, or file new issues.) Moving to the next milestone for now. |
While working on issue #39326, it has become clear to me that the C compile we have installed on our windows gomotes (at least the ones I have used) is pretty ancient -- GCC 5. It would be great if we could update the version to something a bit more recent (V10 maybe). Also worth noting that many folks are now using clang instead of gcc on windows -- it would be great if our gomotes had clang available as well. |
@thanm Can you please file a separate issue to track that work, and CC @golang/release? It may need more information/investigation. Thanks. |
Filed #43195. Thanks. |
Change https://golang.org/cl/278357 mentions this issue: |
The plan in https://golang.org/issue/40561#issuecomment-731482962 involved updating the linux-amd64 target from Debian Jessie to Debian Stretch, which in turn comes with a newer version of GCC. checkRelocations was added in CL 171317 in response to a bad minor release that was accidentally issued without the intended fix, and needs to be updated for Go 1.16 and newer releases. It's not clear if we want to maintain it indefinitely for future Go versions, but keep it for a bit longer. Add a note to make it clear that it can be removed as needed in the future. For golang/go#40561. Updates golang/go#31293. Change-Id: I2da419eff6379575eb2648787f0dac6bba07b304 Reviewed-on: https://go-review.googlesource.com/c/build/+/278357 Trust: Dmitri Shuralyov <dmitshur@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Alexander Rakoczy <alex@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org>
Change https://golang.org/cl/313070 mentions this issue: |
With this change: - The default FreeBSD builders used on master are 11.4 and 12.2. - The FreeBSD 12.0 builders have been removed. - The FreeBSD 11.2 builders have been set to run on at most Go 1.16. They will continue to be used for Go 1.16.x and 1.15.x minor releases. - The freebsd-amd64-race builder has been updated to use the FreeBSD 12.2 host. - The slowbot aliases for FreeBSD have been updated to use 12.2. Fixes golang/go#44431 Update golang/go#45727 Update golang/go#40561 Change-Id: Ib558fca65c2de1916b4633711d3e320c390bd2b2 Reviewed-on: https://go-review.googlesource.com/c/build/+/313070 Trust: Carlos Amedee <carlos@golang.org> Run-TryBot: Carlos Amedee <carlos@golang.org> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
The @golang/release team has considered the current builders, and we are proposing the following builder change for the Go 1.17 release: go1.17.*.freebsd-amd64.tar.gz
Rationale: Using the latest "patch" release of the oldest supported "major" release of FreeBSD. go1.17.*.freebsd-386.tar.gz
Rationale: Using the latest "patch" release of the oldest supported "major" release of FreeBSD. |
Change https://golang.org/cl/315889 mentions this issue: |
Change https://go.dev/cl/445619 mentions this issue: |
For golang/go#56414, golang/go#40561. Change-Id: If799e9ea7171d33acc57c53442ca33f51f803d3c Reviewed-on: https://go-review.googlesource.com/c/build/+/445619 Auto-Submit: Heschi Kreinick <heschi@google.com> Run-TryBot: Heschi Kreinick <heschi@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Change https://go.dev/cl/449615 mentions this issue: |
This change replaces linux-arm64-aws with linux-arm64. The new builder runs on GCP and has an increased set of resources. This should provide a performance improvement. The builder will now be used: - To release linux-arm64 - As the linux-arm64 trybot Fixes golang/go#53851 Updates golang/go#54679 Updates golang/go#40561 Change-Id: I9abfe2ed1d1bd8a68bba1e1f924637e829026e6d Reviewed-on: https://go-review.googlesource.com/c/build/+/449615 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Carlos Amedee <carlos@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Jenny Rakoczy <jenny@golang.org>
Change https://go.dev/cl/453956 mentions this issue: |
…h 13 The AWS builders have been up and running reliably for a while now. Switch over. Unfortunately the macOS 13 builder had -aws in its name, so we're creating a new builder and will need a backfill. So it goes. While I'm here, build 1.20 with 13 now that we have it. For golang/go#48945, golang/go#40561. Change-Id: Idaac9cfea6fe3f5e190432ecb512a453812618c7 Reviewed-on: https://go-review.googlesource.com/c/build/+/453956 Run-TryBot: Heschi Kreinick <heschi@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Heschi Kreinick <heschi@google.com>
Current state of affairs is visible at https://cs.opensource.google/go/x/build/+/master:internal/releasetargets/releases.txt;l=105;drc=14add1f2a409547572304844b265b007589d3c16. Linux: We've updated most of the linux builders to Bullseye, but I suspect not arm-aws, and I'm not sure of the state of arm on GCE (@cagedmantis). macOS: We've updated AMD64 to 13, but don't have an ARM64 13 builder yet. That's slightly unfortunate but I don't think it's a major problem. Windows: seems like we want to be on 2008 for as long as that's our minimum supported version? FreeBSD: should probably be updated to 13. Anything I'm missing? |
|
Change https://go.dev/cl/454936 mentions this issue: |
Nothing else to do this cycle, bumping. |
For golang/go#40561. Change-Id: Ideb41ea0ce6a2340fee6d98bf5672e361db81532 Reviewed-on: https://go-review.googlesource.com/c/build/+/454936 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Heschi Kreinick <heschi@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Heschi Kreinick <heschi@google.com>
Linux: bullseye is still the latest version. linux-arm-aws is still behind and we're still okay with it. |
Change https://go.dev/cl/495317 mentions this issue: |
We dropped support for 7 (aka 2008) and 8 this cycle. For golang/go#40561. Change-Id: Iceca7bf866c94587450a9716155fe42aa0ca4d3b Reviewed-on: https://go-review.googlesource.com/c/build/+/495317 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Heschi Kreinick <heschi@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Heschi Kreinick <heschi@google.com>
Done for this cycle. |
Change https://go.dev/cl/503755 mentions this issue: |
Change https://go.dev/cl/503758 mentions this issue: |
Change https://go.dev/cl/503756 mentions this issue: |
There won't be new Go 1.18 releases per go.dev/doc/devel/release#policy. For golang/go#40561. Change-Id: Id9c34368e97143198419fdbf75c8fcfbf853e6ab Reviewed-on: https://go-review.googlesource.com/c/build/+/503755 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org>
It's a no-op since the only newly added port is wasip1/wasm, and we won't be making binary releases for it at this time. For golang/go#40561. For golang/go#58141. Change-Id: I0c9932fdfca0842c6860bca0cdbc4b1d64fdefff Reviewed-on: https://go-review.googlesource.com/c/build/+/503756 Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
A longtest builder for the darwin/amd64 port was added in the Go 1.21 development cycle. Start using it as for non-advisory release testing. For golang/go#40561. For golang/go#35678. For golang/go#29252. Change-Id: Ic65e84e5e10bcb786cb28c36c1d1b137e2f6202e Reviewed-on: https://go-review.googlesource.com/c/build/+/503758 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Heschi Kreinick <heschi@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Change https://go.dev/cl/504525 mentions this issue: |
The linux/arm64 port is first class and a longtest builder was added for it during the Go 1.20 development cycle. It's a mandatory trybot on 1.20+ release branches and is working well. The builder recently found a real problem in go.dev/issue/60825, which has been resolved by now. Upgrade this builder from an advisory TryBot to have more complete release test coverage. For golang/go#40561. For golang/go#49649. For golang/go#29252. Change-Id: I1765e820deb0d34b7bb9a72aba397d87c1369ced Reviewed-on: https://go-review.googlesource.com/c/build/+/504525 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Change https://go.dev/cl/527017 mentions this issue: |
There won't be new Go 1.19 releases per go.dev/doc/devel/release#policy. For golang/go#62076. For golang/go#40561. Change-Id: I30e09c9f47ec0006caeb67e15e03b8cdbff7c175 Reviewed-on: https://go-review.googlesource.com/c/build/+/527017 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
At the start of each code freeze, we should evaluate the choice of releaselets (builders that are used for constructing a release artifact) used to make the upcoming major Go release, and confirm they are the most appropriate choice out of what is available.
The start of a code freeze is a safe time to introduce a builder change, as it will be tested during pre-release versions, starting with beta 1 and onwards.
Making this a release blocker for Go 1.16 (and not okay after beta 1—it needs to be done before). Once completed, this issue should be moved to the next major release milestone.
Edit: Starting with Go 1.21, releaselets are only used for running tests. Release artifact construction happens by reproducibly cross-compiling a distpack distribution on a fixed builder.
CC @golang/release, @ianlancetaylor.
The text was updated successfully, but these errors were encountered: