Skip to content

Conversation

@thirtyseven
Copy link
Contributor

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @thirtyseven, 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 resolves a critical issue where some Python wheels, upon extraction, lack the necessary read permissions on their internal files, leading to errors in downstream processes. The change implements a post-extraction step to explicitly set appropriate file permissions (read for files, read and execute for directories) on non-Windows operating systems, thereby ensuring the integrity and usability of the extracted wheel contents.

Highlights

  • Permission Fix for Extracted Wheels: Addresses an issue where certain Python wheels are extracted without proper read permissions, causing subsequent failures when attempting to access their contents.
  • Cross-Platform Permission Handling: Introduces a chmod command on Unix-like systems to recursively add read permissions to all extracted files and ensure directories are traversable (execute permission), while skipping this step on Windows.

🧠 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 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 adds a step to set read permissions on files extracted from a wheel, which fixes issues with wheels that have incorrect permissions. The change is specific to non-Windows systems. My review suggests two minor improvements for robustness and conciseness: using a more precise comparison to detect the Windows OS, and simplifying the chmod arguments.

thirtyseven and others added 3 commits January 30, 2026 11:19
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Copy link
Collaborator

@rickeylev rickeylev left a comment

Choose a reason for hiding this comment

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

Does this only occur with pipstar enabled? If so, @aignas I'd be +1 on a patch release of this fix.

@aignas
Copy link
Collaborator

aignas commented Jan 31, 2026

Hmm, well this is a bummer. Having to chmod files when extracting is not ideal.

I would say that is a missing feature in bazel's extract function. What is the reason for keeping such incorrect permissions when extracting?

I remember some users mentioned that they have no chmod on their runners, so we should think about using rusts uutils for this. However, what happens for really large wheels?

Should we just disable extracting of the wheel with Starlark for now?

@thirtyseven
Copy link
Contributor Author

This might also be a bug in the release process for this wheel, I can't see a good reason to publish a wheel that is broken like this. If it's not widespread and we can't assume chmod is available, maybe it can just be WAI.

@rickeylev
Copy link
Collaborator

Lets just make the chmod call optional. If chmod is present, great, it lets us handle this edge case. If not, oh well. i.e. change the logic to ignore errors.

I'd be +1 on more advanced solutions, e.g.

  • If system chmod is missing, use a tool from a bazel reference
  • Have a custom extract tool instead of Bazel's extract. (I'd be particularly +1 on this because bazel's extract is known to perform poorly with large archives compared to some other tools)

But, I don't think we need to block a fix that captures the majority case.

Should we just disable extracting of the wheel with Starlark for now?

You mean disable pipstar? I'll defer to you on that, but I'd lean towards no.

@aignas
Copy link
Collaborator

aignas commented Feb 1, 2026

The extraction of the wheel and the parsing of the METADATA feature flags can be toggled independently.

Regarding a long term fix, I agree, a separate binary that is fast and performant would be better in this case.

@rickeylev rickeylev changed the title pip: Set read permissions when extracting wheels fix(pip): add read permissions when extracting wheels Feb 1, 2026
@rickeylev rickeylev enabled auto-merge February 1, 2026 19:56
@rickeylev rickeylev added this pull request to the merge queue Feb 1, 2026
Merged via the queue into bazel-contrib:main with commit 96a1653 Feb 1, 2026
4 checks passed
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.

(pipstar) Wheel install fails when wheel has bogus permissions

3 participants