Skip to content
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

gopackagesdriver: move and simplify test #3856

Merged
merged 3 commits into from
Mar 13, 2024

Conversation

jayconrod
Copy link
Contributor

What type of PR is this?

Bug fix

What does this PR do? Why is it needed?

Moved //tests/integration/gopackagesdriver:gopackagesdriver_test to //go/tools/gopackagesdriver:gopackagesdriver_test.

Previously the test invoked gopackagesdriver with 'bazel run' in a temporary workspace, which forced Bazel to build it, slowing down the test significantly, especially on Windows. Now, the test embeds the gopackagesdriver library and invokes it directly. The driver still runs in a temporary workspace and still needs to invoke bazel, so the test is still slow, but it's faster than before.

Also, a number of other improvements:

  • gopackagesdriver now sets --consistent_labels if the bazel version is 6.4.0 or later instead of guessing based on the link-stamped rules_go repo name.
  • bazel_testing.BazelCmd now writes --output_user_root to a .bazelrc file instead of passing it to commands. gopackagesdriver invokes bazel directly, so this lets it use the same output root.

Which issues(s) does this PR fix?

For #3805
Prerequisite for test in #3806

Other notes for review

@fmeum
Copy link
Member

fmeum commented Feb 11, 2024

Thanks, slow tests are a pain.

The failing test suggests that there could be some issue related to flags changing between build and config or another command. bazel config just dumps Skyframe state, so any kind of invalidation happening prior to it (e.g. even touching a file) can lead to a failure.

@jayconrod
Copy link
Contributor Author

Hmm, the only thing in this PR that might have affected this test was moving --output_user_root to .bazelrc. I would think that would have no effect on bazel cquery and bazel config. I have noticed that Bazel shuts down after every command in go_bazel_test, maybe because the working directory is next to the exec root. I'd expect bazel config not to work at all, but that should have been an issue earlier.

I actually can't reproduce this: instead, I get

