feat: command_line_option transition support, default windows to enable_runfiles=true#3610
feat: command_line_option transition support, default windows to enable_runfiles=true#3610rickeylev wants to merge 5 commits intobazel-contrib:mainfrom
Conversation
Summary of ChangesHello @rickeylev, 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 introduces significant enhancements to how Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
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 //command_line_option transitions in py_binary and py_test rules, providing more flexible configurations. However, a critical security issue was identified in the PowerShell script (build_data_writer.ps1) used to write build data on Windows, as it explicitly grants global read access to the output file. This violates the principle of least privilege and requires remediation. Additionally, consider adding documentation for the new feature and a minor refactoring for improved code conciseness.
23c21b1 to
4187c31
Compare
4187c31 to
a297813
Compare
a297813 to
9cd82dc
Compare
In order to run a
py_binaryon Windows, runfiles need to be created. However, Bazeldefaults to
--enable_runfiles=falsefor Windows.To fix, make
py_binarysetenable_runfiles=truefor Windows by default. Thisis chosen because supporting a runfiles-less mode is quite invasive (many changes
to bootstraps, plus improving the existing "recreate venv at runtime" logic to
recreate the entire venv).
A complication is that the
//command_line_option:...targets don't actuallyexist, so they can't be passed as targets to the
config_settingsattribute(Bazel special cases them in other contexts). To fix, fake alias targets are created,
and the py_binary transition logic is updated to treat those fakes as aliases
for the real ones.
To allow arbitrary
//command_line_optionflags to be transitioned on (using theadd_transition_label()apis), the parsing logic treats any label whose packageis
command_line_optionas such a special aliases.