Skip to content

[8.6.0] Add bazel mod show_repo --all_repos and --all_visible_repos#28012

Merged
meteorcloudy merged 3 commits intobazelbuild:release-8.6.0from
bazel-io:cp27241-8.6.0
Jan 7, 2026
Merged

[8.6.0] Add bazel mod show_repo --all_repos and --all_visible_repos#28012
meteorcloudy merged 3 commits intobazelbuild:release-8.6.0from
bazel-io:cp27241-8.6.0

Conversation

@bazel-io
Copy link
Member

Add two more options to bazel mod show_repo that allow showing "all" repos, for some definition of "all":

  • --all_repos actually shows all repos in the workspace;
  • --all_visible_repos shows all repos visible to the --base_module, accompanied by the apparent repo name each repo is known by.

These two options provide a replacement for bazel query //external:* that used to work in the WORKSPACE era.

A few notes:

  1. Technically, --all_visible_repos is possible already using something like

    bazel mod dump_repo_mapping '' |
        jq -r 'to_entries[] | select(.value != "" and .value != "bazel_tools") | "@" + .key' |
        xargs bazel mod show_repo

    However, that's clearly too complicated for everyone using Bazel to construct on their own. dump_repo_mapping is also not documented on the Bazel website.

    I am unable to come up with a way to get the same effect as --all_repos with existing commands.

  2. Related to --all_visible_repo: I considered creating a --base_repo option so that one can examine all repos visible to a module extension repo, but decided against it:

    • It's unclear how --base_repo should interact with --base_module – or if they should be the same option in the first place.
    • It makes this PR a little too complicated. (We'd either need another call to Skyframe to get the repo mapping since it's not available in moduleInspector or depGraphValue, or inline the logic in ModuleExtensionRepoMappingEntriesFunction into ModCommand).

Fixes: #27224

Closes #27241.

PiperOrigin-RevId: 825976519
Change-Id: I5d8cf1cf584a7e167173cf3ba3725fffc0fd5299

Commit b292706

Add two more options to `bazel mod show_repo` that allow showing "all" repos, for some definition of "all":

* `--all_repos` actually shows all repos in the workspace;
* `--all_visible_repos` shows all repos visible to the `--base_module`, accompanied by the apparent repo name each repo is known by.

These two options provide a replacement for `bazel query //external:*` that used to work in the WORKSPACE era.

A few notes:

1.  Technically, `--all_visible_repos` is possible already using something like
    ```sh
    bazel mod dump_repo_mapping '' |
        jq -r 'to_entries[] | select(.value != "" and .value != "bazel_tools") | "@" + .key' |
        xargs bazel mod show_repo
    ```
    However, that's clearly too complicated for everyone using Bazel to construct on their own. `dump_repo_mapping` is also not documented on the Bazel website.

    I am unable to come up with a way to get the same effect as `--all_repos` with existing commands.