--- FAIL: TestGoBinaryNonGoAttrsAreReset (10.87s)
    hermeticity_test.go:202: bazel build //:main //:helper: Starting local Bazel server and connecting to it...
        Computing main repo mapping:
        WARNING: --enable_bzlmod is set, but no MODULE.bazel file was found at the workspace root. Bazel will create an empty MODULE.bazel file. Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. For more details, please refer to https://github.com/bazelbuild/bazel/issues/18958.       
        Computing main repo mapping:
        Computing main repo mapping:
        Loading:
        Loading: 0 packages loaded
        Analyzing: 2 targets (1 packages loaded, 0 targets configured)
        Analyzing: 2 targets (70 packages loaded, 676 targets configured)
        Analyzing: 2 targets (72 packages loaded, 9952 targets configured)
        Analyzing: 2 targets (72 packages loaded, 9958 targets configured)
        ERROR: C:/_b/zrbrqgaf/external/io_bazel_rules_go/BUILD.bazel:42:7: in stdlib rule @@io_bazel_rules_go//:stdlib:                                         
        Traceback (most recent call last):
                File "C:/_b/zrbrqgaf/external/io_bazel_rules_go/go/private/rules/stdlib.bzl", line 33, column 20, in _stdlib_impl
                        go = go_context(ctx)
                File "C:/_b/zrbrqgaf/external/io_bazel_rules_go/go/private/context.bzl", line 458, column 20, in go_context
                        mode = get_mode(ctx, toolchain, cgo_context_info, go_config_info)
                File "C:/_b/zrbrqgaf/external/io_bazel_rules_go/go/private/mode.bzl", line 112, column 13, in get_mode
                        fail(("linkmode '{}' can't be used when cgo is disabled. Check that pure is not set to \"off\" and that a C/C++ toolchain is configured for " +
        Error in fail: linkmode 'c-archive' can't be used when cgo is disabled. Check that pure is not set to "off" and that a C/C++ toolchain is configured for your current platform. If you defined a custom platform, make sure that it has the @io_bazel_rules_go//go/toolchain:cgo_on constraint value.

That fails on master. So something is more deeply broken. I'll try, but I'm probably not going to have more time to fix it this weekend or in the next two weeks. Okay if we leave these PRs open for a bit?

@JamyDev
Copy link
Contributor

JamyDev commented Feb 13, 2024

Did a quick scan over the code, looks good. I'll do a more thorough review tomorrow.

@jayconrod
Copy link
Contributor Author

All right, tests are green.

The reason why I was seeing hermeticity_test fail on master was that I was missing some environment variables that are set in CI.

After finding those I could reproduce the error, caused by using the wrong output root directory.

go/tools/gopackagesdriver/gopackagesdriver_test.go Outdated Show resolved Hide resolved
@@ -23,7 +23,7 @@ type JSONPackagesDriver struct {
registry *PackageRegistry
}

func NewJSONPackagesDriver(jsonFiles []string, prf PathResolverFunc, bazelVersion string) (*JSONPackagesDriver, error) {
func NewJSONPackagesDriver(jsonFiles []string, prf PathResolverFunc, bazelVersion bazelVersion) (*JSONPackagesDriver, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no function that returns a bazelVersion exposed in this package. This is implicitly making this constructor package private. If that's the intent, can you make the whole thing private newJSONPackagesDriver?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mind if I address that in a follow-up?

This is a main package so nothing can import it, but it has a lot of exported symbols. They all ought to be renamed.

Moved //tests/integration/gopackagesdriver:gopackagesdriver_test
to //go/tools/gopackagesdriver:gopackagesdriver_test.

Previously the test invoked gopackagesdriver with 'bazel run'
in a temporary workspace, which forced Bazel to build it, slowing
down the test significantly, especially on Windows. Now, the test
embeds the gopackagesdriver library and invokes it directly.
The driver still runs in a temporary workspace and still needs to
invoke bazel, so the test is still slow, but it's faster than before.

Also, a number of other improvements:

- gopackagesdriver now sets --consistent_labels if the bazel version
  is 6.4.0 or later instead of guessing based on the link-stamped
  rules_go repo name.
- bazel_testing.BazelCmd now writes --output_user_root to a .bazelrc
  file instead of passing it to commands. gopackagesdriver invokes
  bazel directly, so this lets it use the same output root.
@jayconrod
Copy link
Contributor Author

I'd be grateful if someone can merge this. Google revoked all my powers here when I left, so I'm just a regular citizen now.

@fmeum fmeum enabled auto-merge (squash) March 13, 2024 23:23
@fmeum fmeum merged commit 7538c54 into bazel-contrib:master Mar 13, 2024
2 checks passed
@jayconrod jayconrod deleted the move-gpd-test branch March 13, 2024 23:26
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/bazel-starlib Apr 23, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.46.0` -> `v0.47.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.47.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.47.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.46.0...v0.47.0)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"af47f30e9cbd70ae34e49866e201b3f77069abb111183f2c0297e7e74ba6bbc0",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.2")

#### What's Changed

- Add Bazel version matrix to BCR `presubmit.yml` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3861](https://github.com/bazelbuild/rules_go/pull/3861)
- Update toolchains_llvm URL and hash by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3864](https://github.com/bazelbuild/rules_go/pull/3864)
- pass correct (non `"main"`) importpath to nogo for `main` package by
[@&#8203;Strum355](https://github.com/Strum355) in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- Make exec cfg check for `//go` stricter by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3867](https://github.com/bazelbuild/rules_go/pull/3867)
- Fixes the Bazel CI error by
[@&#8203;sgowroji](https://github.com/sgowroji) in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- \[go_library] add .x file to declared output files in DefaultInfo by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3866](https://github.com/bazelbuild/rules_go/pull/3866)
- Remove Latin-1 workaround on Bazel 6.4.0+ by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- fix sdk download for common execution platforms by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- Bump Go version to 1.21.8 by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3880](https://github.com/bazelbuild/rules_go/pull/3880)
- Update README.rst to point to correct GH release tags by
[@&#8203;dcarney](https://github.com/dcarney) in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- Update bzlmod.md fix typo by
[@&#8203;mmrath](https://github.com/mmrath) in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- Cleanup temp dirs in GoToolchainBinaryBuild by
[@&#8203;hauserx](https://github.com/hauserx) in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- gopackagesdriver: move and simplify test by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3856](https://github.com/bazelbuild/rules_go/pull/3856)
- Support Go version schema change since 1.21 by
[@&#8203;baizhenyu](https://github.com/baizhenyu) in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- gopackagesdriver: fix version check with Bazel development versions by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3893](https://github.com/bazelbuild/rules_go/pull/3893)
- Revert "improving logging for subcommand failure
([#&#8203;3824](https://github.com/bazelbuild/rules_go/issues/3824))"
by [@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3892](https://github.com/bazelbuild/rules_go/pull/3892)
- Replace instances of to_json() method with json.encode(..) by
[@&#8203;c-mita](https://github.com/c-mita) in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- add nogo parsing support for nogo explanations by
[@&#8203;andyscott](https://github.com/andyscott) in
[https://github.com/bazelbuild/rules_go/pull/3899](https://github.com/bazelbuild/rules_go/pull/3899)
- \[nogo] match regexp againts relative paths by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3898](https://github.com/bazelbuild/rules_go/pull/3898)
- Add `bazel_features` transitive `.bzl`s to `bzl_library` targets by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3903](https://github.com/bazelbuild/rules_go/pull/3903)
- Add //go/private:polyfill_bazel_features.bzl to sources. by
[@&#8203;spags-lacework](https://github.com/spags-lacework) in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- Reformat with buildifier by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3910](https://github.com/bazelbuild/rules_go/pull/3910)
- GoLink action. Use -extar <ar path> if cc_toolchain provides ar path
by [@&#8203;OparinE](https://github.com/OparinE) in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)
- Mark `go_sdk` extension as `reproducible` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3911](https://github.com/bazelbuild/rules_go/pull/3911)
- Don't ignore the return value of runfiles.merge_all() by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3918](https://github.com/bazelbuild/rules_go/pull/3918)
- Use Gazelle's `go_env` in `@rules_go//go` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3909](https://github.com/bazelbuild/rules_go/pull/3909)
- Setting test.timeout according to TEST_TIMEOUT by
[@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3920](https://github.com/bazelbuild/rules_go/pull/3920)
- prepare rules_go v 0.47 by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3923](https://github.com/bazelbuild/rules_go/pull/3923)

#### New Contributors

- [@&#8203;Strum355](https://github.com/Strum355) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- [@&#8203;sgowroji](https://github.com/sgowroji) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- [@&#8203;mattyclarkson](https://github.com/mattyclarkson) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- [@&#8203;scaiper](https://github.com/scaiper) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- [@&#8203;dcarney](https://github.com/dcarney) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- [@&#8203;mmrath](https://github.com/mmrath) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- [@&#8203;hauserx](https://github.com/hauserx) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- [@&#8203;baizhenyu](https://github.com/baizhenyu) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- [@&#8203;c-mita](https://github.com/c-mita) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- [@&#8203;spags-lacework](https://github.com/spags-lacework) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- [@&#8203;OparinE](https://github.com/OparinE) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)

**Full Changelog**:
bazel-contrib/rules_go@v0.46.0...v0.47.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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.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 [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
renovate bot referenced this pull request in kreempuff/rules_unreal_engine Apr 23, 2024
[![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://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.46.0` -> `v0.47.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.47.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.47.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.46.0...v0.47.0)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"af47f30e9cbd70ae34e49866e201b3f77069abb111183f2c0297e7e74ba6bbc0",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.2")

#### What's Changed

- Add Bazel version matrix to BCR `presubmit.yml` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3861](https://github.com/bazelbuild/rules_go/pull/3861)
- Update toolchains_llvm URL and hash by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3864](https://github.com/bazelbuild/rules_go/pull/3864)
- pass correct (non `"main"`) importpath to nogo for `main` package by
[@&#8203;Strum355](https://github.com/Strum355) in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- Make exec cfg check for `//go` stricter by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3867](https://github.com/bazelbuild/rules_go/pull/3867)
- Fixes the Bazel CI error by
[@&#8203;sgowroji](https://github.com/sgowroji) in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- \[go_library] add .x file to declared output files in DefaultInfo by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3866](https://github.com/bazelbuild/rules_go/pull/3866)
- Remove Latin-1 workaround on Bazel 6.4.0+ by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- fix sdk download for common execution platforms by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- Bump Go version to 1.21.8 by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3880](https://github.com/bazelbuild/rules_go/pull/3880)
- Update README.rst to point to correct GH release tags by
[@&#8203;dcarney](https://github.com/dcarney) in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- Update bzlmod.md fix typo by
[@&#8203;mmrath](https://github.com/mmrath) in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- Cleanup temp dirs in GoToolchainBinaryBuild by
[@&#8203;hauserx](https://github.com/hauserx) in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- gopackagesdriver: move and simplify test by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3856](https://github.com/bazelbuild/rules_go/pull/3856)
- Support Go version schema change since 1.21 by
[@&#8203;baizhenyu](https://github.com/baizhenyu) in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- gopackagesdriver: fix version check with Bazel development versions by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3893](https://github.com/bazelbuild/rules_go/pull/3893)
- Revert "improving logging for subcommand failure
([#&#8203;3824](https://github.com/bazelbuild/rules_go/issues/3824))"
by [@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3892](https://github.com/bazelbuild/rules_go/pull/3892)
- Replace instances of to_json() method with json.encode(..) by
[@&#8203;c-mita](https://github.com/c-mita) in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- add nogo parsing support for nogo explanations by
[@&#8203;andyscott](https://github.com/andyscott) in
[https://github.com/bazelbuild/rules_go/pull/3899](https://github.com/bazelbuild/rules_go/pull/3899)
- \[nogo] match regexp againts relative paths by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3898](https://github.com/bazelbuild/rules_go/pull/3898)
- Add `bazel_features` transitive `.bzl`s to `bzl_library` targets by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3903](https://github.com/bazelbuild/rules_go/pull/3903)
- Add //go/private:polyfill_bazel_features.bzl to sources. by
[@&#8203;spags-lacework](https://github.com/spags-lacework) in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- Reformat with buildifier by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3910](https://github.com/bazelbuild/rules_go/pull/3910)
- GoLink action. Use -extar <ar path> if cc_toolchain provides ar path
by [@&#8203;OparinE](https://github.com/OparinE) in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)
- Mark `go_sdk` extension as `reproducible` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3911](https://github.com/bazelbuild/rules_go/pull/3911)
- Don't ignore the return value of runfiles.merge_all() by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3918](https://github.com/bazelbuild/rules_go/pull/3918)
- Use Gazelle's `go_env` in `@rules_go//go` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3909](https://github.com/bazelbuild/rules_go/pull/3909)
- Setting test.timeout according to TEST_TIMEOUT by
[@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3920](https://github.com/bazelbuild/rules_go/pull/3920)
- prepare rules_go v 0.47 by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3923](https://github.com/bazelbuild/rules_go/pull/3923)

#### New Contributors

- [@&#8203;Strum355](https://github.com/Strum355) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- [@&#8203;sgowroji](https://github.com/sgowroji) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- [@&#8203;mattyclarkson](https://github.com/mattyclarkson) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- [@&#8203;scaiper](https://github.com/scaiper) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- [@&#8203;dcarney](https://github.com/dcarney) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- [@&#8203;mmrath](https://github.com/mmrath) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- [@&#8203;hauserx](https://github.com/hauserx) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- [@&#8203;baizhenyu](https://github.com/baizhenyu) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- [@&#8203;c-mita](https://github.com/c-mita) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- [@&#8203;spags-lacework](https://github.com/spags-lacework) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- [@&#8203;OparinE](https://github.com/OparinE) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)

**Full Changelog**:
bazel-contrib/rules_go@v0.46.0...v0.47.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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://developer.mend.io/github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
cgrindel-self-hosted-renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Apr 24, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.46.0` -> `v0.47.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.47.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.47.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.46.0...v0.47.0)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"af47f30e9cbd70ae34e49866e201b3f77069abb111183f2c0297e7e74ba6bbc0",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.2")

#### What's Changed

- Add Bazel version matrix to BCR `presubmit.yml` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3861](https://github.com/bazelbuild/rules_go/pull/3861)
- Update toolchains_llvm URL and hash by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3864](https://github.com/bazelbuild/rules_go/pull/3864)
- pass correct (non `"main"`) importpath to nogo for `main` package by
[@&#8203;Strum355](https://github.com/Strum355) in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- Make exec cfg check for `//go` stricter by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3867](https://github.com/bazelbuild/rules_go/pull/3867)
- Fixes the Bazel CI error by
[@&#8203;sgowroji](https://github.com/sgowroji) in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- \[go_library] add .x file to declared output files in DefaultInfo by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3866](https://github.com/bazelbuild/rules_go/pull/3866)
- Remove Latin-1 workaround on Bazel 6.4.0+ by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- fix sdk download for common execution platforms by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- Bump Go version to 1.21.8 by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3880](https://github.com/bazelbuild/rules_go/pull/3880)
- Update README.rst to point to correct GH release tags by
[@&#8203;dcarney](https://github.com/dcarney) in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- Update bzlmod.md fix typo by
[@&#8203;mmrath](https://github.com/mmrath) in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- Cleanup temp dirs in GoToolchainBinaryBuild by
[@&#8203;hauserx](https://github.com/hauserx) in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- gopackagesdriver: move and simplify test by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3856](https://github.com/bazelbuild/rules_go/pull/3856)
- Support Go version schema change since 1.21 by
[@&#8203;baizhenyu](https://github.com/baizhenyu) in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- gopackagesdriver: fix version check with Bazel development versions by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3893](https://github.com/bazelbuild/rules_go/pull/3893)
- Revert "improving logging for subcommand failure
([#&#8203;3824](https://github.com/bazelbuild/rules_go/issues/3824))"
by [@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3892](https://github.com/bazelbuild/rules_go/pull/3892)
- Replace instances of to_json() method with json.encode(..) by
[@&#8203;c-mita](https://github.com/c-mita) in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- add nogo parsing support for nogo explanations by
[@&#8203;andyscott](https://github.com/andyscott) in
[https://github.com/bazelbuild/rules_go/pull/3899](https://github.com/bazelbuild/rules_go/pull/3899)
- \[nogo] match regexp againts relative paths by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3898](https://github.com/bazelbuild/rules_go/pull/3898)
- Add `bazel_features` transitive `.bzl`s to `bzl_library` targets by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3903](https://github.com/bazelbuild/rules_go/pull/3903)
- Add //go/private:polyfill_bazel_features.bzl to sources. by
[@&#8203;spags-lacework](https://github.com/spags-lacework) in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- Reformat with buildifier by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3910](https://github.com/bazelbuild/rules_go/pull/3910)
- GoLink action. Use -extar <ar path> if cc_toolchain provides ar path
by [@&#8203;OparinE](https://github.com/OparinE) in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)
- Mark `go_sdk` extension as `reproducible` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3911](https://github.com/bazelbuild/rules_go/pull/3911)
- Don't ignore the return value of runfiles.merge_all() by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3918](https://github.com/bazelbuild/rules_go/pull/3918)
- Use Gazelle's `go_env` in `@rules_go//go` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3909](https://github.com/bazelbuild/rules_go/pull/3909)
- Setting test.timeout according to TEST_TIMEOUT by
[@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3920](https://github.com/bazelbuild/rules_go/pull/3920)
- prepare rules_go v 0.47 by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3923](https://github.com/bazelbuild/rules_go/pull/3923)

#### New Contributors

- [@&#8203;Strum355](https://github.com/Strum355) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- [@&#8203;sgowroji](https://github.com/sgowroji) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- [@&#8203;mattyclarkson](https://github.com/mattyclarkson) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- [@&#8203;scaiper](https://github.com/scaiper) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- [@&#8203;dcarney](https://github.com/dcarney) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- [@&#8203;mmrath](https://github.com/mmrath) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- [@&#8203;hauserx](https://github.com/hauserx) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- [@&#8203;baizhenyu](https://github.com/baizhenyu) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- [@&#8203;c-mita](https://github.com/c-mita) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- [@&#8203;spags-lacework](https://github.com/spags-lacework) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- [@&#8203;OparinE](https://github.com/OparinE) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)

**Full Changelog**:
bazel-contrib/rules_go@v0.46.0...v0.47.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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.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 [Renovate
Bot](https://github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
fmeum referenced this pull request in bazel-contrib/toolchains_llvm May 2, 2024
[![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://github.com/bazelbuild/rules_go) |
http_archive | minor | `v0.46.0` -> `v0.47.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go (io_bazel_rules_go)</summary>

###
[`v0.47.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.47.0)

[Compare
Source](https://github.com/bazelbuild/rules_go/compare/v0.46.0...v0.47.0)

#### `WORKSPACE` code

load("@&#8203;bazel_tools//tools/build_defs/repo:http.bzl",
"http_archive")

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"af47f30e9cbd70ae34e49866e201b3f77069abb111183f2c0297e7e74ba6bbc0",
        urls = [

"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",

"https://github.com/bazelbuild/rules_go/releases/download/v0.47.0/rules_go-v0.47.0.zip",
        ],
    )

load("@&#8203;io_bazel_rules_go//go:deps.bzl", "go_register_toolchains",
"go_rules_dependencies")

    go_rules_dependencies()

    go_register_toolchains(version = "1.22.2")

#### What's Changed

- Add Bazel version matrix to BCR `presubmit.yml` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3861](https://github.com/bazelbuild/rules_go/pull/3861)
- Update toolchains_llvm URL and hash by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3864](https://github.com/bazelbuild/rules_go/pull/3864)
- pass correct (non `"main"`) importpath to nogo for `main` package by
[@&#8203;Strum355](https://github.com/Strum355) in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- Make exec cfg check for `//go` stricter by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3867](https://github.com/bazelbuild/rules_go/pull/3867)
- Fixes the Bazel CI error by
[@&#8203;sgowroji](https://github.com/sgowroji) in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- \[go_library] add .x file to declared output files in DefaultInfo by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3866](https://github.com/bazelbuild/rules_go/pull/3866)
- Remove Latin-1 workaround on Bazel 6.4.0+ by
[@&#8203;mattyclarkson](https://github.com/mattyclarkson) in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- fix sdk download for common execution platforms by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- Bump Go version to 1.21.8 by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3880](https://github.com/bazelbuild/rules_go/pull/3880)
- Update README.rst to point to correct GH release tags by
[@&#8203;dcarney](https://github.com/dcarney) in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- Update bzlmod.md fix typo by
[@&#8203;mmrath](https://github.com/mmrath) in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- Cleanup temp dirs in GoToolchainBinaryBuild by
[@&#8203;hauserx](https://github.com/hauserx) in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- gopackagesdriver: move and simplify test by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3856](https://github.com/bazelbuild/rules_go/pull/3856)
- Support Go version schema change since 1.21 by
[@&#8203;baizhenyu](https://github.com/baizhenyu) in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- gopackagesdriver: fix version check with Bazel development versions by
[@&#8203;jayconrod](https://github.com/jayconrod) in
[https://github.com/bazelbuild/rules_go/pull/3893](https://github.com/bazelbuild/rules_go/pull/3893)
- Revert "improving logging for subcommand failure
([#&#8203;3824](https://github.com/bazelbuild/rules_go/issues/3824))"
by [@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3892](https://github.com/bazelbuild/rules_go/pull/3892)
- Replace instances of to_json() method with json.encode(..) by
[@&#8203;c-mita](https://github.com/c-mita) in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- add nogo parsing support for nogo explanations by
[@&#8203;andyscott](https://github.com/andyscott) in
[https://github.com/bazelbuild/rules_go/pull/3899](https://github.com/bazelbuild/rules_go/pull/3899)
- \[nogo] match regexp againts relative paths by
[@&#8203;scaiper](https://github.com/scaiper) in
[https://github.com/bazelbuild/rules_go/pull/3898](https://github.com/bazelbuild/rules_go/pull/3898)
- Add `bazel_features` transitive `.bzl`s to `bzl_library` targets by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3903](https://github.com/bazelbuild/rules_go/pull/3903)
- Add //go/private:polyfill_bazel_features.bzl to sources. by
[@&#8203;spags-lacework](https://github.com/spags-lacework) in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- Reformat with buildifier by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3910](https://github.com/bazelbuild/rules_go/pull/3910)
- GoLink action. Use -extar <ar path> if cc_toolchain provides ar path
by [@&#8203;OparinE](https://github.com/OparinE) in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)
- Mark `go_sdk` extension as `reproducible` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3911](https://github.com/bazelbuild/rules_go/pull/3911)
- Don't ignore the return value of runfiles.merge_all() by
[@&#8203;EdSchouten](https://github.com/EdSchouten) in
[https://github.com/bazelbuild/rules_go/pull/3918](https://github.com/bazelbuild/rules_go/pull/3918)
- Use Gazelle's `go_env` in `@rules_go//go` by
[@&#8203;fmeum](https://github.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3909](https://github.com/bazelbuild/rules_go/pull/3909)
- Setting test.timeout according to TEST_TIMEOUT by
[@&#8203;linzhp](https://github.com/linzhp) in
[https://github.com/bazelbuild/rules_go/pull/3920](https://github.com/bazelbuild/rules_go/pull/3920)
- prepare rules_go v 0.47 by
[@&#8203;tyler-french](https://github.com/tyler-french) in
[https://github.com/bazelbuild/rules_go/pull/3923](https://github.com/bazelbuild/rules_go/pull/3923)

#### New Contributors

- [@&#8203;Strum355](https://github.com/Strum355) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3863](https://github.com/bazelbuild/rules_go/pull/3863)
- [@&#8203;sgowroji](https://github.com/sgowroji) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3869](https://github.com/bazelbuild/rules_go/pull/3869)
- [@&#8203;mattyclarkson](https://github.com/mattyclarkson) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3872](https://github.com/bazelbuild/rules_go/pull/3872)
- [@&#8203;scaiper](https://github.com/scaiper) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3874](https://github.com/bazelbuild/rules_go/pull/3874)
- [@&#8203;dcarney](https://github.com/dcarney) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3881](https://github.com/bazelbuild/rules_go/pull/3881)
- [@&#8203;mmrath](https://github.com/mmrath) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3882](https://github.com/bazelbuild/rules_go/pull/3882)
- [@&#8203;hauserx](https://github.com/hauserx) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3885](https://github.com/bazelbuild/rules_go/pull/3885)
- [@&#8203;baizhenyu](https://github.com/baizhenyu) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3891](https://github.com/bazelbuild/rules_go/pull/3891)
- [@&#8203;c-mita](https://github.com/c-mita) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3896](https://github.com/bazelbuild/rules_go/pull/3896)
- [@&#8203;spags-lacework](https://github.com/spags-lacework) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3908](https://github.com/bazelbuild/rules_go/pull/3908)
- [@&#8203;OparinE](https://github.com/OparinE) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3916](https://github.com/bazelbuild/rules_go/pull/3916)

**Full Changelog**:
bazel-contrib/rules_go@v0.46.0...v0.47.0

</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://developer.mend.io/github/bazel-contrib/toolchains_llvm).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants