- Notifications
You must be signed in to change notification settings - Fork74
chore: require Python ≥ 3.9#2502
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
base:main
Are you sure you want to change the base?
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Summary of ChangesHello@vchudnov-g, 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 updates the project's minimum Python version requirement from 3.7 to 3.9. This change is consistently applied across the project's configuration, including the Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on ourdocumentation 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 uphere. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with theGemini 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 begins the process of requiring Python 3.9 or newer by updatingDEVELOPMENT.md,noxfile.py, andsetup.py. The changes made are correct, but the effort is incomplete. The update tonoxfile.py leaves behind several blocks of obsolete code that were specific to the now-unsupported Python 3.7 and 3.8 versions. Additionally, crucial template files likegapic/templates/noxfile.py.j2 andgapic/templates/setup.py.j2 have not been updated, meaning newly generated clients will not reflect the new minimum Python version. I've left a specific comment onnoxfile.py and recommend updating the template files to complete this change.
I am having trouble creating individual review comments. Click here to see my feedback.
noxfile.py (40-41)
While removing Python 3.7 and 3.8 fromALL_PYTHON is correct, there are several other places in this file that have conditional logic for these older Python versions. Now that they are no longer supported, this code is obsolete and should be removed to improve maintainability.
Specifically, please check:
- Line 167:
"asyncmock; python_version < '3.8'" - Lines 340-358: The
if session.python == "3.7":block. - Line 480:
"asyncmock; python_version < '3.8'" - Lines 486-499: The
if session.python == "3.7" and rest_async_io_enabled:block.
vchudnov-g commentedDec 8, 2025
/gemini Why is "Tests / fragment (3.12)" failing? It passes locally on my machine. |
Hello@vchudnov-g, thanks for reaching out! Regarding the "Tests / fragment (3.12)" failing, it appears to be related to a change in In the Previously, this constraint was applied to Python versions 3.7, 3.8, 3.9, and 3.10. With the changes in this PR, the constraint is now only applied to Python 3.9 and 3.10 (see # The specific failure is `Plugin output is unparseable`ifsession.pythonin ("3.9","3.10"):session.install("google-api-core<2.28") This means that for Python 3.11 and 3.12, the To debug this, I recommend checking the CI logs for the "Tests / fragment (3.12)" job to see:
If the issue persists, you might need to either:
|
vchudnov-g commentedDec 8, 2025
/gemini The error does not seem to be coming from that cause. A typical error message is this: What could be causing this new error in this PR, given that tests were passing at |
Thanks for providing the detailed error message,@vchudnov-g! That clarifies the situation significantly, and you are absolutely right that my previous assessment about The error Looking at the changes in To resolve this, please re-add Here's a suggested change: "grpcio-tools", )session.install("-e",".")# The specific failure is `Plugin output is unparseable`ifsession.pythonin ("3.9","3.10"):session.install("google-api-core<2.28") This should make the |
I meant to fix this before committing (it was done by Gemini CLI) butI forgot.
vchudnov-g commentedDec 10, 2025
/gemini Why is |
Thanks for the update,@vchudnov-g. It's good to hear that the Based on the changes in this PR, the most likely source of the dependency conflict is the interaction between two specific requirements:
While the direct dependency ranges of To pinpoint the exact conflict, I recommend examining the detailed logs from the Once you have the detailed error from
|
vchudnov-g commentedDec 10, 2025
/gemini This is the error message about the dependency conflict: |
Thanks for providing the detailed error message,@vchudnov-g. This clarifies the dependency conflict for The error message: This indicates a conflict primarily between While To resolve this, I recommend the following steps:
The most straightforward path is often to update dependencies to their latest compatible versions, assuming the underlying issues they addressed have been resolved in newer releases. |
Otherwise we get a dependency conflict in the fragment tests.
No description provided.