Support {name} and {version} placeholders in use_repo#27890
Support {name} and {version} placeholders in use_repo#27890fmeum wants to merge 1 commit intobazelbuild:masterfrom
{name} and {version} placeholders in use_repo#27890Conversation
Summary of ChangesHello @fmeum, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances Bazel's Bzlmod system by enabling the use of dynamic placeholders, specifically Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces support for {name} and {version} placeholders in the use_repo function for module extensions. The implementation correctly replaces these placeholders with the module's name and normalized version. The changes are well-tested with various version string formats. I've provided one suggestion to improve code clarity and avoid repeated method calls within a loop. Overall, this is a good addition.
src/main/java/com/google/devtools/build/lib/bazel/bzlmod/ModuleFileGlobals.java
Show resolved
Hide resolved
9b86d9a to
89b93a7
Compare
{name} and {version} placeholders in use_repo{name} and {version} placeholders in use_repo
|
@bazel-io fork 9.0.0 |
This allows module extensions to reliably namespace repos created by individual modules, even in the presence of `multiple_version_override`, without causing additional churn for users during version bumps. In particular, projects with a publishing workflow that patches in the `version` attribute of the `module` function don't need to modify that workflow to e.g. patch a global constant or also search for the old version in `use_repo` call arguments. Context: https://bazelbuild.slack.com/archives/C09E58X3AQ7/p1764934858912079 RELNOTES: The values of keyword arguments passed to `use_repo` can now contain the special substrings `{name}` and `{version}`, which are treated as equivalent to the corresponding attributes of the current module. Closes bazelbuild#27890. PiperOrigin-RevId: 845156030 Change-Id: Ic5d777645bf6a5ca67fa6cb577f426c96beda894
…28016) This allows module extensions to reliably namespace repos created by individual modules, even in the presence of `multiple_version_override`, without causing additional churn for users during version bumps. In particular, projects with a publishing workflow that patches in the `version` attribute of the `module` function don't need to modify that workflow to e.g. patch a global constant or also search for the old version in `use_repo` call arguments. Context: https://bazelbuild.slack.com/archives/C09E58X3AQ7/p1764934858912079 RELNOTES: The values of keyword arguments passed to `use_repo` can now contain the special substrings `{name}` and `{version}`, which are treated as equivalent to the corresponding attributes of the current module. Closes #27890. PiperOrigin-RevId: 845156030 Change-Id: Ic5d777645bf6a5ca67fa6cb577f426c96beda894 Commit 7ca1159 Co-authored-by: Fabian Meumertzheim <[email protected]>
This allows module extensions to reliably namespace repos created by individual modules, even in the presence of
multiple_version_override, without causing additional churn for users during version bumps. In particular, projects with a publishing workflow that patches in theversionattribute of themodulefunction don't need to modify that workflow to e.g. patch a global constant or also search for the old version inuse_repocall arguments.Context: https://bazelbuild.slack.com/archives/C09E58X3AQ7/p1764934858912079
RELNOTES: The values of keyword arguments passed to
use_repocan now contain the special substrings{name}and{version}, which are treated as equivalent to the corresponding attributes of the current module.