Skip to content

feat: handle url req in wheelmaker#3569

Merged
aignas merged 9 commits intobazel-contrib:mainfrom
martin4861:handle-url-req-in-wheelmaker
Feb 9, 2026
Merged

feat: handle url req in wheelmaker#3569
aignas merged 9 commits intobazel-contrib:mainfrom
martin4861:handle-url-req-in-wheelmaker

Conversation

@martin4861
Copy link
Contributor

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 3 times, most recently from 14288b7 to f0e0e5d Compare February 6, 2026 14:31
@martin4861
Copy link
Contributor Author

@rickeylev @aignas would you mind having a look at the PR? Thanks a lot in advance.

Copy link
Collaborator

@aignas aignas left a comment

Choose a reason for hiding this comment

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

Code LGTM.

Could you please add a CHANGELOG line to make a note of a newly added feature?

@martin4861 martin4861 force-pushed the handle-url-req-in-wheelmaker branch from f0e0e5d to ed76825 Compare February 9, 2026 06:11
@martin4861
Copy link
Contributor Author

Code LGTM.

Could you please add a CHANGELOG line to make a note of a newly added feature?

Sure, done! Thanks for your review!

@martin4861 martin4861 force-pushed the handle-url-req-in-wheelmaker branch from ed76825 to a6bff79 Compare February 9, 2026 06:30
@martin4861 martin4861 requested a review from aignas February 9, 2026 06:41
@aignas aignas enabled auto-merge February 9, 2026 06:45
@aignas
Copy link
Collaborator

aignas commented Feb 9, 2026

Thank you for your contribution!

@aignas aignas added this pull request to the merge queue Feb 9, 2026
Merged via the queue into bazel-contrib:main with commit 0f4ff60 Feb 9, 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.

2 participants