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
fix: Relative path of embedsrc #3407
Conversation
0efce3a
to
b953dbb
Compare
b953dbb
to
6081a9f
Compare
Thanks for looking into this in detail! Could you add a test case similar to the one that the PR added that ended up breaking your use case? Path meddling gets tricky and we don't want to break this again. |
@fmeum Thanks for the quick response, I added one test and it fails if you discard the change on the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding tests!
Could you expand on the case that still isn't handled correctly?
go/private/tools/path.bzl
Outdated
@@ -77,7 +77,8 @@ def _go_path_impl(ctx): | |||
src_dir = None | |||
|
|||
for f in pkg.srcs: | |||
src_dir = f.dirname | |||
if src_dir == None: | |||
src_dir = f.dirname |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not very familiar with go_path
. Could you explain why using the first rather than the last source directory is the correct choice?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, as you can see here https://github.com/bazelbuild/rules_go/blob/master/go/private/context.bzl#L237, the attr.srcs
files are added before the generated_srcs
which means the relative paths are always first, the unsolved case is when all the files are coming from the generated_srcs
and attr_srcs
is empty because none of the files is relative
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes sense, thanks for the pointer.
Could it be that the root of the problem is that we are separately storing all the potential roots (dirnames of source files) and potentially embedded files (embedsrcs) but not the association between the two (which dirnames of sources were present on the target that defined a particular embedsrc). It seems to me that the correct approach could be to store this association in the provider and then make all embedsrcs
of a particular target relative to all dirnames of source files of that target.
@bakjos What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fmeum Took some days off but added a new test case for generated sources only and a root dir per GoSource and seems to work
bc18d6c
to
e85024c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you provide a minimal reproduction of the bug in #3405 to help me understand the situation? The test case in this PR seem to indicate that you are trying to embed a generated text file into a generated Go file?
@linzhp Thanks for the comments. Yes, the issue is when including an embedded file from a generated source, the reproduction is basically what I did on the test, so if you take the tests I added and try to execute them in the current version of the library it will fail |
97e0d8b
to
f3f0e73
Compare
f3f0e73
to
7d46e75
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am trying to see if we can simplify tests
embed_declarations += "//go:embed {0}\nvar embeddedSource{1} string\n".format(f.basename, i) | ||
i += 1 | ||
|
||
go.actions.write(src, "package " + libname + "\n" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you use expand_template instead? It's much harder to read with all the escapes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made some changes to improve the readability, expand_template would not entirely help with it, hope this works
toolchains = ["@io_bazel_rules_go//go:toolchain"], | ||
) | ||
|
||
def _gen_main_src_impl(ctx): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It appears that the generation of the main.go is not required to cover the scenario. Can you rewrite the test to create go_path from the _gen_library
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I’m not following, the issue happens when using the go_path
including a generated library, so it needs to be called outside the _gen_library, and yes I think the main.go could be removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I realized what I said is confusing. Yes, go ahead and remove main.go and have go_path
depend on _gen_library
. Then you probably don't need the macro and instead rename _gen_library
to generated_embeded
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@linzhp done
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution and patience.
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) | http_archive | minor | `v0.37.0` -> `v0.38.0` | --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.37.0...v0.38.0) #### Breaking changes Starting this release, rules_go requires Bazel 5.3 and golang/x/tools at least 0.3.0. #### Major new features This is the first release to support Go 1.20. When on this version of Go, it is highly recommended to use Bazel 6 and set `--experimental_output_directory_naming_scheme=diff_against_baseline` to prevent certain unnecessary rebuilds. #### What's Changed - preserve intermediate files if `-work` is specified by [@​motiejus](https://togithub.com/motiejus) in [bazelbuild/rules_go#3389 - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3392 - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3399 - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3398 - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3401 - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3404 - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3385 - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3410 - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3400 - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3415 - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [bazelbuild/rules_go#3418 - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [bazelbuild/rules_go#3422 - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3414 - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3356 - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [bazelbuild/rules_go#3407 - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [bazelbuild/rules_go#3256 - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3427 - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3428 #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [bazelbuild/rules_go#3399 - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [bazelbuild/rules_go#3422 - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [bazelbuild/rules_go#3407 - [@​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 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/cgrindel/bazel-starlib). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTEuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExMS4xIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://togithub.com/bazelbuild/rules_go) | http_archive | minor | `v0.35.0` -> `v0.38.1` | --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.1`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.1) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.38.0...v0.38.1) #### Bug fixes The go_googleapis upgrade in 0.38.0 is too disruptive. It changes the Go import paths of the proto packages, causing build failures in repos trying to upgrade to rules_go 0.38.0. Reverting the go_googleapis to the master of 2022-12-05 ([#​3432](https://togithub.com/bazelbuild/rules_go/issues/3432)) for now to make rules_go upgrades easier. #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "dd926a88a564a9246713a9c00b35315f54cbd46b31a26d5d8fb264c07045f05d", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.38.1/rules_go-v0.38.1.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.5") **Full Changelog**: 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 [@​motiejus](https://togithub.com/motiejus) in [bazelbuild/rules_go#3389 - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3392 - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3399 - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3398 - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3401 - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3404 - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3385 - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3410 - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3400 - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3415 - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [bazelbuild/rules_go#3418 - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [bazelbuild/rules_go#3422 - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3414 - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3356 - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [bazelbuild/rules_go#3407 - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [bazelbuild/rules_go#3256 - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3427 - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3428 #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [bazelbuild/rules_go#3399 - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [bazelbuild/rules_go#3422 - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [bazelbuild/rules_go#3407 - [@​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 [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3359 - Declare toolchains in a separate repository by [@​jfirebaugh](https://togithub.com/jfirebaugh) in [bazelbuild/rules_go#3348 - Delete legacy actions API by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3173 - go_path: support go:embed of generated files by [@​S-Chan](https://togithub.com/S-Chan) in [bazelbuild/rules_go#3285 - Properly deprecate `bindata`, `go_embed_data`, and `go_embed_data_deps` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3362 - link.bzl: ignore duplicate dep on coverdata by [@​robfig](https://togithub.com/robfig) in [bazelbuild/rules_go#3032 - feat(pkg-drv): add support for generated files by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3354 - Remove unused variables in link action by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3367 - Reduce number of declared files in `emit_stdlib` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3366 - Update docs regarding vendored proto files by [@​garymm](https://togithub.com/garymm) in [bazelbuild/rules_go#3360 - go link: use external linker when in race mode by [@​motiejus](https://togithub.com/motiejus) in [bazelbuild/rules_go#3370 - Adding first example by [@​chrislovecnm](https://togithub.com/chrislovecnm) in [bazelbuild/rules_go#3317 - fix(packagesdriver): bazelFlags should prefix the command by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3371 - chore(gpd): export aspect utils for reusability by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3373 - nogo: Add a \_base key to be a default config for all Analyzers. by [@​DolceTriade](https://togithub.com/DolceTriade) in [bazelbuild/rules_go#3351 - Document that `Rlocation` can return relative paths by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3377 - Fix normalization check for `Rlocation` path by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3378 - fix(gpd): Write large target patterns to file by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3372 - Make Go runfiles library repo mapping aware by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3347 #### New Contributors - [@​jfirebaugh](https://togithub.com/jfirebaugh) made their first contribution in [bazelbuild/rules_go#3348 - [@​S-Chan](https://togithub.com/S-Chan) made their first contribution in [bazelbuild/rules_go#3285 - [@​garymm](https://togithub.com/garymm) made their first contribution in [bazelbuild/rules_go#3360 - [@​motiejus](https://togithub.com/motiejus) made their first contribution in [bazelbuild/rules_go#3370 - [@​chrislovecnm](https://togithub.com/chrislovecnm) made their first contribution in [bazelbuild/rules_go#3317 - [@​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("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "56d8c5a5c91e1af73eca71a6fab2ced959b67c86d12ba37feedb0a2dfea441a6", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.37.0/rules_go-v0.37.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.3") ### [`v0.36.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.36.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.35.0...v0.36.0) #### Major new features - The Go runfiles library developed by [@​phst](https://togithub.com/phst) at https://github.com/phst/runfiles is now available as `github.com/bazelbuild/rules_go/go/runfiles` (target `@io_bazel_rules_go//go/runfiles`) and is now the official way to look up runfiles from Go. It will be made compatible with Bzlmod in a future release. **Note:** For improved consistency with runfiles libraries in other languages, the `Path` function present in https://github.com/phst/runfiles is called `Rlocation` in rules_go. - Adding two new command line flags `--@​io_bazel_rules_go//go/config:gc_goopts` and `--@​io_bazel_rules_go//go/config:gc_linkopts` to accept additional compiler and linker flags. #### What's Changed - bzlmod: Use register_toolchains by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3290 - Remove unused env_execute by [@​kmicklas](https://togithub.com/kmicklas) in [bazelbuild/rules_go#3276 - Correctly forward InstrumentedFilesInfo from dependencies by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3294 - Parse Go SDK version out of `go version` instead of `VERSION` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3296 - also write test stderr to json (xml) output file by [@​rickystewart](https://togithub.com/rickystewart) in [bazelbuild/rules_go#3300 - Bzlmod: Pin Bazel version in CI by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3301 - Allow to select Go SDK version from declared SDKs by [@​ash2k](https://togithub.com/ash2k) in [bazelbuild/rules_go#3303 - Use top level VERSION file when it exists by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3309 - synchronize when writing to the JSON converter by [@​rickystewart](https://togithub.com/rickystewart) in [bazelbuild/rules_go#3311 - update version manifest URL by [@​benjaminp](https://togithub.com/benjaminp) in [bazelbuild/rules_go#3314 - Symlink "misc" into repository for local_sdk. by [@​adam-azarchs](https://togithub.com/adam-azarchs) in [bazelbuild/rules_go#3313 - Ensure compatibility with incompatible flags close to flipping by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3319 - Add additional bzlmod requirements to allow grpc protobufs to work by [@​shs96c](https://togithub.com/shs96c) in [bazelbuild/rules_go#3320 - bzlmod: Update pinned Bazel version by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3321 - bzlmod: Set up automated BCR releases by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3324 - bzlmod: Add support for gogo proto compiler by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3323 - gopackagesdriver: move non-Go files to OtherFiles (Fixes [#​3326](https://togithub.com/bazelbuild/rules_go/issues/3326)) by [@​michaelarusso](https://togithub.com/michaelarusso) in [bazelbuild/rules_go#3327 - bzlmod: Allow yanked versions in CI by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3329 - feat(pkg-drv): allow setting custom aspect and kinds by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3328 - fix(packages-driver): allow defining additional aspects instead by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3330 - Add support for parsing Go development versions by [@​zakcutner](https://togithub.com/zakcutner) in [bazelbuild/rules_go#3333 - Match GOARCH ppc64 to @​platforms//cpu:ppc as well. by [@​mahiuchun](https://togithub.com/mahiuchun) in [bazelbuild/rules_go#3336 - bzlmod: Update Publish to BCR app config by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3337 - gopackagesdriver: default to NotHandled:true for package queries by [@​ian-h-chamberlain](https://togithub.com/ian-h-chamberlain) in [bazelbuild/rules_go#3338 - fix(packagesdrv): resolve third party go packages by [@​JamyDev](https://togithub.com/JamyDev) in [bazelbuild/rules_go#3332 - runfiles: port phst/runfiles to rules_go by [@​sluongng](https://togithub.com/sluongng) in [bazelbuild/rules_go#3205 - Adding gc_linopts to command line flag by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3342 - Move new runfiles library to `//go/runfiles` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3341 - Rename `Path` to `Rlocation` in runfiles library by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3346 - Add 'gc_goopts' flag to command line to allow gc_goopts to propagate by [@​LWarrens](https://togithub.com/LWarrens) in [bazelbuild/rules_go#3340 #### New Contributors - [@​kmicklas](https://togithub.com/kmicklas) made their first contribution in [bazelbuild/rules_go#3276 - [@​adam-azarchs](https://togithub.com/adam-azarchs) made their first contribution in [bazelbuild/rules_go#3313 - [@​shs96c](https://togithub.com/shs96c) made their first contribution in [bazelbuild/rules_go#3320 - [@​michaelarusso](https://togithub.com/michaelarusso) made their first contribution in [bazelbuild/rules_go#3327 - [@​zakcutner](https://togithub.com/zakcutner) made their first contribution in [bazelbuild/rules_go#3333 - [@​mahiuchun](https://togithub.com/mahiuchun) made their first contribution in [bazelbuild/rules_go#3336 - [@​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("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "ae013bf35bd23234d1dea46b079f1e05ba74ac0321423830119d3e787ec73483", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.36.0/rules_go-v0.36.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.19.3") </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/kreempuff/rules_unreal_engine). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTcuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExNy4xIn0=-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/bazelbuild/buildtools](https://togithub.com/bazelbuild/buildtools) | require | digest | `180a94a` -> `bf454e7` | | [github.com/bazelbuild/rules_go](https://togithub.com/bazelbuild/rules_go) | require | minor | `v0.37.0` -> `v0.38.0` | | [github.com/onsi/gomega](https://togithub.com/onsi/gomega) | require | minor | `v1.25.0` -> `v1.26.0` | | [golang.org/x/exp](https://togithub.com/golang/exp) | require | digest | `a68e582` -> `b3c2aaf` | | [google.golang.org/genproto](https://togithub.com/googleapis/go-genproto) | require | digest | `9d59e20` -> `dcaf20b` | | [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require | patch | `v1.52.0` -> `v1.52.3` | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>bazelbuild/rules_go</summary> ### [`v0.38.0`](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.38.0) [Compare Source](https://togithub.com/bazelbuild/rules_go/compare/v0.37.0...v0.38.0) #### Breaking changes Starting this release, rules_go requires Bazel 5.3 and golang/x/tools at least 0.3.0. If you are using [stardoc](https://togithub.com/bazelbuild/stardoc), you also need to upgrade it to 0.5.3 to recognize `RunEnvironmentInfo`, which is used in this release. #### Major new features This is the first release to support Go 1.20. When on this version of Go, it is highly recommended to use Bazel 6 and set `--experimental_output_directory_naming_scheme=diff_against_baseline` to prevent certain unnecessary rebuilds. #### What's Changed - preserve intermediate files if `-work` is specified by [@​motiejus](https://togithub.com/motiejus) in [bazelbuild/rules_go#3389 - Adapt `lcov_coverage_test` to `exec.Command` change by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3392 - explicitly build relative path for Tool command in lcov_coverage_test by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3399 - Add support for building with boringcrypto by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3398 - Generalize `boringcrypto` to `GOEXPERIMENT` support by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3401 - Replace `cfg = "host"` with `cfg = "exec"` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3404 - always produce .a files at the beginning of a build by [@​matloob](https://togithub.com/matloob) in [bazelbuild/rules_go#3385 - Mark `nogo` targets as `manual` to keep top-level symlinks by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3410 - Refactoring the extld related logic by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3400 - Fix incompatible flags not applied to integration tests by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3415 - chore: remove experimental warning from bzlmod module by [@​alexeagle](https://togithub.com/alexeagle) in [bazelbuild/rules_go#3418 - Add a clarifying error about dependency cycle found for internal tests by [@​yushan26](https://togithub.com/yushan26) in [bazelbuild/rules_go#3422 - Do not use exec paths for rundir by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3414 - Upgrade org_golang_x_tools to 0.5.0 by [@​linzhp](https://togithub.com/linzhp) in [bazelbuild/rules_go#3356 - fix: Relative path of embedsrc by [@​bakjos](https://togithub.com/bakjos) in [bazelbuild/rules_go#3407 - Add support for env_inherit by [@​ttpathan](https://togithub.com/ttpathan) in [bazelbuild/rules_go#3256 - Update stardoc to 0.5.3 by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3427 - Add `env` attribute to `go_binary` by [@​fmeum](https://togithub.com/fmeum) in [bazelbuild/rules_go#3428 #### New Contributors - [@​matloob](https://togithub.com/matloob) made their first contribution in [bazelbuild/rules_go#3399 - [@​yushan26](https://togithub.com/yushan26) made their first contribution in [bazelbuild/rules_go#3422 - [@​bakjos](https://togithub.com/bakjos) made their first contribution in [bazelbuild/rules_go#3407 - [@​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 </details> <details> <summary>onsi/gomega</summary> ### [`v1.26.0`](https://togithub.com/onsi/gomega/releases/tag/v1.26.0) [Compare Source](https://togithub.com/onsi/gomega/compare/v1.25.0...v1.26.0) #### 1.26.0 ##### Features - When a polled function returns an error, keep track of the actual and report on the matcher state of the last non-errored actual \[[`21f3090`](https://togithub.com/onsi/gomega/commit/21f3090)] - improve eventually failure message output \[[`c530fb3`](https://togithub.com/onsi/gomega/commit/c530fb3)] ##### Fixes - fix several documentation spelling issues \[[`e2eff1f`](https://togithub.com/onsi/gomega/commit/e2eff1f)] </details> <details> <summary>grpc/grpc-go</summary> ### [`v1.52.3`](https://togithub.com/grpc/grpc-go/releases/tag/v1.52.3): Release 1.52.3 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.52.1...v1.52.3) ### Bug Fixes - Fix user-agent version ### [`v1.52.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.52.1): Release 1.52.1 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.52.0...v1.52.1) ### Bug Fixes - grpclb: rename grpclbstate package back to state ([#​5963](https://togithub.com/grpc/grpc-go/issues/5963)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/aspect-build/silo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDkuMSIsInVwZGF0ZWRJblZlciI6IjM0LjExMS4xIn0=--> Signed-off-by: Thulio Ferraz Assis <3149049+f0rmiga@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Thulio Ferraz Assis <3149049+f0rmiga@users.noreply.github.com>
What type of PR is this?
Bug fix
What does this PR do? Why is it needed?
The new relativize introduced by #3285 fails if also includes generated code because the
library_to_source
appends the src with thegenerated_srcs
, so instead of using the last src_dir, it uses the firstWhich issues(s) does this PR fix?
Fixes # 3405
Other notes for review