-
-
Notifications
You must be signed in to change notification settings - Fork 673
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
always produce .a files at the beginning of a build #3385
Conversation
This change updates rules_go in anticipation for Go 1.20, which will ship without .a files for the standard library. Now, instead of conditionally building the standard library if the configuration differs from the default, the standard library will always be built. In addition, the builder will be built using 'go build' instead of individual invocations of go tool compile/link to avoid needing to bootstrap the standard library before producing the builder.
In no way objecting to this change since it or something like it is necessary, but out of curiosity, what is the performance implication (or benefit) or switching from |
go/private/rules/binary.bzl
Outdated
return [DefaultInfo( | ||
files = depset([out]), | ||
executable = out, | ||
)] | ||
|
||
go_tool_binary = rule( | ||
implementation = _go_tool_binary_impl, | ||
cfg = go_tool_transition, # For fmeum: Is this correct? do we need go_reset_target? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
non_go_tool_transition
may perform better here (the bootstrap rules don't use nogo, so the setting shouldn't matter), but better verify that with cquery
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
They seem to be the same at 3 configurations produced either way, but i'll stick with the non go tool transition.
With non_go_tool_transition the three configs seem to be
- a plain config
- an opt config with the java and c++ opt options
- the opt config with an additional //go/private:request_nogo = true
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The recent fix brought it down to just target and exec variants. I don't know where the target variant comes from when building all of rules_go and cquery
doesn't show me the path. It doesn't seem to be built with a normal go_binary
, so I'm inclined to say it's not an issue.
I also checked the stdlib rebuilds and they all look reasonable.
This allows the builder to be built in the same configuration as other targets from //tests/intagration/reproducibility:reproducibility_tests, so the bazel-bin directory doesn't get deleted as it would in a mulit-config build.
On Go 1.20+ the The "annoying" but hard to avoid thing is that on 1.20+ we will build part of the standard library when |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for figuring out the Windows build, the change looks good.
We shouldn't merge this yet though as it is only required with Go 1.20 and regresses build times with currently available versions of Bazel.
@matloob Could you add a temporary commit that uses Go 1.20 in CI?
When do you think we'll be able to get this in? I think it would be nice to make sure that people can easily test with the 1.20 release candidate (which was released yesterday),
Could you give me a pointer to what to modify to do that? |
That's a good point. At the cost of making this change more complex, we could probably make the new logic conditional on the SDK version. We accept this version here and would need to wire this through all the way into the sdk properties available at analysis time. @linzhp @achew22 Do you think we should do this?
Are there binaries for the release candidate? If so, you could add go_download_sdk to the |
yeah, I think we should add that conditional logic on SDK versions. It may take a while for big repos to fix all issues and upgrade to Go 1.20. |
@matloob Do you want to take a stab at this conditional logic? We can also pair on it next week. |
I'll give it a try
Got it, I'll do that. |
Added conditional logic to only build a new SDK for Go 1.20+. Set the version to 1.20rc1 in the WORKSPACE file for CI purposes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me with one comment, we should be able to merge this right away.
@linzhp Could you test at Uber once the comment has been resolved?
Missed the coverage test failure, will also look into it.
go/private/actions/stdlib.bzl
Outdated
minor = minor[:rc] | ||
beta = minor.find("beta") | ||
if beta != -1: | ||
minor = minor[:beta] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming there could be other strings (e.g. "alpha"), and we are already at three (".", "rc", "beta"), could we instead cut off the first non-numeric character? You could use isdigit
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me with one comment, we should be able to merge this right away.
@linzhp Could you test at Uber once the comment has been resolved?Missed the coverage test failure, will also look into it.
I think the coverage test is the same issue on the boringcrypto cl: that we need to make the path to "Tool" relative on 1.19+.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran it locally with extra output and it complained about -test.coverprofile
not being supported when built without coverage. Since the CI is passing for the other PR, I rather suspect something changed with respect to coverage instrumentation in Go 1.20.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, got it, that will require a closer look...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok so that error was due to the flag-flip setting the GOEXPERIMENT coverageredesign by default. We'll need to eventually update the way coverage works in rules_go, but for now we can set GOEXPERIMENT=nocoverageredesign. I'll try to find a way to set that to get this change moving forward. It might be easiest to plumb something through the same way we do in the boringcrypto cl
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will do one more cquery
pass tomorrow to make sure that we are generating the minimal possible number of configured targets.
I updated the change to add the nocoverageredesign experiment earlier, when we write the SDK BUILD file setting the list of experiements on the GoSDK, so we don't need to plumb that information later on. And we can rely on the check of whether experiments are set when deciding to use the stdlib to decide whether to set that for 1.20+. |
go_register_toolchains( | ||
version = "1.19.4", | ||
) | ||
go_register_toolchains(version = "1.19.4") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is back to 1.19.4. Given that 1.20 isn't out yet, maybe we should test it in go_bazel_test
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a simple test doing a build in 1.20.
Co-authored-by: Fabian Meumertzheim <[email protected]>
Looks good to me, thanks for going through all the iterations! Since I lean towards not forcing @linzhp Could you take a final look and/or test it? |
OK. I will test it out and let you know |
Hey folks, I work at Uber with @linzhp and I'm in charge of upgrading Go versions at Uber. I just tested this patch with our testing branch for Go 1.20 rc1, and we're still noticing issues with it. Specifically I'm seeing the stdlib archives are not being picked up by rules_go.
I'm noticing that rules_go builds the stdlib archive files:
but it seems like rules_go is unable to pick these up and populate them as dependencies. |
@sywhang Do you know why CI can't reproduce this when running with |
@sywhang What do the lines in your WORKSPACE file that declare the toolchain/sdk look like? |
@sywhang Could you also provide details about what action you're running that's failing? Those error messages don't look familiar to me and I'm wondering if something needs to be updated in your repo apart from rules_go to be compatible with Go 1.20. (Just a theory of course) |
I think this might have to do with the way we're extracting the binary since we're not using |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) | http_archive | minor | `v0.37.0` -> `v0.38.0` | --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.37.0...v0.38.0) #### Breaking changes Starting this release, rules_go requires Bazel 5.3 and golang/x/tools at least 0.3.0. #### Major new features This is the first release to support Go 1.20. When on this version of Go, it is highly recommended to use Bazel 6 and set `--experimental_output_directory_naming_scheme=diff_against_baseline` to prevent certain unnecessary rebuilds. #### What's Changed - preserve intermediate files if `-work` is specified by [@​motiejus](https://togithub.com/motiejus) in [https://github.com/bazelbuild/rules_go/pull/3389](https://togithub.com/bazelbuild/rules_go/pull/3389) - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3392](https://togithub.com/bazelbuild/rules_go/pull/3392) - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3398](https://togithub.com/bazelbuild/rules_go/pull/3398) - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3401](https://togithub.com/bazelbuild/rules_go/pull/3401) - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3404](https://togithub.com/bazelbuild/rules_go/pull/3404) - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3385](https://togithub.com/bazelbuild/rules_go/pull/3385) - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3410](https://togithub.com/bazelbuild/rules_go/pull/3410) - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3400](https://togithub.com/bazelbuild/rules_go/pull/3400) - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3415](https://togithub.com/bazelbuild/rules_go/pull/3415) - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [https://github.com/bazelbuild/rules_go/pull/3418](https://togithub.com/bazelbuild/rules_go/pull/3418) - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3414](https://togithub.com/bazelbuild/rules_go/pull/3414) - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3356](https://togithub.com/bazelbuild/rules_go/pull/3356) - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3427](https://togithub.com/bazelbuild/rules_go/pull/3427) - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3428](https://togithub.com/bazelbuild/rules_go/pull/3428) #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - [@​ttpathan](https://togithub.com/ttpathan) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) **Full Changelog**: bazel-contrib/rules_go@v0.37.0...v0.38.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cgrindel/bazel-starlib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTEuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExMS4xIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) | http_archive | minor | `v0.35.0` -> `v0.38.1` | --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.1`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.1) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.0...v0.38.1) #### Bug fixes The go_googleapis upgrade in 0.38.0 is too disruptive. It changes the Go import paths of the proto packages, causing build failures in repos trying to upgrade to rules_go 0.38.0. Reverting the go_googleapis to the master of 2022-12-05 ([#​3432](https://togithub.com/bazelbuild/rules_go/issues/3432)) for now to make rules_go upgrades easier. #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.5") **Full Changelog**: bazel-contrib/rules_go@v0.38.0...v0.38.1 ### [`v0.38.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.37.0...v0.38.0) #### Breaking changes Starting this release, rules_go requires Bazel 5.3 and golang/x/tools at least 0.3.0. If you are using [stardoc](https://togithub.com/bazelbuild/stardoc), you also need to upgrade it to 0.5.3 to recognize `RunEnvironmentInfo`, which is used in this release. #### Major new features This is the first release to support Go 1.20. When on this version of Go, it is highly recommended to use Bazel 6 and set `--experimental_output_directory_naming_scheme=diff_against_baseline` to prevent certain unnecessary rebuilds. #### What's Changed - preserve intermediate files if `-work` is specified by [@​motiejus](https://togithub.com/motiejus) in [https://github.com/bazelbuild/rules_go/pull/3389](https://togithub.com/bazelbuild/rules_go/pull/3389) - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3392](https://togithub.com/bazelbuild/rules_go/pull/3392) - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3398](https://togithub.com/bazelbuild/rules_go/pull/3398) - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3401](https://togithub.com/bazelbuild/rules_go/pull/3401) - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3404](https://togithub.com/bazelbuild/rules_go/pull/3404) - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3385](https://togithub.com/bazelbuild/rules_go/pull/3385) - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3410](https://togithub.com/bazelbuild/rules_go/pull/3410) - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3400](https://togithub.com/bazelbuild/rules_go/pull/3400) - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3415](https://togithub.com/bazelbuild/rules_go/pull/3415) - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [https://github.com/bazelbuild/rules_go/pull/3418](https://togithub.com/bazelbuild/rules_go/pull/3418) - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3414](https://togithub.com/bazelbuild/rules_go/pull/3414) - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3356](https://togithub.com/bazelbuild/rules_go/pull/3356) - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3427](https://togithub.com/bazelbuild/rules_go/pull/3427) - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3428](https://togithub.com/bazelbuild/rules_go/pull/3428) #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - [@​ttpathan](https://togithub.com/ttpathan) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) **Full Changelog**: bazel-contrib/rules_go@v0.37.0...v0.38.0 ### [`v0.37.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.37.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.36.0...v0.37.0) #### Major New Features - Support fetching packages for generated code in the Go Packages Driver #### What's Changed - bzlmod: Add missing `strip_prefix` field to `source.template.json` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3359](https://togithub.com/bazelbuild/rules_go/pull/3359) - Declare toolchains in a separate repository by [@​jfirebaugh](https://togithub.com/jfirebaugh) in [https://github.com/bazelbuild/rules_go/pull/3348](https://togithub.com/bazelbuild/rules_go/pull/3348) - Delete legacy actions API by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3173](https://togithub.com/bazelbuild/rules_go/pull/3173) - go_path: support go:embed of generated files by [@​S-Chan](https://togithub.com/S-Chan) in [https://github.com/bazelbuild/rules_go/pull/3285](https://togithub.com/bazelbuild/rules_go/pull/3285) - Properly deprecate `bindata`, `go_embed_data`, and `go_embed_data_deps` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3362](https://togithub.com/bazelbuild/rules_go/pull/3362) - link.bzl: ignore duplicate dep on coverdata by [@​robfig](https://togithub.com/robfig) in [https://github.com/bazelbuild/rules_go/pull/3032](https://togithub.com/bazelbuild/rules_go/pull/3032) - feat(pkg-drv): add support for generated files by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3354](https://togithub.com/bazelbuild/rules_go/pull/3354) - Remove unused variables in link action by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3367](https://togithub.com/bazelbuild/rules_go/pull/3367) - Reduce number of declared files in `emit_stdlib` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3366](https://togithub.com/bazelbuild/rules_go/pull/3366) - Update docs regarding vendored proto files by [@​garymm](https://togithub.com/garymm) in [https://github.com/bazelbuild/rules_go/pull/3360](https://togithub.com/bazelbuild/rules_go/pull/3360) - go link: use external linker when in race mode by [@​motiejus](https://togithub.com/motiejus) in [https://github.com/bazelbuild/rules_go/pull/3370](https://togithub.com/bazelbuild/rules_go/pull/3370) - Adding first example by [@​chrislovecnm](https://togithub.com/chrislovecnm) in [https://github.com/bazelbuild/rules_go/pull/3317](https://togithub.com/bazelbuild/rules_go/pull/3317) - fix(packagesdriver): bazelFlags should prefix the command by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3371](https://togithub.com/bazelbuild/rules_go/pull/3371) - chore(gpd): export aspect utils for reusability by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3373](https://togithub.com/bazelbuild/rules_go/pull/3373) - nogo: Add a \_base key to be a default config for all Analyzers. by [@​DolceTriade](https://togithub.com/DolceTriade) in [https://github.com/bazelbuild/rules_go/pull/3351](https://togithub.com/bazelbuild/rules_go/pull/3351) - Document that `Rlocation` can return relative paths by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3377](https://togithub.com/bazelbuild/rules_go/pull/3377) - Fix normalization check for `Rlocation` path by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3378](https://togithub.com/bazelbuild/rules_go/pull/3378) - fix(gpd): Write large target patterns to file by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3372](https://togithub.com/bazelbuild/rules_go/pull/3372) - Make Go runfiles library repo mapping aware by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3347](https://togithub.com/bazelbuild/rules_go/pull/3347) #### New Contributors - [@​jfirebaugh](https://togithub.com/jfirebaugh) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3348](https://togithub.com/bazelbuild/rules_go/pull/3348) - [@​S-Chan](https://togithub.com/S-Chan) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3285](https://togithub.com/bazelbuild/rules_go/pull/3285) - [@​garymm](https://togithub.com/garymm) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3360](https://togithub.com/bazelbuild/rules_go/pull/3360) - [@​motiejus](https://togithub.com/motiejus) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3370](https://togithub.com/bazelbuild/rules_go/pull/3370) - [@​chrislovecnm](https://togithub.com/chrislovecnm) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3317](https://togithub.com/bazelbuild/rules_go/pull/3317) - [@​DolceTriade](https://togithub.com/DolceTriade) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3351](https://togithub.com/bazelbuild/rules_go/pull/3351) **Full Changelog**: bazel-contrib/rules_go@v0.36.0...v0.37.0 #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "56d8c5a5c91e1af73eca71a6fab2ced959b67c86d12ba37feedb0a2dfea441a6", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.3") ### [`v0.36.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.36.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.35.0...v0.36.0) #### Major new features - The Go runfiles library developed by [@​phst](https://togithub.com/phst) at https://github.com/phst/runfiles is now available as `github.com/bazelbuild/rules_go/go/runfiles` (target `@io_bazel_rules_go//go/runfiles`) and is now the official way to look up runfiles from Go. It will be made compatible with Bzlmod in a future release. **Note:** For improved consistency with runfiles libraries in other languages, the `Path` function present in https://github.com/phst/runfiles is called `Rlocation` in rules_go. - Adding two new command line flags `--@​io_bazel_rules_go//go/config:gc_goopts` and `--@​io_bazel_rules_go//go/config:gc_linkopts` to accept additional compiler and linker flags. #### What's Changed - bzlmod: Use register_toolchains by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3290](https://togithub.com/bazelbuild/rules_go/pull/3290) - Remove unused env_execute by [@​kmicklas](https://togithub.com/kmicklas) in [https://github.com/bazelbuild/rules_go/pull/3276](https://togithub.com/bazelbuild/rules_go/pull/3276) - Correctly forward InstrumentedFilesInfo from dependencies by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3294](https://togithub.com/bazelbuild/rules_go/pull/3294) - Parse Go SDK version out of `go version` instead of `VERSION` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3296](https://togithub.com/bazelbuild/rules_go/pull/3296) - also write test stderr to json (xml) output file by [@​rickystewart](https://togithub.com/rickystewart) in [https://github.com/bazelbuild/rules_go/pull/3300](https://togithub.com/bazelbuild/rules_go/pull/3300) - Bzlmod: Pin Bazel version in CI by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3301](https://togithub.com/bazelbuild/rules_go/pull/3301) - Allow to select Go SDK version from declared SDKs by [@​ash2k](https://togithub.com/ash2k) in [https://github.com/bazelbuild/rules_go/pull/3303](https://togithub.com/bazelbuild/rules_go/pull/3303) - Use top level VERSION file when it exists by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3309](https://togithub.com/bazelbuild/rules_go/pull/3309) - synchronize when writing to the JSON converter by [@​rickystewart](https://togithub.com/rickystewart) in [https://github.com/bazelbuild/rules_go/pull/3311](https://togithub.com/bazelbuild/rules_go/pull/3311) - update version manifest URL by [@​benjaminp](https://togithub.com/benjaminp) in [https://github.com/bazelbuild/rules_go/pull/3314](https://togithub.com/bazelbuild/rules_go/pull/3314) - Symlink "misc" into repository for local_sdk. by [@​adam-azarchs](https://togithub.com/adam-azarchs) in [https://github.com/bazelbuild/rules_go/pull/3313](https://togithub.com/bazelbuild/rules_go/pull/3313) - Ensure compatibility with incompatible flags close to flipping by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3319](https://togithub.com/bazelbuild/rules_go/pull/3319) - Add additional bzlmod requirements to allow grpc protobufs to work by [@​shs96c](https://togithub.com/shs96c) in [https://github.com/bazelbuild/rules_go/pull/3320](https://togithub.com/bazelbuild/rules_go/pull/3320) - bzlmod: Update pinned Bazel version by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3321](https://togithub.com/bazelbuild/rules_go/pull/3321) - bzlmod: Set up automated BCR releases by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3324](https://togithub.com/bazelbuild/rules_go/pull/3324) - bzlmod: Add support for gogo proto compiler by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3323](https://togithub.com/bazelbuild/rules_go/pull/3323) - gopackagesdriver: move non-Go files to OtherFiles (Fixes [#​3326](https://togithub.com/bazelbuild/rules_go/issues/3326)) by [@​michaelarusso](https://togithub.com/michaelarusso) in [https://github.com/bazelbuild/rules_go/pull/3327](https://togithub.com/bazelbuild/rules_go/pull/3327) - bzlmod: Allow yanked versions in CI by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3329](https://togithub.com/bazelbuild/rules_go/pull/3329) - feat(pkg-drv): allow setting custom aspect and kinds by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3328](https://togithub.com/bazelbuild/rules_go/pull/3328) - fix(packages-driver): allow defining additional aspects instead by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3330](https://togithub.com/bazelbuild/rules_go/pull/3330) - Add support for parsing Go development versions by [@​zakcutner](https://togithub.com/zakcutner) in [https://github.com/bazelbuild/rules_go/pull/3333](https://togithub.com/bazelbuild/rules_go/pull/3333) - Match GOARCH ppc64 to @​platforms//cpu:ppc as well. by [@​mahiuchun](https://togithub.com/mahiuchun) in [https://github.com/bazelbuild/rules_go/pull/3336](https://togithub.com/bazelbuild/rules_go/pull/3336) - bzlmod: Update Publish to BCR app config by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3337](https://togithub.com/bazelbuild/rules_go/pull/3337) - gopackagesdriver: default to NotHandled:true for package queries by [@​ian-h-chamberlain](https://togithub.com/ian-h-chamberlain) in [https://github.com/bazelbuild/rules_go/pull/3338](https://togithub.com/bazelbuild/rules_go/pull/3338) - fix(packagesdrv): resolve third party go packages by [@​JamyDev](https://togithub.com/JamyDev) in [https://github.com/bazelbuild/rules_go/pull/3332](https://togithub.com/bazelbuild/rules_go/pull/3332) - runfiles: port phst/runfiles to rules_go by [@​sluongng](https://togithub.com/sluongng) in [https://github.com/bazelbuild/rules_go/pull/3205](https://togithub.com/bazelbuild/rules_go/pull/3205) - Adding gc_linopts to command line flag by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3342](https://togithub.com/bazelbuild/rules_go/pull/3342) - Move new runfiles library to `//go/runfiles` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3341](https://togithub.com/bazelbuild/rules_go/pull/3341) - Rename `Path` to `Rlocation` in runfiles library by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3346](https://togithub.com/bazelbuild/rules_go/pull/3346) - Add 'gc_goopts' flag to command line to allow gc_goopts to propagate by [@​LWarrens](https://togithub.com/LWarrens) in [https://github.com/bazelbuild/rules_go/pull/3340](https://togithub.com/bazelbuild/rules_go/pull/3340) #### New Contributors - [@​kmicklas](https://togithub.com/kmicklas) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3276](https://togithub.com/bazelbuild/rules_go/pull/3276) - [@​adam-azarchs](https://togithub.com/adam-azarchs) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3313](https://togithub.com/bazelbuild/rules_go/pull/3313) - [@​shs96c](https://togithub.com/shs96c) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3320](https://togithub.com/bazelbuild/rules_go/pull/3320) - [@​michaelarusso](https://togithub.com/michaelarusso) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3327](https://togithub.com/bazelbuild/rules_go/pull/3327) - [@​zakcutner](https://togithub.com/zakcutner) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3333](https://togithub.com/bazelbuild/rules_go/pull/3333) - [@​mahiuchun](https://togithub.com/mahiuchun) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3336](https://togithub.com/bazelbuild/rules_go/pull/3336) - [@​LWarrens](https://togithub.com/LWarrens) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3340](https://togithub.com/bazelbuild/rules_go/pull/3340) **Full Changelog**: bazel-contrib/rules_go@v0.35.0...v0.36.0 #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "ae013bf35bd23234d1dea46b079f1e05ba74ac0321423830119d3e787ec73483", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.3") </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/kreempuff/rules_unreal_engine). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTcuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNy4xIn0=-->
* always produce .a files at the beginning of a build This change updates rules_go in anticipation for Go 1.20, which will ship without .a files for the standard library. Now, instead of conditionally building the standard library if the configuration differs from the default, the standard library will always be built. In addition, the builder will be built using 'go build' instead of individual invocations of go tool compile/link to avoid needing to bootstrap the standard library before producing the builder. * fix a bad cleanup in stdlib.bzl * redefine transition in terms of what's kept * use go_reset_target for the builder This allows the builder to be built in the same configuration as other targets from //tests/intagration/reproducibility:reproducibility_tests, so the bazel-bin directory doesn't get deleted as it would in a mulit-config build. * remove previosly deleted code that came back in a merge` * fix buildifier issue * try to use tmpdir on WINDOWS * try another way of getting gocache dirs for windows * add output * debug * debug2 * debug 3 * debug 4 * debug 5 * debug 6 * only compile stdlib .a files for Go 1.20+ * set version to 1.20rc1 for CI testing purposes * fix libs attribute of Go sdk to allow zero libs files * fix coverage test * get only digits of the part before the next dot * allow empty * set GOEXPERIMENT=nocoverageredesign * conditionally turn off goexperiment based on versioun * rename variable * fix flag * add lcov fix * address comments, and remove one config of builder * decide to compile .a files based on whether they exist * fix add call * add nocoverageredesign to experiments earlier * another small fix * fix double * Update go/private/sdk.bzl Co-authored-by: Fabian Meumertzheim <[email protected]> * add a simple test doing a build on 1.20rc1 Co-authored-by: Fabian Meumertzheim <[email protected]>
* always produce .a files at the beginning of a build This change updates rules_go in anticipation for Go 1.20, which will ship without .a files for the standard library. Now, instead of conditionally building the standard library if the configuration differs from the default, the standard library will always be built. In addition, the builder will be built using 'go build' instead of individual invocations of go tool compile/link to avoid needing to bootstrap the standard library before producing the builder. * fix a bad cleanup in stdlib.bzl * redefine transition in terms of what's kept * use go_reset_target for the builder This allows the builder to be built in the same configuration as other targets from //tests/intagration/reproducibility:reproducibility_tests, so the bazel-bin directory doesn't get deleted as it would in a mulit-config build. * remove previosly deleted code that came back in a merge` * fix buildifier issue * try to use tmpdir on WINDOWS * try another way of getting gocache dirs for windows * add output * debug * debug2 * debug 3 * debug 4 * debug 5 * debug 6 * only compile stdlib .a files for Go 1.20+ * set version to 1.20rc1 for CI testing purposes * fix libs attribute of Go sdk to allow zero libs files * fix coverage test * get only digits of the part before the next dot * allow empty * set GOEXPERIMENT=nocoverageredesign * conditionally turn off goexperiment based on versioun * rename variable * fix flag * add lcov fix * address comments, and remove one config of builder * decide to compile .a files based on whether they exist * fix add call * add nocoverageredesign to experiments earlier * another small fix * fix double * Update go/private/sdk.bzl Co-authored-by: Fabian Meumertzheim <[email protected]> * add a simple test doing a build on 1.20rc1 Co-authored-by: Fabian Meumertzheim <[email protected]>
* always produce .a files at the beginning of a build This change updates rules_go in anticipation for Go 1.20, which will ship without .a files for the standard library. Now, instead of conditionally building the standard library if the configuration differs from the default, the standard library will always be built. In addition, the builder will be built using 'go build' instead of individual invocations of go tool compile/link to avoid needing to bootstrap the standard library before producing the builder. * fix a bad cleanup in stdlib.bzl * redefine transition in terms of what's kept * use go_reset_target for the builder This allows the builder to be built in the same configuration as other targets from //tests/intagration/reproducibility:reproducibility_tests, so the bazel-bin directory doesn't get deleted as it would in a mulit-config build. * remove previosly deleted code that came back in a merge` * fix buildifier issue * try to use tmpdir on WINDOWS * try another way of getting gocache dirs for windows * add output * debug * debug2 * debug 3 * debug 4 * debug 5 * debug 6 * only compile stdlib .a files for Go 1.20+ * set version to 1.20rc1 for CI testing purposes * fix libs attribute of Go sdk to allow zero libs files * fix coverage test * get only digits of the part before the next dot * allow empty * set GOEXPERIMENT=nocoverageredesign * conditionally turn off goexperiment based on versioun * rename variable * fix flag * add lcov fix * address comments, and remove one config of builder * decide to compile .a files based on whether they exist * fix add call * add nocoverageredesign to experiments earlier * another small fix * fix double * Update go/private/sdk.bzl Co-authored-by: Fabian Meumertzheim <[email protected]> * add a simple test doing a build on 1.20rc1 Co-authored-by: Fabian Meumertzheim <[email protected]>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/bazelbuild/buildtools](https://togithub.com/bazelbuild/buildtools) | require | digest | `180a94a` -> `bf454e7` | | [github.com/bazelbuild/rules_go](https://togithub.com/bazelbuild/rules_go) | require | minor | `v0.37.0` -> `v0.38.0` | | [github.com/onsi/gomega](https://togithub.com/onsi/gomega) | require | minor | `v1.25.0` -> `v1.26.0` | | [golang.org/x/exp](https://togithub.com/golang/exp) | require | digest | `a68e582` -> `b3c2aaf` | | [google.golang.org/genproto](https://togithub.com/googleapis/go-genproto) | require | digest | `9d59e20` -> `dcaf20b` | | [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require | patch | `v1.52.0` -> `v1.52.3` | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.37.0...v0.38.0) #### Breaking changes Starting this release, rules_go requires Bazel 5.3 and golang/x/tools at least 0.3.0. If you are using [stardoc](https://togithub.com/bazelbuild/stardoc), you also need to upgrade it to 0.5.3 to recognize `RunEnvironmentInfo`, which is used in this release. #### Major new features This is the first release to support Go 1.20. When on this version of Go, it is highly recommended to use Bazel 6 and set `--experimental_output_directory_naming_scheme=diff_against_baseline` to prevent certain unnecessary rebuilds. #### What's Changed - preserve intermediate files if `-work` is specified by [@​motiejus](https://togithub.com/motiejus) in [https://github.com/bazelbuild/rules_go/pull/3389](https://togithub.com/bazelbuild/rules_go/pull/3389) - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3392](https://togithub.com/bazelbuild/rules_go/pull/3392) - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3398](https://togithub.com/bazelbuild/rules_go/pull/3398) - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3401](https://togithub.com/bazelbuild/rules_go/pull/3401) - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3404](https://togithub.com/bazelbuild/rules_go/pull/3404) - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [https://github.com/bazelbuild/rules_go/pull/3385](https://togithub.com/bazelbuild/rules_go/pull/3385) - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3410](https://togithub.com/bazelbuild/rules_go/pull/3410) - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3400](https://togithub.com/bazelbuild/rules_go/pull/3400) - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3415](https://togithub.com/bazelbuild/rules_go/pull/3415) - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [https://github.com/bazelbuild/rules_go/pull/3418](https://togithub.com/bazelbuild/rules_go/pull/3418) - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3414](https://togithub.com/bazelbuild/rules_go/pull/3414) - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/rules_go/pull/3356](https://togithub.com/bazelbuild/rules_go/pull/3356) - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3427](https://togithub.com/bazelbuild/rules_go/pull/3427) - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3428](https://togithub.com/bazelbuild/rules_go/pull/3428) #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3399](https://togithub.com/bazelbuild/rules_go/pull/3399) - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3422](https://togithub.com/bazelbuild/rules_go/pull/3422) - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3407](https://togithub.com/bazelbuild/rules_go/pull/3407) - [@​ttpathan](https://togithub.com/ttpathan) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3256](https://togithub.com/bazelbuild/rules_go/pull/3256) **Full Changelog**: bazel-contrib/rules_go@v0.37.0...v0.38.0 </details> <details> <summary>onsi/gomega</summary> ### [`v1.26.0`](https://togithub.com/onsi/gomega/releases/tag/v1.26.0) [Compare Source](https://togithub.com/onsi/gomega/compare/v1.25.0...v1.26.0) #### 1.26.0 ##### Features - When a polled function returns an error, keep track of the actual and report on the matcher state of the last non-errored actual \[[`21f3090`](https://togithub.com/onsi/gomega/commit/21f3090)] - improve eventually failure message output \[[`c530fb3`](https://togithub.com/onsi/gomega/commit/c530fb3)] ##### Fixes - fix several documentation spelling issues \[[`e2eff1f`](https://togithub.com/onsi/gomega/commit/e2eff1f)] </details> <details> <summary>grpc/grpc-go</summary> ### [`v1.52.3`](https://togithub.com/grpc/grpc-go/releases/tag/v1.52.3): Release 1.52.3 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.52.1...v1.52.3) ### Bug Fixes - Fix user-agent version ### [`v1.52.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.52.1): Release 1.52.1 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.52.0...v1.52.1) ### Bug Fixes - grpclb: rename grpclbstate package back to state ([#​5963](https://togithub.com/grpc/grpc-go/issues/5963)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/aspect-build/silo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDkuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExMS4xIn0=--> Signed-off-by: Thulio Ferraz Assis <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Thulio Ferraz Assis <[email protected]>
It seems like golang/go#55953 is aiming to remove Anybody have context on why did we introduce that experiment here and what would it take to adapt to the new design? |
We introduced it because Go changed the way it handles coverage by default. Supporting the new mode is tracked in #3513 and it looks like we might need to work on this sooner rather than later. It is not an easy task though. |
This change updates rules_go in anticipation for Go 1.20, which will ship without .a files for the standard library. Now, instead of conditionally building the standard library if the configuration differs from the default, the standard library will always be built. In addition, the builder will be built using 'go build' instead of individual invocations of go tool compile/link to avoid needing to bootstrap the standard library before producing the builder.
What type of PR is this?
What does this PR do? Why is it needed?
It updates rules_go to run a go install to produce stdlib .a files (which won't be shipped with 1.20). It's necessary to get rules_go working with 1.20.
Which issues(s) does this PR fix?
Fixes #
Other notes for review