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

Allow to select Go SDK version from declared SDKs #3303

Merged
merged 1 commit into from Sep 28, 2022

Conversation

ash2k
Copy link
Contributor

@ash2k ash2k commented Sep 20, 2022

What type of PR is this?

Feature

What does this PR do? Why is it needed?

See linked issue.

Which issues(s) does this PR fix?

Fixes #3302.

Other notes for review

go/toolchains.rst Outdated Show resolved Hide resolved
go/private/sdk.bzl Outdated Show resolved Hide resolved
Copy link
Collaborator

@fmeum fmeum left a comment

Choose a reason for hiding this comment

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

This looks pretty good now, thanks.

go/toolchains.rst Show resolved Hide resolved
@linzhp
Copy link
Contributor

linzhp commented Sep 25, 2022

Right now, we have:

It must still be named go_sdk, but this is a temporary limitation that will be removed in the future.

Can we instead remove this limitation, so we can name Go SDK with different names and switch with --@io_bazel_rules_go//go/toolchain:sdk=host_sdk, --@io_bazel_rules_go//go/toolchain:sdk=experimental_sdk, which matches the target name of go_download_sdk, go_wrap_sdk, go_host_sdk and go_local_sdk:

go_wrap_sdk(
    name = "experimental_sdk",
    root_file = "@other_repo//go:README.md",
)

go_host_sdk(
    name = "host_sdk",
    root_file = "@other_repo//go:README.md",
)

@ash2k ash2k requested a review from fmeum September 25, 2022 23:36
@fmeum
Copy link
Collaborator

fmeum commented Sep 27, 2022

@linzhp Wouldn't --extra_toolchains cover the case of selecting a particular toolchain "by name"? Matching by name rather than by label will not work well with Bzlmod, so I'm hesitant to introduce this now.

@ash2k
Copy link
Contributor Author

ash2k commented Sep 28, 2022

Can we merge this please and consider using SDK names for the flag separately? I just really need this feature ASAP. Thank you!

