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

Correctly propagate runfiles from data dependencies to gazelle #1094

Merged
merged 1 commit into from
Aug 19, 2021

Conversation

alexeagle
Copy link
Contributor

@alexeagle alexeagle commented Aug 19, 2021

This is a followup to #1008 which fixed this problem for the
gazelle_binary but not for the data attribute of the gazelle rule.

What type of PR is this?

Bug fix

What package or component does this PR mostly affect?

cmd/gazelle

What does this PR do? Why is it needed?
We are working on a python extension, where the gazelle binary will have a py_binary in its data deps.
Without this fix, the runfiles of that py_binary are absent at runtime and gazelle fails like
FileNotFoundError: [Errno 2] No such file or directory: '/home/alexeagle/.cache/bazel/_bazel_alexeagle/cdec52671ea8b1684766cfc23dcfc4be/execroot/rules_python/bazel-out/k8-fastbuild/bin/gazelle/g.runfiles/bazel_tools/tools/python/py3wrapper.sh'

This is a followup to bazel-contrib#1008 which fixed this problem for the
gazelle_binary but not for the data attribute of the gazelle rule.

We are working on a python extension, where the gazelle binary will have a py_binary in its data deps.
Without this fix, the runfiles of that py_binary are absent at runtime and gazelle fails like
FileNotFoundError: [Errno 2] No such file or directory: '/home/alexeagle/.cache/bazel/_bazel_alexeagle/cdec52671ea8b1684766cfc23dcfc4be/execroot/rules_python/bazel-out/k8-fastbuild/bin/gazelle/g.runfiles/bazel_tools/tools/python/py3wrapper.sh'
@alexeagle
Copy link
Contributor Author

/fyi @f0rmiga

@achew22 achew22 merged commit 2834ea4 into bazel-contrib:master Aug 19, 2021
@achew22
Copy link
Member

achew22 commented Aug 19, 2021

@alexeagle thanks for the contribution!

gcf-merge-on-green bot referenced this pull request in googleapis/gapic-config-validator Oct 11, 2021
[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) | http_archive | minor | `v0.22.2` -> `v0.24.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle</summary>

### [`v0.24.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.24.0)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.23.0...v0.24.0)

This release requires [rules_go 0.29](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.29.0) to support the retirement of `go_tool_library`.

#### Changes

