-
Notifications
You must be signed in to change notification settings - Fork 6.6k
chore(deps): update dependency google-cloud-storage to v3.1.1 #13445
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?
chore(deps): update dependency google-cloud-storage to v3.1.1 #13445
Conversation
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.
Summary of Changes
Hello @renovate-bot, 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, automatically generated by Renovate, updates the google-cloud-storage
Python client library across various sample applications and test configurations. The update brings the dependency to version 3.1.1
, incorporating numerous bug fixes, new features, and breaking changes introduced in the 3.0.0
and 3.1.0
releases.
Highlights
- Core Dependency Upgrade: The
google-cloud-storage
Python client library has been updated to its latest stable version,3.1.1
. - Major Version Transition: This update includes a significant jump from previous
2.x
versions to3.x
, which introduces several breaking changes such as altered default checksum strategies for uploads/downloads, removal of deprecated arguments (num_retries
,text_mode
), and changes to retry behavior for media operations. - Feature Enhancements: New features from
v3.0.0
andv3.1.0
are now available, including anapi_key
argument for the Client constructor,Bucket.move_blob()
for HNS-enabled buckets, and improved checksum options. - Bug Fixes and Stability: The update incorporates various bug fixes, including a check for partial response data, resolution of pre-release dependency installation issues, and a fix for a segmentation fault in
tink
during data writing. - Widespread Application: The dependency update is applied consistently across numerous
requirements.txt
andrequirements-test.txt
files throughout the repository, ensuring all relevant samples leverage the updated library.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
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 issue 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 is currently in preview and 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 to provide feedback.
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
-
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. ↩
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 PR updates google-cloud-storage
to v3.1.1
across numerous requirements.txt
files. This is a significant update, particularly for samples and applications moving from v2.x.x
versions of the library to v3.1.1
.
Key Concerns & Recommendations:
-
Python Version Incompatibility (Critical):
google-cloud-storage >= 3.0.0
(which includes the targetv3.1.1
) requires Python 3.7+. Severalrequirements.txt
files in this PR currently specify compatibility withpython_version < '3.7'
(implying Python 3.6 support). This update, as is, will cause installation failures or runtime errors in Python 3.6 environments for those specific samples/applications. This needs to be addressed urgently. I've added a specific comment onauth/cloud-client/requirements.txt
detailing this critical issue, which applies to multiple files. -
Breaking API Changes in v3.0.0 (Critical):
The upgrade fromv2.x.x
tov3.x.x
(specifically thev3.0.0
release) introduced several breaking changes. Applications relying on the previous default behaviors or deprecated/renamed features will need to be updated. Key breaking changes include modifications to default checksum strategies, removal of certain arguments (num_retries
,text_mode
), changes inBlob.download_to_filename()
behavior on 404s, updates to retry mechanisms, and method renames (e.g.,Blob.from_string()
toBlob.from_uri()
). The PR description includes detailed release notes which should be reviewed carefully. I've added a specific comment onappengine/flexible/storage/requirements.txt
highlighting these concerns for projects making this major version jump. -
Thorough Testing Required:
Given these significant changes, it is crucial that all affected samples and applications are thoroughly tested to ensure they function correctly and as expected withgoogle-cloud-storage v3.1.1
.
This automated dependency update by Renovate underscores the importance of careful review and adaptation when major library versions with breaking changes are introduced.
@@ -1,2 +1,2 @@ | |||
google-cloud-storage==2.9.0; python_version < '3.7' | |||
google-cloud-storage==2.9.0; python_version > '3.6' | |||
google-cloud-storage==3.1.1; python_version < '3.7' |
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.
Critical: Python Version Incompatibility
The updated google-cloud-storage==3.1.1
requires Python 3.7 or newer. This line, google-cloud-storage==3.1.1; python_version < '3.7'
, attempts to install this version for Python environments older than 3.7 (e.g., Python 3.6), which is incompatible and will lead to installation or runtime errors.
The previous version google-cloud-storage==2.9.0
supported Python 3.6+.
Affected files: This issue applies to all requirements.txt
files in this PR that have a similar python_version < '3.7'
specifier for google-cloud-storage
, including (but not limited to):
auth/downscoping/requirements-test.txt
auth/downscoping/requirements.txt
functions/http/requirements.txt
functions/v2/imagemagick/requirements.txt
healthcare/api-client/v1/fhir/requirements.txt
healthcare/api-client/v1beta1/fhir/requirements.txt
storage/s3-sdk/requirements-test.txt
storage/signed_urls/requirements.txt
storagetransfer/requirements-test.txt
Recommendation:
To resolve this, you should either:
- Update the Python version support for these specific samples to require Python 3.7+ and change this specifier accordingly (e.g., to
python_version >= '3.7'
). - If Python 3.6 support must be maintained for these samples, you must pin
google-cloud-storage
to a version compatible with Python 3.6 (i.e.,<3.0.0
) for this specific constraint.
google-cloud-storage<3.0.0; python_version < '3.7' # Pin to a 2.x version for Python 3.6 compatibility
@@ -1,3 +1,3 @@ | |||
Flask==3.0.3 | |||
google-cloud-storage==2.9.0 | |||
google-cloud-storage==3.1.1 |
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.
Critical: Major Version Upgrade with Breaking API Changes
This update from google-cloud-storage==2.9.0
to ==3.1.1
crosses a major version boundary (v3.0.0
), which introduced significant breaking changes. The application code using this library (e.g., appengine/flexible/storage/main.py
) needs to be carefully reviewed and tested for compatibility.
Key breaking changes in google-cloud-storage v3.0.0
that might affect your application:
- Default Checksum Strategy: Changed for both uploads (
None
to"auto"
) and downloads ("md5"
to"auto"
). This could impact how data integrity is verified. - Removed/Renamed Arguments & Methods:
- The positional argument
num_retries
has been removed from various methods. - The
text_mode
argument has been removed. Blob.from_string()
andBucket.from_string()
were renamed toBlob.from_uri()
andBucket.from_uri()
respectively.
- The positional argument
Blob.download_to_filename()
Behavior: Now deletes the empty destination file if a 404 error occurs during download.- Retry Mechanism: Media operations now use the same retry system as non-media operations. Retries are also enabled by default for uploads, blob deletes, and blob metadata updates, which might alter how transient network issues are handled.
Please thoroughly review the v3.0.0 release notes (also available in the PR description) for a comprehensive list of changes. Extensive testing of the main.py
and related functionalities in this directory is essential to ensure compatibility and prevent unexpected behavior.
This PR contains the following updates:
==2.9.0
->==3.1.1
==2.10.0
->==3.1.1
==2.18.2
->==3.1.1
==2.17.0
->==3.1.1
==2.0.0
->==3.1.1
==2.12.0
->==3.1.1
==2.13.0
->==3.1.1
==2.16.0
->==3.1.1
==2.19.0
->==3.1.1
~=2.10.0
->~=3.1.1
==3.1.0
->==3.1.1
==2.18.0
->==3.1.1
Release Notes
googleapis/python-storage (google-cloud-storage)
v3.1.1
Compare Source
Bug Fixes
Documentation
v3.1.0
Compare Source
Features
v3.0.0
Compare Source
⚠ BREAKING CHANGES
Please consult the README for details on this major version release.
Features
Bug Fixes
Blob.from_string()
andBucket.from_string()
tofrom_uri()
(#1335) (58c1d03)Documentation
v2.19.0
Compare Source
Features
Bug Fixes
v2.18.2
Compare Source
Bug Fixes
v2.18.1
Compare Source
Bug Fixes
v2.18.0
Compare Source
Features
Bug Fixes
v2.17.0
Compare Source
Features
Bug Fixes
Documentation
v2.16.0
Compare Source
Features
v2.15.0
Compare Source
Features
Bug Fixes
v2.14.0
Compare Source
Features
Bug Fixes
v2.13.0
Compare Source
Features
Bug Fixes
Documentation
v2.12.0
Compare Source
Features
Bug Fixes
Documentation
v2.11.0
Compare Source
Features
Bug Fixes
Documentation
v2.10.0
Compare Source
Features
Bug Fixes
Documentation
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Never, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.