gemini-code-assist[bot] commented on PR #37693:
URL: https://github.com/apache/beam/pull/37693#issuecomment-3948251812

   ## Summary of Changes
   
   Hello @derrickaw, I'm Gemini Code Assist[^1]! 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 reverses a prior decision to use `pythonmonkey` for 
JavaScript execution in Apache Beam's YAML components, reinstating `js2py`. The 
change addresses underlying issues that necessitated the revert, including 
ensuring proper serialization of JavaScript objects and managing `js2py`'s 
compatibility with Python versions. It aims to stabilize the JavaScript mapping 
functionality by returning to a previously working solution while acknowledging 
`js2py`'s limitations on newer Python environments.
   
   ### Highlights
   
   * **Revert JavaScript Engine**: The pull request reverts the previous change 
from `pythonmonkey` back to `js2py` for executing JavaScript mapping functions 
within Apache Beam's YAML transforms.
   * **CVE Fix Placeholder**: The `CHANGES.md` file was updated to use a 
generic placeholder for a security fix, indicating the original CVE-2024-28397 
fix related to the `js2py` to `pythonmonkey` switch is being re-evaluated or 
reverted.
   * **js2py Compatibility**: The `js2py` dependency is now explicitly 
constrained to Python versions less than 3.12, addressing potential 
compatibility issues with newer Python releases.
   * **Pickling for JsObjectWrapper**: A custom `_CustomJsObjectWrapper` class 
was introduced to correctly handle pickling of `js2py.base.JsObjectWrapper` 
objects, which previously had self-referencing `__dict__` properties.
   * **YAML Transform Definition Update**: The `num_shards` parameter was 
removed from the `WriteToJson` transform definition in `standard_io.yaml`.
   
   🧠 **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](https://codeassist.google/code-review/login) to enable Memory in your 
admin console.**
   
   <details>
   <summary><b>Changelog</b></summary>
   
   * **CHANGES.md**
       * Updated the security fixes entry to a generic placeholder.
   * **sdks/python/apache_beam/yaml/standard_io.yaml**
       * Removed the 'num_shards' parameter from the 'WriteToJson' transform.
   * **sdks/python/apache_beam/yaml/yaml_mapping.py**
       * Removed imports and code related to 'pythonmonkey' and its dispatcher.
       * Reintroduced imports for 'js2py' and its base classes.
       * Added a '_CustomJsObjectWrapper' class to enable pickling of 
'js2py.base.JsObjectWrapper' instances.
       * Modified '_expand_javascript_mapping_func' to utilize 'js2py' for 
JavaScript evaluation and result conversion.
   * **sdks/python/apache_beam/yaml/yaml_udf_test.py**
       * Removed 'importlib' import.
       * Updated import logic to check for 'js2py' availability instead of 
'pythonmonkey'.
       * Modified 'unittest.skipIf' decorators to conditionally skip tests 
based on 'js2py' installation.
   * **sdks/python/setup.py**
       * Replaced the 'pythonmonkey' dependency with 'js2py', adding a version 
constraint for Python versions less than 3.12.
   </details>
   
   <details>
   <summary><b>Using Gemini Code Assist</b></summary>
   <br>
   
   The full guide for Gemini Code Assist can be found on our [documentation 
page](https://developers.google.com/gemini-code-assist/docs/review-github-code),
 here are some quick tips.
   
   <b>Invoking Gemini</b>
   
   You can request assistance from Gemini at any point by creating a comment 
using either `/gemini <command>` or `@gemini-code-assist <command>`. Below is a 
summary of the supported commands on the current page.
   
   Feature | Command | Description
   --- | --- | ---
   Code Review | `/gemini review` | Performs a code review for the current pull 
request in its current state.
   Pull Request Summary | `/gemini summary` | Provides a summary of the current 
pull request in its current state.
   Comment | @gemini-code-assist | Responds in comments when explicitly tagged, 
both in pull request comments and review comments.
   Help | `/gemini help` | Displays a list of available commands.
   
   <b>Customization</b>
   
   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 
`.gemini/` folder in the base of the repository. Detailed instructions can be 
found 
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
   
   <b>Limitations & Feedback</b>
   
   Gemini Code Assist may make mistakes. Please leave feedback on any instances 
where its feedback is incorrect or counter productive. You can react with 
:thumbsup: and :thumbsdown: 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](https://google.qualtrics.com/jfe/form/SV_2cyuGuTWsEw84yG).
   
   <b>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](https://cloud.google.com/products/gemini/code-assist).</b>
   </details>
   
   
   [^1]: Review the [Privacy Notices](https://policies.google.com/privacy), 
[Generative AI Prohibited Use 
Policy](https://policies.google.com/terms/generative-ai/use-policy), [Terms of 
Service](https://policies.google.com/terms), and learn how to configure Gemini 
Code Assist in GitHub 
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
 Gemini can make mistakes, so double check it and [use code with 
caution](https://support.google.com/legal/answer/13505487).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to