-
Notifications
You must be signed in to change notification settings - Fork 74
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 our terms of service and privacy 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?
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 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 begins the process of requiring Python 3.9 or newer by updating DEVELOPMENT.md, noxfile.py, and setup.py. The changes made are correct, but the effort is incomplete. The update to noxfile.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 like gapic/templates/noxfile.py.j2 and gapic/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 on noxfile.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 from ALL_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.
e338674 to
f838eee
Compare
|
/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`
if session.python in ("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:
|
|
/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`
if session.python in ("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) but I forgot.
|
/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
|
|
/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.
4fe1695 to
85365cf
Compare
No description provided.