@linzhp linzhp merged commit 3e0fcc4 into bazelbuild:master Sep 28, 2022
@ash2k ash2k deleted the switch_sdk_version branch September 29, 2022 00:02
renovate bot added a commit to cgrindel/rules_swift_package_manager that referenced this pull request Nov 23, 2022
[![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.36.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

###
[`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
[@&#8203;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.

#### What's Changed

- bzlmod: Use register_toolchains by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3290
- Remove unused env_execute by
[@&#8203;kmicklas](https://togithub.com/kmicklas) in
[bazelbuild/rules_go#3276
- Correctly forward InstrumentedFilesInfo from dependencies by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3294
- Parse Go SDK version out of `go version` instead of `VERSION` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3296
- also write test stderr to json (xml) output file by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3300
- Bzlmod: Pin Bazel version in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3301
- Allow to select Go SDK version from declared SDKs by
[@&#8203;ash2k](https://togithub.com/ash2k) in
[bazelbuild/rules_go#3303
- Use top level VERSION file when it exists by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3309
- synchronize when writing to the JSON converter by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3311
- update version manifest URL by
[@&#8203;benjaminp](https://togithub.com/benjaminp) in
[bazelbuild/rules_go#3314
- Symlink "misc" into repository for local_sdk. by
[@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) in
[bazelbuild/rules_go#3313
- Ensure compatibility with incompatible flags close to flipping by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3319
- Add additional bzlmod requirements to allow grpc protobufs to work by
[@&#8203;shs96c](https://togithub.com/shs96c) in
[bazelbuild/rules_go#3320
- bzlmod: Update pinned Bazel version by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3321
- bzlmod: Set up automated BCR releases by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3324
- bzlmod: Add support for gogo proto compiler by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3323
- gopackagesdriver: move non-Go files to OtherFiles (Fixes
[#&#8203;3326](https://togithub.com/bazelbuild/rules_go/issues/3326)) by
[@&#8203;michaelarusso](https://togithub.com/michaelarusso) in
[bazelbuild/rules_go#3327
- bzlmod: Allow yanked versions in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3329
- feat(pkg-drv): allow setting custom aspect and kinds by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3328
- fix(packages-driver): allow defining additional aspects instead by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3330
- Add support for parsing Go development versions by
[@&#8203;zakcutner](https://togithub.com/zakcutner) in
[bazelbuild/rules_go#3333
- Match GOARCH ppc64 to @&#8203;platforms//cpu:ppc as well. by
[@&#8203;mahiuchun](https://togithub.com/mahiuchun) in
[bazelbuild/rules_go#3336
- bzlmod: Update Publish to BCR app config by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3337
- gopackagesdriver: default to NotHandled:true for package queries by
[@&#8203;ian-h-chamberlain](https://togithub.com/ian-h-chamberlain) in
[bazelbuild/rules_go#3338
- fix(packagesdrv): resolve third party go packages by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3332
- runfiles: port phst/runfiles to rules_go by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3205
- Adding gc_linopts to command line flag by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3342
- Move new runfiles library to `//go/runfiles` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3341
- Rename `Path` to `Rlocation` in runfiles library by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3346
- Add 'gc_goopts' flag to command line to allow gc_goopts to propagate
by [@&#8203;LWarrens](https://togithub.com/LWarrens) in
[bazelbuild/rules_go#3340

#### New Contributors

- [@&#8203;kmicklas](https://togithub.com/kmicklas) made their first
contribution in
[bazelbuild/rules_go#3276
- [@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) made their
first contribution in
[bazelbuild/rules_go#3313
- [@&#8203;shs96c](https://togithub.com/shs96c) made their first
contribution in
[bazelbuild/rules_go#3320
- [@&#8203;michaelarusso](https://togithub.com/michaelarusso) made their
first contribution in
[bazelbuild/rules_go#3327
- [@&#8203;zakcutner](https://togithub.com/zakcutner) made their first
contribution in
[bazelbuild/rules_go#3333
- [@&#8203;mahiuchun](https://togithub.com/mahiuchun) made their first
contribution in
[bazelbuild/rules_go#3336
- [@&#8203;LWarrens](https://togithub.com/LWarrens) made their first
contribution in
[bazelbuild/rules_go#3340

**Full Changelog**:
bazelbuild/rules_go@v0.35.0...v0.36.0

#### `WORKSPACE` code

load("@&#8203;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("@&#8203;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**: 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/swift_bazel).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4zMC40IiwidXBkYXRlZEluVmVyIjoiMzQuMzAuNCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to cgrindel/bazel-starlib that referenced this pull request Nov 23, 2022
[![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.36.0` |

---

### Release Notes

<details>
<summary>bazelbuild/rules_go</summary>

###
[`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
[@&#8203;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.

#### What's Changed

- bzlmod: Use register_toolchains by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3290
- Remove unused env_execute by
[@&#8203;kmicklas](https://togithub.com/kmicklas) in
[bazelbuild/rules_go#3276
- Correctly forward InstrumentedFilesInfo from dependencies by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3294
- Parse Go SDK version out of `go version` instead of `VERSION` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3296
- also write test stderr to json (xml) output file by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3300
- Bzlmod: Pin Bazel version in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3301
- Allow to select Go SDK version from declared SDKs by
[@&#8203;ash2k](https://togithub.com/ash2k) in
[bazelbuild/rules_go#3303
- Use top level VERSION file when it exists by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3309
- synchronize when writing to the JSON converter by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3311
- update version manifest URL by
[@&#8203;benjaminp](https://togithub.com/benjaminp) in
[bazelbuild/rules_go#3314
- Symlink "misc" into repository for local_sdk. by
[@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) in
[bazelbuild/rules_go#3313
- Ensure compatibility with incompatible flags close to flipping by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3319
- Add additional bzlmod requirements to allow grpc protobufs to work by
[@&#8203;shs96c](https://togithub.com/shs96c) in
[bazelbuild/rules_go#3320
- bzlmod: Update pinned Bazel version by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3321
- bzlmod: Set up automated BCR releases by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3324
- bzlmod: Add support for gogo proto compiler by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3323
- gopackagesdriver: move non-Go files to OtherFiles (Fixes
[#&#8203;3326](https://togithub.com/bazelbuild/rules_go/issues/3326)) by
[@&#8203;michaelarusso](https://togithub.com/michaelarusso) in
[bazelbuild/rules_go#3327
- bzlmod: Allow yanked versions in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3329
- feat(pkg-drv): allow setting custom aspect and kinds by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3328
- fix(packages-driver): allow defining additional aspects instead by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3330
- Add support for parsing Go development versions by
[@&#8203;zakcutner](https://togithub.com/zakcutner) in
[bazelbuild/rules_go#3333
- Match GOARCH ppc64 to @&#8203;platforms//cpu:ppc as well. by
[@&#8203;mahiuchun](https://togithub.com/mahiuchun) in
[bazelbuild/rules_go#3336
- bzlmod: Update Publish to BCR app config by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3337
- gopackagesdriver: default to NotHandled:true for package queries by
[@&#8203;ian-h-chamberlain](https://togithub.com/ian-h-chamberlain) in
[bazelbuild/rules_go#3338
- fix(packagesdrv): resolve third party go packages by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3332
- runfiles: port phst/runfiles to rules_go by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3205
- Adding gc_linopts to command line flag by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3342
- Move new runfiles library to `//go/runfiles` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3341
- Rename `Path` to `Rlocation` in runfiles library by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3346
- Add 'gc_goopts' flag to command line to allow gc_goopts to propagate
by [@&#8203;LWarrens](https://togithub.com/LWarrens) in
[bazelbuild/rules_go#3340

#### New Contributors

- [@&#8203;kmicklas](https://togithub.com/kmicklas) made their first
contribution in
[bazelbuild/rules_go#3276
- [@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) made their
first contribution in
[bazelbuild/rules_go#3313
- [@&#8203;shs96c](https://togithub.com/shs96c) made their first
contribution in
[bazelbuild/rules_go#3320
- [@&#8203;michaelarusso](https://togithub.com/michaelarusso) made their
first contribution in
[bazelbuild/rules_go#3327
- [@&#8203;zakcutner](https://togithub.com/zakcutner) made their first
contribution in
[bazelbuild/rules_go#3333
- [@&#8203;mahiuchun](https://togithub.com/mahiuchun) made their first
contribution in
[bazelbuild/rules_go#3336
- [@&#8203;LWarrens](https://togithub.com/LWarrens) made their first
contribution in
[bazelbuild/rules_go#3340

**Full Changelog**:
bazelbuild/rules_go@v0.35.0...v0.36.0

#### `WORKSPACE` code

load("@&#8203;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("@&#8203;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**: 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:eyJjcmVhdGVkSW5WZXIiOiIzNC4zMC40IiwidXBkYXRlZEluVmVyIjoiMzQuMzAuNCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kreempuff added a commit to kreempuff/rules_unreal_engine that referenced this pull request Jan 31, 2023
[![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
([#&#8203;3432](https://togithub.com/bazelbuild/rules_go/issues/3432))
for now to make rules_go upgrades easier.

#### `WORKSPACE` code

load("@&#8203;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("@&#8203;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**:
bazelbuild/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
[@&#8203;motiejus](https://togithub.com/motiejus) in
[bazelbuild/rules_go#3389
- Adapt `lcov_coverage_test` to `exec.Command` change by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3392
- explicitly build relative path for Tool command in lcov_coverage_test
by [@&#8203;matloob](https://togithub.com/matloob) in
[bazelbuild/rules_go#3399
- Add support for building with boringcrypto by
[@&#8203;matloob](https://togithub.com/matloob) in
[bazelbuild/rules_go#3398
- Generalize `boringcrypto` to `GOEXPERIMENT` support by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3401
- Replace `cfg = "host"` with `cfg = "exec"` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3404
- always produce .a files at the beginning of a build by
[@&#8203;matloob](https://togithub.com/matloob) in
[bazelbuild/rules_go#3385
- Mark `nogo` targets as `manual` to keep top-level symlinks by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3410
- Refactoring the extld related logic by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3400
- Fix incompatible flags not applied to integration tests by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3415
- chore: remove experimental warning from bzlmod module by
[@&#8203;alexeagle](https://togithub.com/alexeagle) in
[bazelbuild/rules_go#3418
- Add a clarifying error about dependency cycle found for internal tests
by [@&#8203;yushan26](https://togithub.com/yushan26) in
[bazelbuild/rules_go#3422
- Do not use exec paths for rundir by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3414
- Upgrade org_golang_x_tools to 0.5.0 by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3356
- fix: Relative path of embedsrc by
[@&#8203;bakjos](https://togithub.com/bakjos) in
[bazelbuild/rules_go#3407
- Add support for env_inherit by
[@&#8203;ttpathan](https://togithub.com/ttpathan) in
[bazelbuild/rules_go#3256
- Update stardoc to 0.5.3 by [@&#8203;fmeum](https://togithub.com/fmeum)
in
[bazelbuild/rules_go#3427
- Add `env` attribute to `go_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3428

#### New Contributors

- [@&#8203;matloob](https://togithub.com/matloob) made their first
contribution in
[bazelbuild/rules_go#3399
- [@&#8203;yushan26](https://togithub.com/yushan26) made their first
contribution in
[bazelbuild/rules_go#3422
- [@&#8203;bakjos](https://togithub.com/bakjos) made their first
contribution in
[bazelbuild/rules_go#3407
- [@&#8203;ttpathan](https://togithub.com/ttpathan) made their first
contribution in
[bazelbuild/rules_go#3256

**Full Changelog**:
bazelbuild/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
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3359
- Declare toolchains in a separate repository by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[bazelbuild/rules_go#3348
- Delete legacy actions API by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3173
- go_path: support go:embed of generated files by
[@&#8203;S-Chan](https://togithub.com/S-Chan) in
[bazelbuild/rules_go#3285
- Properly deprecate `bindata`, `go_embed_data`, and
`go_embed_data_deps` by [@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3362
- link.bzl: ignore duplicate dep on coverdata by
[@&#8203;robfig](https://togithub.com/robfig) in
[bazelbuild/rules_go#3032
- feat(pkg-drv): add support for generated files by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3354
- Remove unused variables in link action by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3367
- Reduce number of declared files in `emit_stdlib` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3366
- Update docs regarding vendored proto files by
[@&#8203;garymm](https://togithub.com/garymm) in
[bazelbuild/rules_go#3360
- go link: use external linker when in race mode by
[@&#8203;motiejus](https://togithub.com/motiejus) in
[bazelbuild/rules_go#3370
- Adding first example by
[@&#8203;chrislovecnm](https://togithub.com/chrislovecnm) in
[bazelbuild/rules_go#3317
- fix(packagesdriver): bazelFlags should prefix the command by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3371
- chore(gpd): export aspect utils for reusability by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3373
- nogo: Add a \_base key to be a default config for all Analyzers. by
[@&#8203;DolceTriade](https://togithub.com/DolceTriade) in
[bazelbuild/rules_go#3351
- Document that `Rlocation` can return relative paths by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3377
- Fix normalization check for `Rlocation` path by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3378
- fix(gpd): Write large target patterns to file by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3372
- Make Go runfiles library repo mapping aware by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3347

#### New Contributors

- [@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) made their first
contribution in
[bazelbuild/rules_go#3348
- [@&#8203;S-Chan](https://togithub.com/S-Chan) made their first
contribution in
[bazelbuild/rules_go#3285
- [@&#8203;garymm](https://togithub.com/garymm) made their first
contribution in
[bazelbuild/rules_go#3360
- [@&#8203;motiejus](https://togithub.com/motiejus) made their first
contribution in
[bazelbuild/rules_go#3370
- [@&#8203;chrislovecnm](https://togithub.com/chrislovecnm) made their
first contribution in
[bazelbuild/rules_go#3317
- [@&#8203;DolceTriade](https://togithub.com/DolceTriade) made their
first contribution in
[bazelbuild/rules_go#3351

**Full Changelog**:
bazelbuild/rules_go@v0.36.0...v0.37.0

#### `WORKSPACE` code

load("@&#8203;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("@&#8203;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
[@&#8203;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
`--@&#8203;io_bazel_rules_go//go/config:gc_goopts` and
`--@&#8203;io_bazel_rules_go//go/config:gc_linkopts` to accept
additional compiler and linker flags.

#### What's Changed

- bzlmod: Use register_toolchains by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3290
- Remove unused env_execute by
[@&#8203;kmicklas](https://togithub.com/kmicklas) in
[bazelbuild/rules_go#3276
- Correctly forward InstrumentedFilesInfo from dependencies by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3294
- Parse Go SDK version out of `go version` instead of `VERSION` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3296
- also write test stderr to json (xml) output file by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3300
- Bzlmod: Pin Bazel version in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3301
- Allow to select Go SDK version from declared SDKs by
[@&#8203;ash2k](https://togithub.com/ash2k) in
[bazelbuild/rules_go#3303
- Use top level VERSION file when it exists by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3309
- synchronize when writing to the JSON converter by
[@&#8203;rickystewart](https://togithub.com/rickystewart) in
[bazelbuild/rules_go#3311
- update version manifest URL by
[@&#8203;benjaminp](https://togithub.com/benjaminp) in
[bazelbuild/rules_go#3314
- Symlink "misc" into repository for local_sdk. by
[@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) in
[bazelbuild/rules_go#3313
- Ensure compatibility with incompatible flags close to flipping by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3319
- Add additional bzlmod requirements to allow grpc protobufs to work by
[@&#8203;shs96c](https://togithub.com/shs96c) in
[bazelbuild/rules_go#3320
- bzlmod: Update pinned Bazel version by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3321
- bzlmod: Set up automated BCR releases by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3324
- bzlmod: Add support for gogo proto compiler by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3323
- gopackagesdriver: move non-Go files to OtherFiles (Fixes
[#&#8203;3326](https://togithub.com/bazelbuild/rules_go/issues/3326)) by
[@&#8203;michaelarusso](https://togithub.com/michaelarusso) in
[bazelbuild/rules_go#3327
- bzlmod: Allow yanked versions in CI by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3329
- feat(pkg-drv): allow setting custom aspect and kinds by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3328
- fix(packages-driver): allow defining additional aspects instead by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3330
- Add support for parsing Go development versions by
[@&#8203;zakcutner](https://togithub.com/zakcutner) in
[bazelbuild/rules_go#3333
- Match GOARCH ppc64 to @&#8203;platforms//cpu:ppc as well. by
[@&#8203;mahiuchun](https://togithub.com/mahiuchun) in
[bazelbuild/rules_go#3336
- bzlmod: Update Publish to BCR app config by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3337
- gopackagesdriver: default to NotHandled:true for package queries by
[@&#8203;ian-h-chamberlain](https://togithub.com/ian-h-chamberlain) in
[bazelbuild/rules_go#3338
- fix(packagesdrv): resolve third party go packages by
[@&#8203;JamyDev](https://togithub.com/JamyDev) in
[bazelbuild/rules_go#3332
- runfiles: port phst/runfiles to rules_go by
[@&#8203;sluongng](https://togithub.com/sluongng) in
[bazelbuild/rules_go#3205
- Adding gc_linopts to command line flag by
[@&#8203;linzhp](https://togithub.com/linzhp) in
[bazelbuild/rules_go#3342
- Move new runfiles library to `//go/runfiles` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3341
- Rename `Path` to `Rlocation` in runfiles library by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[bazelbuild/rules_go#3346
- Add 'gc_goopts' flag to command line to allow gc_goopts to propagate
by [@&#8203;LWarrens](https://togithub.com/LWarrens) in
[bazelbuild/rules_go#3340

#### New Contributors

- [@&#8203;kmicklas](https://togithub.com/kmicklas) made their first
contribution in
[bazelbuild/rules_go#3276
- [@&#8203;adam-azarchs](https://togithub.com/adam-azarchs) made their
first contribution in
[bazelbuild/rules_go#3313
- [@&#8203;shs96c](https://togithub.com/shs96c) made their first
contribution in
[bazelbuild/rules_go#3320
- [@&#8203;michaelarusso](https://togithub.com/michaelarusso) made their
first contribution in
[bazelbuild/rules_go#3327
- [@&#8203;zakcutner](https://togithub.com/zakcutner) made their first
contribution in
[bazelbuild/rules_go#3333
- [@&#8203;mahiuchun](https://togithub.com/mahiuchun) made their first
contribution in
[bazelbuild/rules_go#3336
- [@&#8203;LWarrens](https://togithub.com/LWarrens) made their first
contribution in
[bazelbuild/rules_go#3340

**Full Changelog**:
bazelbuild/rules_go@v0.35.0...v0.36.0

#### `WORKSPACE` code

load("@&#8203;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("@&#8203;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=-->
@zakcutner
Copy link
Contributor

@linzhp Wouldn't --extra_toolchains cover the case of selecting a particular toolchain "by name"? Matching by name rather than by label will not work well with Bzlmod, so I'm hesitant to introduce this now.

@fmeum Sorry to ping you on an old PR, I wanted to check if I was understanding your suggestion properly before opening a new issue. I'm facing the same problem where I want to force a different toolchain to be used by passing a flag, and I'm not sure --extra_toolchains would cover this use case.

# WORKSPACE

...

go_download_sdk(
    name = "go_sdk",
    version = "1.21.1",
)

go_wrap_sdk(
    name = "patched_go_sdk",
    register_toolchains = False,
    root_file = "@patched_go//:README.md",
)

...

I think bazel build --extra_toolchains=@patched_go_sdk_toolchains//:go_darwin_amd64 ... does not quite work how I would need, since it would enable both go_sdk and patched_go_sdk (and Bazel would choose somehow between the two) rather than enforcing that patched_go_sdk is used over go_sdk?

In addition, I think there's no way to have a flag with this method that works in general across platforms that I could add to my project's .bazelrc file, i.e. I would need to specify --extra_toolchains=@patched_go_sdk_toolchains//:go_linux_arm64 on ARM64 Linux?

@fmeum
Copy link
Collaborator

fmeum commented Sep 27, 2023

I think bazel build --extra_toolchains=@patched_go_sdk_toolchains//:go_darwin_amd64 ... does not quite work how I would need, since it would enable both go_sdk and patched_go_sdk (and Bazel would choose somehow between the two) rather than enforcing that patched_go_sdk is used over go_sdk?

Enabling (i.e., "registering") both go_sdk and patched_go_sdk is totally fine. Bazel tries all toolchains in a specified order and those listed in --extra_toolchains always come first. Assuming both go_sdk and patched_go_sdk match the required platform constraints, patched_go_sdk will be preferred with that command-line flag (and not used without it).

In addition, I think there's no way to have a flag with this method that works in general across platforms that I could add to my project's .bazelrc file, i.e. I would need to specify --extra_toolchains=@patched_go_sdk_toolchains//:go_linux_arm64 on ARM64 Linux?

You should be able to specify --extra_toolchains=@patched_go_sdk_toolchains//:all to register all the different platform variants of the given toolchain.

@zakcutner
Copy link
Contributor

@fmeum Thanks so much for the quick response, that works great for my use case!

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.

Support host SDK in toolchain:sdk_version command-line flag
4 participants