Skip to content

chore: ignore rmtree errors in wheel_installer_test#3607

Open
rickeylev wants to merge 1 commit intobazel-contrib:mainfrom
rickeylev:chore.fix.rmtree
Open

chore: ignore rmtree errors in wheel_installer_test#3607
rickeylev wants to merge 1 commit intobazel-contrib:mainfrom
rickeylev:chore.fix.rmtree

Conversation

@rickeylev
Copy link
Collaborator

@rickeylev rickeylev commented Feb 18, 2026

When run on Windows with zip mode disabled, the cleanup can fail if the files are
still open on Windows. This is an innocuous failure, so just ignore it.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @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 primarily focuses on improving the robustness and Windows compatibility of the Python build system and related tests. It addresses issues with file encoding, path handling, and file deletion on Windows, ensuring more reliable execution across different operating systems.

Highlights

  • Windows Compatibility: Enhanced PowerShell script for build data writing and Python bootstrap script for handling Windows paths and file encoding.
  • Robustness: Improved error handling and diagnostics when reading build data files.
  • Test Stability: Fixed a test failure on Windows by making rmtree more resilient.

🧠 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
  • python/private/build_data_writer.ps1
    • Refactored file writing to use .NET methods for better control over encoding (UTF8 without BOM) and to avoid PowerShell's default encoding/locking quirks.
    • Added explicit ACL setting to grant "Everyone" read access to the output file.
    • Included Test-Path checks before attempting to read VersionFilePath and InfoFilePath.
  • python/private/py_executable.bzl
    • Replaced a manual string format for stage2_bootstrap path with a call to runfiles_root_path for consistent path resolution.
  • python/private/stage2_bootstrap_template.py
    • Added a comment indicating that BUILD_DATA_FILE paths need conversion for Windows.
    • Implemented Windows-specific logic in get_build_data to convert forward slashes to backslashes and normalize paths.
    • Switched to utf-8-sig encoding when opening the build data file to correctly handle Byte Order Marks (BOM) on Windows.
    • Enhanced exception handling in get_build_data to add diagnostic notes about the lookup path, file existence, and readability when an error occurs.
  • tests/pypi/whl_installer/wheel_installer_test.py
    • Modified the tearDown method to call shutil.rmtree with ignore_errors=True to prevent test failures on Windows where the wheel file might remain open.
Activity
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 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.

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
Contributor

@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 introduces several changes to improve Windows compatibility. This includes updating a PowerShell script to use .NET for file writing to avoid encoding and locking issues, adding checks for file existence, and adjusting file permissions. It also refactors a path construction in a Bazel file to correctly handle external repositories. In a Python bootstrap template, it enhances Windows path handling and error reporting. Finally, it fixes a flaky test on Windows by ignoring errors during cleanup.

My review identifies one potential issue in python/private/stage2_bootstrap_template.py where path separators are being converted for Windows before being passed to a runfiles function that expects forward slashes. I've suggested a correction for this.

@rickeylev rickeylev changed the title chore: fix rmtree in wheel_installer_test chore: ignore rmtree errors in wheel_installer_test Feb 18, 2026
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.

1 participant

Comments