-   .netrc files are now supported for authenticated access for `go_repository` rules ([#&#8203;1090](https://togithub.com/bazelbuild/bazel-gazelle/issues/1090))
-   There is now a Gazelle extension for authoring BUILD files for the R language, using [rules_r](https://togithub.com/grailbio/rules_r).

#### Fixes

-   language/go: don't let 'go mod download' edit go.sum by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1015](https://togithub.com/bazelbuild/bazel-gazelle/pull/1015)
-   Label fix: properly parse external references to the main repository by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1006](https://togithub.com/bazelbuild/bazel-gazelle/pull/1006)
-   gazelle: add -e flag for go list 1.16 by [@&#8203;axelberardino](https://togithub.com/axelberardino) in [https://github.com/bazelbuild/bazel-gazelle/pull/1019](https://togithub.com/bazelbuild/bazel-gazelle/pull/1019)
-   Correctly propagate runfiles from gazelle_bin to gazelle by [@&#8203;HALtheWise](https://togithub.com/HALtheWise) in [https://github.com/bazelbuild/bazel-gazelle/pull/1008](https://togithub.com/bazelbuild/bazel-gazelle/pull/1008)
-   Support Label [@&#8203;repo](https://togithub.com/repo) -> @&#8203;repo//:repo shorthand by [@&#8203;wolfd](https://togithub.com/wolfd) in [https://github.com/bazelbuild/bazel-gazelle/pull/1023](https://togithub.com/bazelbuild/bazel-gazelle/pull/1023)
-   language/go: rewrite embedResolver to use a tree structure by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1024](https://togithub.com/bazelbuild/bazel-gazelle/pull/1024)
-   Respect .bazelignore by [@&#8203;Michaelhobo](https://togithub.com/Michaelhobo) in [https://github.com/bazelbuild/bazel-gazelle/pull/1022](https://togithub.com/bazelbuild/bazel-gazelle/pull/1022)
-   Change merge behavior to remove attrs instead of panicking by [@&#8203;wolfd](https://togithub.com/wolfd) in [https://github.com/bazelbuild/bazel-gazelle/pull/1031](https://togithub.com/bazelbuild/bazel-gazelle/pull/1031)
-   Allow ListRepositories to load macros not in Workspace by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1053](https://togithub.com/bazelbuild/bazel-gazelle/pull/1053)
-   Honor host GOMODCACHE when GO_REPOSITORY_USE_HOST_CACHE by [@&#8203;linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/bazel-gazelle/pull/1069](https://togithub.com/bazelbuild/bazel-gazelle/pull/1069)
-   language/go: add golang.org/x/tools/internal/typeparams to nogo deps list by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1074](https://togithub.com/bazelbuild/bazel-gazelle/pull/1074)
-   Fix "exclude" token parsing by [@&#8203;gibfahn](https://togithub.com/gibfahn) in [https://github.com/bazelbuild/bazel-gazelle/pull/1073](https://togithub.com/bazelbuild/bazel-gazelle/pull/1073)
-   Have label properly resolve directives starting with "@&#8203;//" by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1086](https://togithub.com/bazelbuild/bazel-gazelle/pull/1086)
-   Correctly propagate runfiles from data dependencies to gazelle by [@&#8203;alexeagle](https://togithub.com/alexeagle) in [https://github.com/bazelbuild/bazel-gazelle/pull/1094](https://togithub.com/bazelbuild/bazel-gazelle/pull/1094)
-   Add bzl_library targets to Gazelle by [@&#8203;achew22](https://togithub.com/achew22) in [https://github.com/bazelbuild/bazel-gazelle/pull/760](https://togithub.com/bazelbuild/bazel-gazelle/pull/760)
-   Escape vars in cgo flags with an extra $ by [@&#8203;dierksen](https://togithub.com/dierksen) in [https://github.com/bazelbuild/bazel-gazelle/pull/1107](https://togithub.com/bazelbuild/bazel-gazelle/pull/1107)
-   autogazelle can build on windows by [@&#8203;asuffield](https://togithub.com/asuffield) in [https://github.com/bazelbuild/bazel-gazelle/pull/1083](https://togithub.com/bazelbuild/bazel-gazelle/pull/1083)
-   and many documentation updates by [@&#8203;tanyabouman](https://togithub.com/tanyabouman)

**Full Changelog**: bazel-contrib/bazel-gazelle@v0.23.0...v0.24.0

#### `WORKSPACE` code

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

    http_archive(
        name = "bazel_gazelle",
        sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")

    gazelle_dependencies()

### [`v0.23.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.23.0)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.22.3...v0.23.0)

#### Changes

-   Go
    -   `CXXFLAGS` and `CPPFLAGS` `#cgo` directives are separated into `cxxopts` and `cppopts` attributes, respectively. Thanks [@&#8203;otan](https://togithub.com/otan).
    -   Dependencies on mapped kinds are now supported. Thanks [@&#8203;robfig](https://togithub.com/robfig).
    -   The `gazelle` rule now supports the `update-repos` command.
    -   The `gazelle` rule now has a `data` attribute and expands `$(location)` within arguments.
    -   `go_repository`'s `build_naming_convention` is now considered when resolving external dependencies. If a repository already has build files, this attribute may be set to indicate which naming convention it follows.
    -   `embedsrcs` attributes are generated for packages that contain `//go:embed` directives.
-   Protobuf
    -   `proto_strip_import_prefix` may be set in the root build file. Thanks [@&#8203;linzhp](https://togithub.com/linzhp).

#### `WORKSPACE` code

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

    http_archive(
        name = "bazel_gazelle",
        sha256 = "62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")

    gazelle_dependencies()

### [`v0.22.3`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.22.3)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.22.2...v0.22.3)

#### Bug fixes

-   `-mode=diff` treats empty build files correctly. (thanks [@&#8203;vpanta](https://togithub.com/vpanta))
-   Gazelle should walk subdirectories more quickly when indexing is disabled. (thanks [@&#8203;blico](https://togithub.com/blico))
-   Fixed dependency resolution with mapped kinds. (thanks [@&#8203;robfig](https://togithub.com/robfig))
-   Compatibility fixes for Go 1.16.

#### WORKSPACE code

    http_archive(
        name = "bazel_gazelle",
        sha256 = "222e49f034ca7a1d1231422cdb67066b885819885c356673cb1f72f748a3c9d4",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.3/bazel-gazelle-v0.22.3.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.3/bazel-gazelle-v0.22.3.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")
    gazelle_dependencies()

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **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 [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-config-validator).
gcf-merge-on-green bot referenced this pull request in googleapis/gapic-generator-go Oct 11, 2021
[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [bazel_gazelle](https://togithub.com/bazelbuild/bazel-gazelle) | http_archive | minor | `v0.22.2` -> `v0.24.0` |

---

### Release Notes

<details>
<summary>bazelbuild/bazel-gazelle</summary>

### [`v0.24.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.24.0)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.23.0...v0.24.0)

This release requires [rules_go 0.29](https://togithub.com/bazelbuild/rules_go/releases/tag/v0.29.0) to support the retirement of `go_tool_library`.

#### Changes

-   .netrc files are now supported for authenticated access for `go_repository` rules ([#&#8203;1090](https://togithub.com/bazelbuild/bazel-gazelle/issues/1090))
-   There is now a Gazelle extension for authoring BUILD files for the R language, using [rules_r](https://togithub.com/grailbio/rules_r).

#### Fixes

-   language/go: don't let 'go mod download' edit go.sum by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1015](https://togithub.com/bazelbuild/bazel-gazelle/pull/1015)
-   Label fix: properly parse external references to the main repository by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1006](https://togithub.com/bazelbuild/bazel-gazelle/pull/1006)
-   gazelle: add -e flag for go list 1.16 by [@&#8203;axelberardino](https://togithub.com/axelberardino) in [https://github.com/bazelbuild/bazel-gazelle/pull/1019](https://togithub.com/bazelbuild/bazel-gazelle/pull/1019)
-   Correctly propagate runfiles from gazelle_bin to gazelle by [@&#8203;HALtheWise](https://togithub.com/HALtheWise) in [https://github.com/bazelbuild/bazel-gazelle/pull/1008](https://togithub.com/bazelbuild/bazel-gazelle/pull/1008)
-   Support Label [@&#8203;repo](https://togithub.com/repo) -> @&#8203;repo//:repo shorthand by [@&#8203;wolfd](https://togithub.com/wolfd) in [https://github.com/bazelbuild/bazel-gazelle/pull/1023](https://togithub.com/bazelbuild/bazel-gazelle/pull/1023)
-   language/go: rewrite embedResolver to use a tree structure by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1024](https://togithub.com/bazelbuild/bazel-gazelle/pull/1024)
-   Respect .bazelignore by [@&#8203;Michaelhobo](https://togithub.com/Michaelhobo) in [https://github.com/bazelbuild/bazel-gazelle/pull/1022](https://togithub.com/bazelbuild/bazel-gazelle/pull/1022)
-   Change merge behavior to remove attrs instead of panicking by [@&#8203;wolfd](https://togithub.com/wolfd) in [https://github.com/bazelbuild/bazel-gazelle/pull/1031](https://togithub.com/bazelbuild/bazel-gazelle/pull/1031)
-   Allow ListRepositories to load macros not in Workspace by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1053](https://togithub.com/bazelbuild/bazel-gazelle/pull/1053)
-   Honor host GOMODCACHE when GO_REPOSITORY_USE_HOST_CACHE by [@&#8203;linzhp](https://togithub.com/linzhp) in [https://github.com/bazelbuild/bazel-gazelle/pull/1069](https://togithub.com/bazelbuild/bazel-gazelle/pull/1069)
-   language/go: add golang.org/x/tools/internal/typeparams to nogo deps list by [@&#8203;jayconrod](https://togithub.com/jayconrod) in [https://github.com/bazelbuild/bazel-gazelle/pull/1074](https://togithub.com/bazelbuild/bazel-gazelle/pull/1074)
-   Fix "exclude" token parsing by [@&#8203;gibfahn](https://togithub.com/gibfahn) in [https://github.com/bazelbuild/bazel-gazelle/pull/1073](https://togithub.com/bazelbuild/bazel-gazelle/pull/1073)
-   Have label properly resolve directives starting with "@&#8203;//" by [@&#8203;tfrench-uber](https://togithub.com/tfrench-uber) in [https://github.com/bazelbuild/bazel-gazelle/pull/1086](https://togithub.com/bazelbuild/bazel-gazelle/pull/1086)
-   Correctly propagate runfiles from data dependencies to gazelle by [@&#8203;alexeagle](https://togithub.com/alexeagle) in [https://github.com/bazelbuild/bazel-gazelle/pull/1094](https://togithub.com/bazelbuild/bazel-gazelle/pull/1094)
-   Add bzl_library targets to Gazelle by [@&#8203;achew22](https://togithub.com/achew22) in [https://github.com/bazelbuild/bazel-gazelle/pull/760](https://togithub.com/bazelbuild/bazel-gazelle/pull/760)
-   Escape vars in cgo flags with an extra $ by [@&#8203;dierksen](https://togithub.com/dierksen) in [https://github.com/bazelbuild/bazel-gazelle/pull/1107](https://togithub.com/bazelbuild/bazel-gazelle/pull/1107)
-   autogazelle can build on windows by [@&#8203;asuffield](https://togithub.com/asuffield) in [https://github.com/bazelbuild/bazel-gazelle/pull/1083](https://togithub.com/bazelbuild/bazel-gazelle/pull/1083)
-   and many documentation updates by [@&#8203;tanyabouman](https://togithub.com/tanyabouman)

**Full Changelog**: bazel-contrib/bazel-gazelle@v0.23.0...v0.24.0

#### `WORKSPACE` code

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

    http_archive(
        name = "bazel_gazelle",
        sha256 = "de69a09dc70417580aabf20a28619bb3ef60d038470c7cf8442fafcf627c21cb",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.24.0/bazel-gazelle-v0.24.0.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")

    gazelle_dependencies()

### [`v0.23.0`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.23.0)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.22.3...v0.23.0)

#### Changes

-   Go
    -   `CXXFLAGS` and `CPPFLAGS` `#cgo` directives are separated into `cxxopts` and `cppopts` attributes, respectively. Thanks [@&#8203;otan](https://togithub.com/otan).
    -   Dependencies on mapped kinds are now supported. Thanks [@&#8203;robfig](https://togithub.com/robfig).
    -   The `gazelle` rule now supports the `update-repos` command.
    -   The `gazelle` rule now has a `data` attribute and expands `$(location)` within arguments.
    -   `go_repository`'s `build_naming_convention` is now considered when resolving external dependencies. If a repository already has build files, this attribute may be set to indicate which naming convention it follows.
    -   `embedsrcs` attributes are generated for packages that contain `//go:embed` directives.
-   Protobuf
    -   `proto_strip_import_prefix` may be set in the root build file. Thanks [@&#8203;linzhp](https://togithub.com/linzhp).

#### `WORKSPACE` code

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

    http_archive(
        name = "bazel_gazelle",
        sha256 = "62ca106be173579c0a167deb23358fdfe71ffa1e4cfdddf5582af26520f1c66f",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.23.0/bazel-gazelle-v0.23.0.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")

    gazelle_dependencies()

### [`v0.22.3`](https://togithub.com/bazelbuild/bazel-gazelle/releases/v0.22.3)

[Compare Source](https://togithub.com/bazelbuild/bazel-gazelle/compare/v0.22.2...v0.22.3)

#### Bug fixes

-   `-mode=diff` treats empty build files correctly. (thanks [@&#8203;vpanta](https://togithub.com/vpanta))
-   Gazelle should walk subdirectories more quickly when indexing is disabled. (thanks [@&#8203;blico](https://togithub.com/blico))
-   Fixed dependency resolution with mapped kinds. (thanks [@&#8203;robfig](https://togithub.com/robfig))
-   Compatibility fixes for Go 1.16.

#### WORKSPACE code

    http_archive(
        name = "bazel_gazelle",
        sha256 = "222e49f034ca7a1d1231422cdb67066b885819885c356673cb1f72f748a3c9d4",
        urls = [
            "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.3/bazel-gazelle-v0.22.3.tar.gz",
            "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.22.3/bazel-gazelle-v0.22.3.tar.gz",
        ],
    )

    load("@&#8203;bazel_gazelle//:deps.bzl", "gazelle_dependencies")
    gazelle_dependencies()

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **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 [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-go).
@f0rmiga f0rmiga deleted the fix_runfiles branch November 17, 2021 20:39
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.

2 participants