-
-
Notifications
You must be signed in to change notification settings - Fork 659
fix(pip): add read permissions when extracting wheels #3555
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 @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
🧠 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 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.
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>
rickeylev
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.
Does this only occur with pipstar enabled? If so, @aignas I'd be +1 on a patch release of this fix.
|
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? |
|
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. |
|
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.
But, I don't think we need to block a fix that captures the majority case.
You mean disable pipstar? I'll defer to you on that, but I'd lean towards no. |
|
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. |
Fix for wheels like https://files.pythonhosted.org/packages/ad/39/da8b5c0f875ccb1770349caaecd87a253949ccbcdc2c869929919d744551/ag_ui_adk-0.4.2-py3-none-any.whl where the contents do not have the read bit set.
Fixes #3554