2.  Related to `--all_visible_repo`: I considered creating a `--base_repo` option so that one can examine all repos visible to a module extension repo, but decided against it:

    * It's unclear how `--base_repo` should interact with `--base_module` – or if they should be the same option in the first place.
    * It makes this PR a little too complicated. (We'd either need another call to Skyframe to get the repo mapping since it's not available in moduleInspector or depGraphValue, or inline the logic in [ModuleExtensionRepoMappingEntriesFunction](https://cs.opensource.google/bazel/bazel/+/master:src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleExtensionRepoMappingEntriesFunction.java;l=75-77;drc=c475b38401d80dc4970ddc7ac18b4d74e0eacac3) into ModCommand).

Fixes: bazelbuild#27224

Closes bazelbuild#27241.

PiperOrigin-RevId: 825976519
Change-Id: I5d8cf1cf584a7e167173cf3ba3725fffc0fd5299
@bazel-io bazel-io requested a review from a team as a code owner December 16, 2025 10:12
@bazel-io bazel-io added team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file. team-Documentation Documentation improvements that cannot be directly linked to other team labels awaiting-review PR is awaiting review from an assigned reviewer labels Dec 16, 2025
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds --all_repos and --all_visible_repos options to bazel mod show_repo, providing a modern replacement for bazel query //external:*. The implementation looks solid, with good documentation and test coverage. I have one suggestion to improve argument validation for the show_repo command to provide a better user experience when no arguments or flags are provided.

@iancha1992
Copy link
Member

@fmeum @meteorcloudy Could you please take a look at the failed tests?

@meteorcloudy
Copy link
Member

Pushed a fix, let's see

@meteorcloudy meteorcloudy added this pull request to the merge queue Jan 7, 2026
Merged via the queue into bazelbuild:release-8.6.0 with commit 2e7e5f9 Jan 7, 2026
46 checks passed
@github-actions github-actions bot removed the awaiting-review PR is awaiting review from an assigned reviewer label Jan 7, 2026
rdesgroppes added a commit to DataDog/datadog-agent that referenced this pull request Feb 27, 2026
### What does this PR do?
Bump `.bazelversion` from 8.5.1 to 8.6.0.

### Motivation
Selected changes between 8.5.1 and 8.6.0:
- Fix visibility for implicit deps of parent rules (bazelbuild/bazel#28722)
- Force rctx.{download_and,}extract to create user-readable files (bazelbuild/bazel#28551)
- Fix disk cache failures on concurrent read-write access on Windows (bazelbuild/bazel#28529)
- Add a target_type argument to ctx.actions.symlink (bazelbuild/bazel#28538)
- Compensate for Windows filesystems lacking junction support (bazelbuild/bazel#28367)
  (our fix)
- Add short_uncached and detailed_uncached options to --test_summary (bazelbuild/bazel#28343)
- Add --experimental_strict_repo_env option (bazelbuild/bazel#28189)
- Make overlaid files executable in http_archive (bazelbuild/bazel#28277)
- Add bazel mod show_repo --all_repos and --all_visible_repos (bazelbuild/bazel#28012)
- Enable --experimental_retain_test_configuration_across_testonly (bazelbuild/bazel#28115)
- Add option to continue with local execution if remote cache is unavailable (bazelbuild/bazel#28001)
rdesgroppes added a commit to DataDog/datadog-agent that referenced this pull request Feb 27, 2026
### What does this PR do?
Bump `.bazelversion` from 8.5.1 to 8.6.0.

### Motivation
Selected changes between 8.5.1 and 8.6.0:
- Fix visibility for implicit deps of parent rules (bazelbuild/bazel#28722)
- Force rctx.{download_and,}extract to create user-readable files (bazelbuild/bazel#28551)
- Fix disk cache failures on concurrent read-write access on Windows (bazelbuild/bazel#28529)
- Add a target_type argument to ctx.actions.symlink (bazelbuild/bazel#28538)
- Compensate for Windows filesystems lacking junction support (bazelbuild/bazel#28367)
  (our fix)
- Add short_uncached and detailed_uncached options to --test_summary (bazelbuild/bazel#28343)
- Add --experimental_strict_repo_env option (bazelbuild/bazel#28189)
- Make overlaid files executable in http_archive (bazelbuild/bazel#28277)
- Add bazel mod show_repo --all_repos and --all_visible_repos (bazelbuild/bazel#28012)
- Enable --experimental_retain_test_configuration_across_testonly (bazelbuild/bazel#28115)
- Add option to continue with local execution if remote cache is unavailable (bazelbuild/bazel#28001)
gh-worker-dd-mergequeue-cf854d bot pushed a commit to DataDog/datadog-agent that referenced this pull request Feb 27, 2026
### What does this PR do?
Bump `bazel` version from 8.5.1 to 8.6.0 to benefit from a series of improvements and fixes.
Ours (bazelbuild/bazel#28367) allows to re-enable "convenience symlinks" for Windows users and makes [`path.realpath`](https://bazel.build/rules/lib/builtins/path#realpath) succeed when sharing a folder between a Linux host and a Windows VM.

### Motivation
Selected changes between 8.5.1 and 8.6.0:
- 💡 bazelbuild/bazel#28001
- bazelbuild/bazel#28012
- 💡 bazelbuild/bazel#28189
- bazelbuild/bazel#28277
- bazelbuild/bazel#28343
- 🐕 bazelbuild/bazel#28367
- bazelbuild/bazel#28529
- bazelbuild/bazel#28538
- bazelbuild/bazel#28551
- bazelbuild/bazel#28722

Co-authored-by: regis.desgroppes <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

team-Documentation Documentation improvements that cannot be directly linked to other team labels team-ExternalDeps External dependency handling, remote repositiories, WORKSPACE file.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants