Skip to content

Conversation

@sven-oly
Copy link
Collaborator

@sven-oly sven-oly commented Sep 8, 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.

Summary of Changes

Hello @sven-oly, 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 primarily focuses on improving the robustness and clarity of error reporting within the system and enhancing data schemas. It standardizes error messages in the NodeJS executor and the Python test driver to provide more contextual information when issues arise. Additionally, it introduces a new hash_id field across multiple test schemas, which will aid in data management and identification.

Highlights

  • Enhanced Error Reporting in NodeJS Executor: The NodeJS executor now provides more detailed error responses for unsupported test types, including a specific label and error detail.
  • Schema Updates for hash_id: Several test schemas (collation, lang_names, likely_subtags, number_format) have been updated to include a new hash_id property for better data identification.
  • Improved Error Handling in Python Test Driver: The Python test driver's error handling for subprocess failures has been refined to retain the original input label and provide a more descriptive error detail.
Using Gemini Code Assist

The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

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 aims to improve error handling for missing executors in NodeJS and updates several JSON schemas. My review identified a critical syntax error in the JavaScript executor and two critical bugs in the Python test driver that would lead to runtime crashes. Additionally, I've pointed out some minor typos in the descriptions within the updated JSON schema files. The suggested fixes should resolve these issues.

Comment on lines 515 to 520
error_result = {'label': input['label'],
'input_data': input_line,
'error': self.run_error_message
'error': self.run_error_message,
'error_detail': 'severe error from subprocess ' +
result.returncode,
}

Choose a reason for hiding this comment

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

critical

This block introduces two critical issues that will cause a crash:

  1. NameError: The variable input is used to get a label (input['label']), but it is not defined within this else block's scope. It is only defined in the except block below.
  2. TypeError: result.returncode is an integer. Concatenating it with a string using + will raise a TypeError. It must be converted to a string first, for example, by using str(result.returncode).

I've provided a suggestion that resolves both issues by safely parsing the input to retrieve the label and correctly handling the type conversion.

                label = 'UNKNOWN'
                try:
                    input_json = json.loads(input_line.splitlines()[0])
                    label = input_json.get('label', 'UNKNOWN')
                except (IndexError, json.JSONDecodeError):
                    pass  # Fallback to 'UNKNOWN' if parsing fails
                error_result = {'label': label,
                                'input_data': input_line,
                                'error': self.run_error_message,
                                'error_detail': 'severe error from subprocess ' +
                                    str(result.returncode),
                                }

Copy link
Member

Choose a reason for hiding this comment

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

please fix

@sven-oly
Copy link
Collaborator Author

Is this still relevant / important?

Copy link
Member

@sffc sffc left a comment

Choose a reason for hiding this comment

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

It's not clear to me what this PR changes: it adds context to two errors that were already errors, but it doesn't catch anything new as far as I can tell?

Comment on lines 515 to 520
error_result = {'label': input['label'],
'input_data': input_line,
'error': self.run_error_message
'error': self.run_error_message,
'error_detail': 'severe error from subprocess ' +
result.returncode,
}
Copy link
Member

Choose a reason for hiding this comment

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

please fix

Comment on lines 115 to 118
"hash_id": {
"description": "Has value of the JSON string omitting label value",
"type": "integer"
}
Copy link
Member

Choose a reason for hiding this comment

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

Question: I don't see hash_id used anywhere in this PR outside the schema. Why do you need it?

@sven-oly sven-oly force-pushed the handle_missing_label branch from adf6fb2 to 218d52a Compare October 2, 2025 18:13
Copy link
Member

@sffc sffc left a comment

Choose a reason for hiding this comment

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

My concerns about the new schema field hash_id being added but not being used in this PR are still open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants