-
-
Notifications
You must be signed in to change notification settings - Fork 645
feat: add --debugger flag #3478
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
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 enhances the debugging experience for Python binaries and tests by introducing a new 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. 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.
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 introduces a --debugger flag to inject a debugger dependency into py_binary and py_test targets. It also makes py_binary and py_test targets implicitly inherit the PYTHONBREAKPOINT environment variable. The implementation is clean and includes documentation and tests for the new flag. A significant part of this PR is a refactoring that removes the semantics struct pattern from py_executable.bzl and py_library.bzl, simplifying the code by removing a layer of indirection. The changes look solid. I have one minor suggestion for improving the accuracy of the changelog.
| to modify their deps. The expectation is it points to a target that provides an | ||
| alternative debugger (pudb, winpdb, debugpy, etc). | ||
|
|
||
| * Must provide {obj}`PyInfo`. |
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 see that the debugpy can be used either as a CLI via python -m debugpy which could work well with our main_module or via import debugpy that would automatically work with this as well. To be truly useful, it would be nice to give at least one example how to setup the debugger. That can be done in a separate PR though.
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.
What does python -m debugpy do? Just start a debugpy server?
debugpy is particularly interesting because its a client/server design, so it can can actually Just Work with bazel test (where stdin is gone).
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
|
re: example for how to use them: I added a basic howto doc. |
…es_python into feat.debugger.flag
…into refactor.cleanup.semantics
aignas
left a comment
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.
Thanks!
The --debugger flag is useful for injecting a user-specified dependency without
having to modify the binary or test. Similarly, tests now implicitly inherit the
PYTHONBREAKPOINTenvironment variable.The dependency is only added for the target config because build tools can't be
intercepted for debugging.