Skip to content

Conversation

@malt3
Copy link
Contributor

@malt3 malt3 commented Feb 13, 2023

What type of PR is this?

Feature

What does this PR do? Why is it needed?

Implements the "all:" prefix for //go:embed directives. From Go docs:

If a pattern begins with the prefix ‘all:’, then the rule for walking directories is changed to include those files beginning with ‘.’ or ‘_’. For example, ‘all:image’ embeds both ‘image/.tempfile’ and ‘image/dir/.tempfile’.

Which issues(s) does this PR fix?

Fixes #3441

Other notes for review

Copy link
Member

@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.

Thanks, looks good!

On last thing: I just noticed that the Go docs only ever mention files starting with . and _ - do you know whether some/_hidden/file would be included also without all:... with the standard Go toolchain?

@malt3
Copy link
Contributor Author

malt3 commented Feb 13, 2023

On last thing: I just noticed that the Go docs only ever mention files starting with . and _ - do you know whether some/_hidden/file would be included also without all:... with the standard Go toolchain?

The Go docs seem to be correct! Any directories are always included (including those starting with . or _). Should I fix the behavior of rules_go to follow this more closely?

@fmeum
Copy link
Member

fmeum commented Feb 13, 2023

That would be great, yes. Could you keep that change in a separate commit?

@linzhp @achew22 Do you have any backwards compatibility concerns?

@malt3
Copy link
Contributor Author

malt3 commented Feb 13, 2023

A correct implementation should closely follow https://cs.opensource.google/go/go/+/master:src/cmd/go/internal/load/pkg.go;l=2045;drc=2f2c5e41e7728cae99abd14e8bd5ffcfebf9df8e

I do want to get there but I feel like we would need to change the implementation more drastically to get it to be correct.

Additional edge cases I found:

I don't have the time available to implement this behavior correctly.

@fmeum
Copy link
Member

fmeum commented Feb 13, 2023

Thanks for collecting the pointers, that's already very helpful.

Given that you uncovered a number of places in which we (unknowingly) deviate from the native toolchain, let's just keep the scope of this PR limited to all: support. I certainly won't ask you to fix any of these existing issues and adding all: won't make them worse (with one exception, see below).

How do you feel about doing the following as part of this PR?

  1. Add excludes for ".bzr", ".hg", ".git", and ".svn", so that users of all: don't accidentally pick up their version control metadata when they wouldn't with the native Go toolchain.
  2. Add the list in your last comment as a TODO to the code.

Let me know if you think that you won't have the time for it and we can consider merging as is.

@malt3
Copy link
Contributor Author

malt3 commented Feb 13, 2023

  1. Add excludes for ".bzr", ".hg", ".git", and ".svn", so that users of all: don't accidentally pick up their version control metadata when they wouldn't with the native Go toolchain.
    Add the list in your last comment as a TODO to the code
  2. Add the list in your last comment as a TODO to the code.

I'll do that. Thanks for the quick responses!

@linzhp
Copy link
Contributor

linzhp commented Feb 14, 2023

Do you have any backwards compatibility concerns?
No. I don't see a backward-compatibility issue here.

…ng embedded

Also added TODOs documenting deviations from the native toolchain implementation
@malt3
Copy link
Contributor Author

malt3 commented Feb 14, 2023

I implemented excludes for ".bzr", ".hg", ".git", and ".svn" and added TODOs.
I also noticed that the current implementation is already correct when it comes to the inclusion of hidden leaf nodes that I thought was not correct at first:

Hidden files can be conditionally in-/excluded based on if the folder name is given with a glob or not
given the folder a and the file a/.hidden, the directive //go:embed a would exclude the file, while //go:embed a/* would include the file.

This works in the same way that it does for the native toolchain.

@fmeum
Copy link
Member

fmeum commented Feb 14, 2023

Thanks! I added the links to the comments. This is good to go now.

@fmeum fmeum merged commit afbd9c4 into bazel-contrib:master Feb 14, 2023
dilyevsky pushed a commit to apoxy-dev/rules_go that referenced this pull request Mar 16, 2023
* Handle "all:" prefix for go:embed

* lint go/tools/builders

* embedcfg: prevent bad names including folders from known VCS from being embedded

Also added TODOs documenting deviations from the native toolchain implementation

* Apply suggestions from code review

---------

