-
-
Notifications
You must be signed in to change notification settings - Fork 667
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
Add a full fs.FS
implementation to runfiles
#3969
Conversation
c570027
to
8edd51e
Compare
fs.FS
implementation to runfiles
fs.FS
implementation to runfiles
cc @sluongng |
e85435c
to
67d7a60
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 gave this a quick read and have some nits, but this looks promising. FS
is a powerful interface so I think this is the right approach.
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.
a few more nits
Thanks, I addressed your comments and am debugging the remaining test failure on Windows. |
d79da1c
to
5603803
Compare
The remaining test failure is a very reasonable one: The logic fails to account for runfiles that are linked under a basename that differs from that of the underlying file. This will require some more tweaks. |
b6e2352
to
86809bd
Compare
@meteorcloudy The new macOS machines frequently run into timeouts: https://buildkite.com/bazel/rules-go-golang/builds/6622#01908e0d-57ff-4850-8b3c-cb9fe2fff52f Are we perhaps lacking any settings? |
@fmeum Yes, please check bazelbuild/continuous-integration#1981 (comment) |
@fmeum To unblock this, you can also temporarily switch back to the old Mac fleet by using The timeout looks weird, does it look like some network issue? One major difference is that the new Mac fleet is ipv6 only, not sure if it's relevant. |
@meteorcloudy Thanks, I'll go with this workaround for now until I can properly investigate this (limited to GitHub web UI right now). The failing test downloads a few old Go releases from the official download page, I don't know why this would cause issues. The relevant tests are tagged |
Indeed it's caused by the ipv6-only network.
I'll let you decide how to inject this for macos ci, here is an example for Bazel's integration test bazelbuild/bazel@2c51a0c |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) | http_archive | minor | `v0.48.1` -> `v0.49.0` | --- ### Release Notes <details> <summary>bazelbuild/rules_go (io_bazel_rules_go)</summary> ### [`v0.49.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.49.0) [Compare Source](https://github.com/bazelbuild/rules_go/compare/v0.48.1...v0.49.0) #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "d93ef02f1e72c82d8bb3d5169519b36167b33cf68c252525e3b9d3d5dd143de7", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.22.5") #### What's Changed - Add support for path mapping by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3915](https://github.com/bazelbuild/rules_go/pull/3915) - Introduce rules_go_unsupported_feature by [@​cramertj](https://github.com/cramertj) in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - Automatically run `bazel mod tidy` in `@rules_go//go` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3927](https://github.com/bazelbuild/rules_go/pull/3927) - Fix revive warning in testmain.go files by [@​EdSchouten](https://github.com/EdSchouten) in [https://github.com/bazelbuild/rules_go/pull/3958](https://github.com/bazelbuild/rules_go/pull/3958) - Revert "feat(mode): add `purego` tag when `pure` ([#​3901](https://github.com/bazelbuild/rules_go/issues/3901))" by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3961](https://github.com/bazelbuild/rules_go/pull/3961) - prepare patch release 0.48.1 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3963](https://github.com/bazelbuild/rules_go/pull/3963) - Fix broken link to https://bazel.build/concepts/dependencies#data-dependencies by [@​alexbozhenko](https://github.com/alexbozhenko) in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - docs: Discourage use `go_sdk.host()` in bzlmod.md (see [#​713](https://github.com/bazelbuild/rules_go/issues/713)) by [@​vorburger](https://github.com/vorburger) in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - Add linux/ppc64le to GOARCH constraints by [@​c16a](https://github.com/c16a) in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - gopackagesdriver: Make kind query regexes anchored by [@​jscissr](https://github.com/jscissr) in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) - Add a full `fs.FS` implementation to `runfiles` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3969](https://github.com/bazelbuild/rules_go/pull/3969) - update readmes for latest release by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3988](https://github.com/bazelbuild/rules_go/pull/3988) - prepare release 0.49.0 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3989](https://github.com/bazelbuild/rules_go/pull/3989) #### New Contributors - [@​cramertj](https://github.com/cramertj) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - [@​alexbozhenko](https://github.com/alexbozhenko) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - [@​vorburger](https://github.com/vorburger) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - [@​c16a](https://github.com/c16a) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - [@​jscissr](https://github.com/jscissr) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) **Full Changelog**: bazel-contrib/rules_go@v0.48.0...v0.49.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDkuNCIsInVwZGF0ZWRJblZlciI6IjM2LjEwOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: Self-hosted Renovate Bot <361546+cgrindel-self-hosted-renovate[bot]@users.noreply.github.enterprise.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) | http_archive | minor | `v0.48.1` -> `v0.49.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>bazelbuild/rules_go (io_bazel_rules_go)</summary> ### [`v0.49.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.49.0) [Compare Source](https://github.com/bazelbuild/rules_go/compare/v0.48.1...v0.49.0) #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "d93ef02f1e72c82d8bb3d5169519b36167b33cf68c252525e3b9d3d5dd143de7", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.22.5") #### What's Changed - Add support for path mapping by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3915](https://github.com/bazelbuild/rules_go/pull/3915) - Introduce rules_go_unsupported_feature by [@​cramertj](https://github.com/cramertj) in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - Automatically run `bazel mod tidy` in `@rules_go//go` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3927](https://github.com/bazelbuild/rules_go/pull/3927) - Fix revive warning in testmain.go files by [@​EdSchouten](https://github.com/EdSchouten) in [https://github.com/bazelbuild/rules_go/pull/3958](https://github.com/bazelbuild/rules_go/pull/3958) - Revert "feat(mode): add `purego` tag when `pure` ([#​3901](https://github.com/bazelbuild/rules_go/issues/3901))" by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3961](https://github.com/bazelbuild/rules_go/pull/3961) - prepare patch release 0.48.1 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3963](https://github.com/bazelbuild/rules_go/pull/3963) - Fix broken link to https://bazel.build/concepts/dependencies#data-dependencies by [@​alexbozhenko](https://github.com/alexbozhenko) in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - docs: Discourage use `go_sdk.host()` in bzlmod.md (see [#​713](https://github.com/bazelbuild/rules_go/issues/713)) by [@​vorburger](https://github.com/vorburger) in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - Add linux/ppc64le to GOARCH constraints by [@​c16a](https://github.com/c16a) in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - gopackagesdriver: Make kind query regexes anchored by [@​jscissr](https://github.com/jscissr) in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) - Add a full `fs.FS` implementation to `runfiles` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3969](https://github.com/bazelbuild/rules_go/pull/3969) - update readmes for latest release by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3988](https://github.com/bazelbuild/rules_go/pull/3988) - prepare release 0.49.0 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3989](https://github.com/bazelbuild/rules_go/pull/3989) #### New Contributors - [@​cramertj](https://github.com/cramertj) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - [@​alexbozhenko](https://github.com/alexbozhenko) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - [@​vorburger](https://github.com/vorburger) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - [@​c16a](https://github.com/c16a) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - [@​jscissr](https://github.com/jscissr) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) **Full Changelog**: bazel-contrib/rules_go@v0.48.0...v0.49.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/kreempuff/rules_unreal_engine). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io_bazel_rules_go](https://github.com/bazelbuild/rules_go) | http_archive | minor | `v0.48.1` -> `v0.49.0` | --- ### Release Notes <details> <summary>bazelbuild/rules_go (io_bazel_rules_go)</summary> ### [`v0.49.0`](https://github.com/bazelbuild/rules_go/releases/tag/v0.49.0) [Compare Source](https://github.com/bazelbuild/rules_go/compare/v0.48.1...v0.49.0) #### `WORKSPACE` code load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_go", sha256 = "d93ef02f1e72c82d8bb3d5169519b36167b33cf68c252525e3b9d3d5dd143de7", urls = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", "https://github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", ], ) load("@​io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") go_rules_dependencies() go_register_toolchains(version = "1.22.5") #### What's Changed - Add support for path mapping by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3915](https://github.com/bazelbuild/rules_go/pull/3915) - Introduce rules_go_unsupported_feature by [@​cramertj](https://github.com/cramertj) in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - Automatically run `bazel mod tidy` in `@rules_go//go` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3927](https://github.com/bazelbuild/rules_go/pull/3927) - Fix revive warning in testmain.go files by [@​EdSchouten](https://github.com/EdSchouten) in [https://github.com/bazelbuild/rules_go/pull/3958](https://github.com/bazelbuild/rules_go/pull/3958) - Revert "feat(mode): add `purego` tag when `pure` ([#​3901](https://github.com/bazelbuild/rules_go/issues/3901))" by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3961](https://github.com/bazelbuild/rules_go/pull/3961) - prepare patch release 0.48.1 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3963](https://github.com/bazelbuild/rules_go/pull/3963) - Fix broken link to https://bazel.build/concepts/dependencies#data-dependencies by [@​alexbozhenko](https://github.com/alexbozhenko) in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - docs: Discourage use `go_sdk.host()` in bzlmod.md (see [#​713](https://github.com/bazelbuild/rules_go/issues/713)) by [@​vorburger](https://github.com/vorburger) in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - Add linux/ppc64le to GOARCH constraints by [@​c16a](https://github.com/c16a) in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - gopackagesdriver: Make kind query regexes anchored by [@​jscissr](https://github.com/jscissr) in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) - Add a full `fs.FS` implementation to `runfiles` by [@​fmeum](https://github.com/fmeum) in [https://github.com/bazelbuild/rules_go/pull/3969](https://github.com/bazelbuild/rules_go/pull/3969) - update readmes for latest release by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3988](https://github.com/bazelbuild/rules_go/pull/3988) - prepare release 0.49.0 by [@​tyler-french](https://github.com/tyler-french) in [https://github.com/bazelbuild/rules_go/pull/3989](https://github.com/bazelbuild/rules_go/pull/3989) #### New Contributors - [@​cramertj](https://github.com/cramertj) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3955](https://github.com/bazelbuild/rules_go/pull/3955) - [@​alexbozhenko](https://github.com/alexbozhenko) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3960](https://github.com/bazelbuild/rules_go/pull/3960) - [@​vorburger](https://github.com/vorburger) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3968](https://github.com/bazelbuild/rules_go/pull/3968) - [@​c16a](https://github.com/c16a) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3975](https://github.com/bazelbuild/rules_go/pull/3975) - [@​jscissr](https://github.com/jscissr) made their first contribution in [https://github.com/bazelbuild/rules_go/pull/3978](https://github.com/bazelbuild/rules_go/pull/3978) **Full Changelog**: bazel-contrib/rules_go@v0.48.0...v0.49.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/bazel-contrib/toolchains_llvm). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
What type of PR is this?
Feature
What does this PR do? Why is it needed?
Runfiles instances now implement
fs.FS
in a platform-agnostic way, regardless of whether they are manifest- or directory-based. This is meant to finally provide a full replacement for runfiles functionality offered by the legacybazel
package.Which issues(s) does this PR fix?
Fixes #3375
Fixes #3830
Other notes for review