Skip to content

feat: handle url req in wheelmaker#3569

Open
martin4861 wants to merge 7 commits intobazel-contrib:mainfrom
martin4861:handle-url-req-in-wheelmaker
Open

feat: handle url req in wheelmaker#3569
martin4861 wants to merge 7 commits intobazel-contrib:mainfrom
martin4861:handle-url-req-in-wheelmaker

Conversation

@martin4861
Copy link

Adapt wheelmaker so that it now can also handle PEP 508 URL requirements using the req.url attribute.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @martin4861, 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 significantly enhances the wheelmaker utility by adding robust support for PEP 508 URL requirements. The core change involves refactoring the logic for parsing and formatting package requirements into a dedicated, reusable function that can properly interpret and represent URL-based dependencies in the generated wheel metadata. This improvement ensures better compatibility with modern Python packaging standards and more flexible dependency management, backed by new comprehensive unit tests.

Highlights

  • New Feature: PEP 508 URL Requirements Support: The wheelmaker tool can now correctly process and include PEP 508 URL requirements in the generated wheel metadata, allowing for dependencies specified via direct URLs.
  • New Utility Function for Requirement Formatting: A new global utility function, get_new_requirement_line, has been introduced in wheelmaker.py. This function is responsible for formatting requirement strings, including handling URL requirements, extras, and markers, into standard Requires-Dist metadata lines.
  • Expanded Test Coverage: New unit tests have been added in tests/tools/wheelmaker_test.py to verify the correct behavior of the get_new_requirement_line function, specifically covering basic requirements, requirements with extras, and requirements with URLs.

🧠 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
  • tests/tools/wheelmaker_test.py
    • Added a new test class GetNewRequirementLineTest.
    • Included test cases for basic requirements, requirements with extras, and requirements with URLs to validate the new get_new_requirement_line function.
  • tools/wheelmaker.py
    • Introduced a new global function get_new_requirement_line to handle the formatting of Requires-Dist metadata, including support for PEP 508 URL requirements.
    • Removed the previous inline definition of get_new_requirement_line from the main function, replacing it with a call to the new global utility.
    • Applied minor formatting adjustments to the add_wheelfile method and the help text for the --name_file argument in parse_args.
Activity
  • No activity (comments, reviews, etc.) has been provided for this pull request.
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 adapts wheelmaker to handle PEP 508 URL requirements by refactoring and enhancing the get_new_requirement_line function. The changes are well-tested and correctly implement the desired functionality. I have one suggestion to improve the readability and maintainability of the new function.

@martin4861 martin4861 marked this pull request as ready for review February 6, 2026 08:08
@martin4861 martin4861 force-pushed the handle-url-req-in-wheelmaker branch 2 times, most recently from 80474b8 to 14288b7 Compare February 6, 2026 10:35
@martin4861 martin4861 force-pushed the handle-url-req-in-wheelmaker branch from 14288b7 to f0e0e5d Compare February 6, 2026 14:31
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