Co-authored-by: Fabian Meumertzheim <[email protected]>
renovate bot referenced this pull request in cgrindel/bazel-starlib Mar 29, 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.38.1` -> `v0.39.0` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in cgrindel/rules_swift_package_manager Mar 29, 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.38.1` -> `v0.39.0` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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/swift_bazel).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in kreempuff/rules_unreal_engine Apr 15, 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.38.1` -> `v0.39.0` |

---

### ⚠ 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.39.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.39.0)

[Compare
Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.1...v0.39.0)

#### `WORKSPACE` code

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

    http_archive(
        name = "io_bazel_rules_go",
sha256 =
"6b65cb7917b4d1709f9410ffe00ecf3e160edf674b78c54a894471320862184f",
        urls = [

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

"https://github.com/bazelbuild/rules_go/releases/download/v0.39.0/rules_go-v0.39.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.20.2")

#### What's Changed

- Make the toolchain's `go` binary available as a target by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3429](https://togithub.com/bazelbuild/rules_go/pull/3429)
- add bazel test rule for excluded packages in popular_repos by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- change build test name from 'need_test' to 'build_only' by
[@&#8203;uberzzr](https://togithub.com/uberzzr) in
[https://github.com/bazelbuild/rules_go/pull/3449](https://togithub.com/bazelbuild/rules_go/pull/3449)
- fix a grammer issue by
[@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- go: support "all:" prefix for "go:embed" directives by
[@&#8203;malt3](https://togithub.com/malt3) in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- Remove `filter_transition_label` workaround by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3438](https://togithub.com/bazelbuild/rules_go/pull/3438)
- Extract generated code from BUILD.toolchains.bazel into a macro by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3439](https://togithub.com/bazelbuild/rules_go/pull/3439)
- bzlmod: Prohibit undesirable SDK registrations in non-root modules by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3440](https://togithub.com/bazelbuild/rules_go/pull/3440)
- update links to gazelle docs by
[@&#8203;garymm](https://togithub.com/garymm) in
[https://github.com/bazelbuild/rules_go/pull/3464](https://togithub.com/bazelbuild/rules_go/pull/3464)
- bzlmod: Improve SDK registration by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3443](https://togithub.com/bazelbuild/rules_go/pull/3443)
- Expand locations in `x_defs` values by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3473](https://togithub.com/bazelbuild/rules_go/pull/3473)
- Make `//go` usable in scripts run with `bazel run` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3474](https://togithub.com/bazelbuild/rules_go/pull/3474)
- Avoid repository rule restarts in go_sdk by
[@&#8203;jfirebaugh](https://togithub.com/jfirebaugh) in
[https://github.com/bazelbuild/rules_go/pull/3478](https://togithub.com/bazelbuild/rules_go/pull/3478)
- bzlmod: Test BCR test module on all platforms by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3479](https://togithub.com/bazelbuild/rules_go/pull/3479)
- Improve error when linkmode requires cgo by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3482](https://togithub.com/bazelbuild/rules_go/pull/3482)
- Rename `error` script in `go_cross_binary` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3481](https://togithub.com/bazelbuild/rules_go/pull/3481)
- Only infer platforms from crosstool/cpu if at default by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3485](https://togithub.com/bazelbuild/rules_go/pull/3485)
- Add missing darwin CPUs to apple matcher by
[@&#8203;keith](https://togithub.com/keith) in
[https://github.com/bazelbuild/rules_go/pull/3461](https://togithub.com/bazelbuild/rules_go/pull/3461)
- Canonicalize tags before transitioning by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3484](https://togithub.com/bazelbuild/rules_go/pull/3484)
- Keep build tags that affect the stdlib build by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3488](https://togithub.com/bazelbuild/rules_go/pull/3488)
- Quote `CC` if it contains whitespace by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3491](https://togithub.com/bazelbuild/rules_go/pull/3491)
- Disable cgo by default with unsupported compilers by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3493](https://togithub.com/bazelbuild/rules_go/pull/3493)
- Only install `runtime/cgo` with `pure = False` by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3492](https://togithub.com/bazelbuild/rules_go/pull/3492)
- Use `ctx.readdir` instead of `ls` for SDK platform detection by
[@&#8203;fmeum](https://togithub.com/fmeum) in
[https://github.com/bazelbuild/rules_go/pull/3497](https://togithub.com/bazelbuild/rules_go/pull/3497)

#### New Contributors

- [@&#8203;uberzzr](https://togithub.com/uberzzr) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3447](https://togithub.com/bazelbuild/rules_go/pull/3447)
- [@&#8203;Longchuanzheng](https://togithub.com/Longchuanzheng) made
their first contribution in
[https://github.com/bazelbuild/rules_go/pull/3451](https://togithub.com/bazelbuild/rules_go/pull/3451)
- [@&#8203;malt3](https://togithub.com/malt3) made their first
contribution in
[https://github.com/bazelbuild/rules_go/pull/3455](https://togithub.com/bazelbuild/rules_go/pull/3455)
- [@&#8203;tyler-french](https://togithub.com/tyler-french) made their
first contribution in
[https://github.com/bazelbuild/rules_go/pull/3495](https://togithub.com/bazelbuild/rules_go/pull/3495)

**Full Changelog**:
bazel-contrib/rules_go@v0.38.0...v0.39.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://app.renovatebot.com/dashboard#github/kreempuff/rules_unreal_engine).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->
tingilee pushed a commit to tingilee/rules_go that referenced this pull request Jul 19, 2023
* Handle "all:" prefix for go:embed

* lint go/tools/builders

* embedcfg: prevent bad names including folders from known VCS from being embedded

Also added TODOs documenting deviations from the native toolchain implementation

* Apply suggestions from code review

---------

Co-authored-by: Fabian Meumertzheim <[email protected]>
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.

embedsrcs not correctly used when using all: prefixed patterns of go:embed

3 participants