feat(storage): support delete_source_objects in compose API#17015
feat(storage): support delete_source_objects in compose API#17015nidhiii-27 wants to merge 71 commits into
Conversation
Implements the delete_source_objects parameter in Blob.compose() to allow automatic deletion of source objects upon successful composition. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
Code Review
This pull request introduces the delete_source_objects parameter to the Blob.compose method, allowing source objects to be automatically deleted after a successful composition. The changes include updates to the method signature, docstrings, and request payload construction, along with a new unit test to verify the functionality. I have no feedback to provide.
Implements the delete_source_objects parameter in Blob.compose() to allow automatic deletion of source objects upon successful composition. Also adds unit and system tests to verify the new parameter. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
…PR feedback) - Removed unnecessary fixture usage in system test. - Ensured destination metadata is not empty in unit test by setting content_type. - verified end-to-end functionality in system test. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
…PR feedback) - Re-added blobs_to_delete fixture in system test. - Implemented conditional cleanup for source objects in system test. - Ensured destination metadata is populated in unit test. - Verified end-to-end functionality. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
Implements the delete_source_objects parameter in Blob.compose() to allow automatic deletion of source objects upon successful composition. Also adds unit and system tests to verify the new parameter and handles PR feedback. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
Implements the delete_source_objects parameter in Blob.compose() to allow automatic deletion of source objects upon successful composition. Also adds unit and system tests to verify the new parameter and handles PR feedback. Reference PR: googleapis/google-cloud-java#12873 Co-authored-by: nidhiii-27 <224584462+nidhiii-27@users.noreply.github.com>
#16975) Release the Global Interpreter Lock (GIL) in `_crc32c_extend` and `_crc32c_value` when processing large, immutable byte buffers (>= 1MB). This allows other Python threads to run concurrently during expensive crc32c calculations on large chunks of data. Fixes #16923 🦕 # Unit Tests ``` .nox/check-3-13/bin/pytest -v tests ==================================================================================================================== test session starts ===================================================================================================================== platform linux -- Python 3.13.12, pytest-9.0.3, pluggy-1.6.0 -- /usr/local/google/home/zhixiangli/Cloudtop/Github/zhixiangli/google-cloud-python/packages/google-crc32c/.nox/check-3-13/bin/python cachedir: .pytest_cache rootdir: /usr/local/google/home/zhixiangli/Cloudtop/Github/zhixiangli/google-cloud-python/packages/google-crc32c configfile: pyproject.toml collected 42 items tests/test___init__.py::test_extend_w_empty_chunk PASSED [ 2%] tests/test___init__.py::test_extend_w_multiple_chunks PASSED [ 4%] tests/test___init__.py::test_extend_w_reduce PASSED [ 7%] tests/test___init__.py::test_value[-0] PASSED [ 9%] tests/test___init__.py::test_value[\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00-2324772522] PASSED [ 11%] tests/test___init__.py::test_value[\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff-1655221059] PASSED [ 14%] tests/test___init__.py::test_value[\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f-1188919630] PASSED [ 16%] tests/test___init__.py::test_value[\x1f\x1e\x1d\x1c\x1b\x1a\x19\x18\x17\x16\x15\x14\x13\x12\x11\x10\x0f\x0e\r\x0c\x0b\n\t\x08\x07\x06\x05\x04\x03\x02\x01\x00-289397596] PASSED [ 19%] tests/test___init__.py::test_value[chunk5-3650501206] PASSED [ 21%] tests/test___init__.py::test_value[\x01\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x14\x00\x00\x00\x18(\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00-3650501206] PASSED [ 23%] tests/test___init__.py::TestChecksum::test_ctor_defaults[python] PASSED [ 26%] tests/test___init__.py::TestChecksum::test_ctor_defaults[cext] PASSED [ 28%] tests/test___init__.py::TestChecksum::test_ctor_explicit[python] PASSED [ 30%] tests/test___init__.py::TestChecksum::test_ctor_explicit[cext] PASSED [ 33%] tests/test___init__.py::TestChecksum::test_update[python] PASSED [ 35%] tests/test___init__.py::TestChecksum::test_update[cext] PASSED [ 38%] tests/test___init__.py::TestChecksum::test_update_w_multiple_chunks[python] PASSED [ 40%] tests/test___init__.py::TestChecksum::test_update_w_multiple_chunks[cext] PASSED [ 42%] tests/test___init__.py::TestChecksum::test_digest_zero[python] PASSED [ 45%] tests/test___init__.py::TestChecksum::test_digest_zero[cext] PASSED [ 47%] tests/test___init__.py::TestChecksum::test_digest_nonzero[python] PASSED [ 50%] tests/test___init__.py::TestChecksum::test_digest_nonzero[cext] PASSED [ 52%] tests/test___init__.py::TestChecksum::test_hexdigest_zero[python] PASSED [ 54%] tests/test___init__.py::TestChecksum::test_hexdigest_zero[cext] PASSED [ 57%] tests/test___init__.py::TestChecksum::test_hexdigest_nonzero[python] PASSED [ 59%] tests/test___init__.py::TestChecksum::test_hexdigest_nonzero[cext] PASSED [ 61%] tests/test___init__.py::TestChecksum::test_copy[python] PASSED [ 64%] tests/test___init__.py::TestChecksum::test_copy[cext] PASSED [ 66%] tests/test___init__.py::TestChecksum::test_consume_stream[python-1] PASSED [ 69%] tests/test___init__.py::TestChecksum::test_consume_stream[python-3] PASSED [ 71%] tests/test___init__.py::TestChecksum::test_consume_stream[python-5] PASSED [ 73%] tests/test___init__.py::TestChecksum::test_consume_stream[python-7] PASSED [ 76%] tests/test___init__.py::TestChecksum::test_consume_stream[python-11] PASSED [ 78%] tests/test___init__.py::TestChecksum::test_consume_stream[python-13] PASSED [ 80%] tests/test___init__.py::TestChecksum::test_consume_stream[python-48] PASSED [ 83%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-1] PASSED [ 85%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-3] PASSED [ 88%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-5] PASSED [ 90%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-7] PASSED [ 92%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-11] PASSED [ 95%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-13] PASSED [ 97%] tests/test___init__.py::TestChecksum::test_consume_stream[cext-48] PASSED [100%] ===================================================================================================================== 42 passed in 0.08s ===================================================================================================================== ``` # Perf Tests ## Methodology Created an independent benchmark script (shown below) that measures the time taken for `crc32c.value()` on different buffer sizes (10KB to 10MB) with 1 thread and 4 threads. ## Results | Size | Threads | Before (s) | After (s) | Speedup | | :--- | :--- | :--- | :--- | :--- | | **10KB** | 1 | 0.0001 | 0.0001 | 1.0x | | | 4 | 0.0031 | 0.0033 | 0.9x | | **500KB**| 1 | 0.0023 | 0.0022 | 1.0x | | | 4 | 0.0110 | 0.0110 | 1.0x | | **1MB** | 1 | 0.0045 | 0.0045 | 1.0x | | | 4 | 0.0241 | 0.0067 | **3.6x** | | **5MB** | 1 | 0.0291 | 0.0227 | 1.3x | | | 4 | 0.1209 | 0.0245 | **4.9x** | | **10MB** | 1 | 0.0550 | 0.0451 | 1.2x | | | 4 | 0.2091 | 0.0483 | **4.3x** | ## Conclusion - **Multi-threaded performance for large buffers (>= 1MB) improved significantly.** We see speedups of 3.6x to 4.9x when using 4 threads on buffers of 1MB and larger. - **No regression for small buffers (< 1MB)** where the GIL is not released. - **Single-threaded performance is also slightly better** or comparable, showing no negative impact from the conditional GIL release overhead. ## Code ``` import time import concurrent.futures import os import sys try: from google_crc32c import _crc32c import google_crc32c print(f"Successfully imported _crc32c: {_crc32c}") except ImportError as e: print(f"Failed to import _crc32c: {e}") print("This benchmark requires the C extension.") sys.exit(1) def benchmark_single_threaded(data, iterations=100): start = time.time() for _ in range(iterations): google_crc32c.value(data) return time.time() - start def benchmark_multi_threaded(data, num_threads=4, iterations=100): start = time.time() def worker(): for _ in range(iterations): google_crc32c.value(data) with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: futures = [executor.submit(worker) for _ in range(num_threads)] concurrent.futures.wait(futures) return time.time() - start sizes = { "10KB": 10 * 1024, "500KB": 500 * 1024, "1MB": 1024 * 1024, "5MB": 5 * 1024 * 1024, "10MB": 10 * 1024 * 1024, } print(f"{'Size':<10} | {'Threads':<10} | {'Time (s)':<10}") print("-" * 35) # Warmup dummy_data = os.urandom(1024) google_crc32c.value(dummy_data) for name, size in sizes.items(): data = os.urandom(size) # Single threaded t_single = benchmark_single_threaded(data, iterations=100) print(f"{name:<10} | {'1':<10} | {t_single:.4f}") # Multi threaded t_multi = benchmark_multi_threaded(data, num_threads=4, iterations=100) print(f"{name:<10} | {'4':<10} | {t_multi:.4f}") ```
….29.0 to 7.29.4 in /packages/bigframes/tests/js (#17012) Bumps [@babel/plugin-transform-modules-systemjs](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-modules-systemjs) from 7.29.0 to 7.29.4. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases">@babel/plugin-transform-modules-systemjs's releases</a>.</em></p> <blockquote> <h2>v7.29.4 (2026-05-05)</h2> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-plugin-transform-modules-systemjs</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17974">#17974</a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> </ul> <h4>Committers: 1</h4> <ul> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> <h2>v7.29.3 (2026-04-30)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17923">#17923</a> Support flow extends bound (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helper-create-class-features-plugin</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17931">#17931</a> fix(decorators): replace super within all removed static elements (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-register</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17915">#17915</a> Fix thread synchronization issues in <code>@babel/register</code> (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-plugin-bugfix-safari-rest-destructuring-rhs-array</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17788">#17788</a> Add bugfix plugin for Safari array rest destructuring bug (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:nail_care: Polish</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17782">#17782</a> Improve trailing comma comment handling (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:memo: Documentation</h4> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17847">#17847</a> Replace npmjs.com links with npmx.dev (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> <h4>:running_woman: Performance</h4> <ul> <li><code>babel-helper-import-to-platform-api</code>, <code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-transform-json-modules</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17818">#17818</a> Load async Wasm and JSON imports in parallel (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h4>Committers: 4</h4> <ul> <li>Babel Bot (<a href="https://github.com/babel-bot"><code>@babel-bot</code></a>)</li> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a></li> </ul> <h2>v7.29.2 (2026-03-16)</h2> <h4>:eyeglasses: Spec Compliance</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17840">#17840</a> [7.x backport] async x => {} must be in leading pos (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> </ul> <h4>:bug: Bug Fix</h4> <ul> <li><code>babel-helpers</code>, <code>babel-plugin-transform-async-generator-functions</code>, <code>babel-preset-env</code>, <code>babel-runtime-corejs3</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/17805">#17805</a> [7.x backport] fix: Properly handle await in finally (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-preset-env</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/babel/babel/commit/a458f66074b97d54773db8159af673d23b26079b"><code>a458f66</code></a> v7.29.4</li> <li><a href="https://github.com/babel/babel/commit/32ebd5aaf2526ddd176fd6a3d1e3dc594abdc8d9"><code>32ebd5a</code></a> [7.x backport]fix(systemjs): improve module string name support (<a href="https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-modules-systemjs/issues/17974">#17974</a>)</li> <li>See full diff in <a href="https://github.com/babel/babel/commits/v7.29.4/packages/babel-plugin-transform-modules-systemjs">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/google-cloud-python/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This PR updates google-api-core to establish Python 3.10 as the minimum supported version, dropping support for Python 3.9 and below. ### Changes **Configuration**: Updated pyproject.toml and noxfile.py to require Python 3.10+ and remove references to Python 3.7, 3.8, and 3.9. Updated README.rst and CONTRIBUTING.rst to reflect the new support status. **Cleanup**: Removed aiter and anext polyfills in test_bidi_async.py and removed Python < 3.10 polyfills in _python_version_support.py. **Constraints & Dependencies**: * Created constraints-3.10.txt using the old 3.9 constraints as a baseline. * Bumped grpcio to 1.80.0 and requests to 2.33.0 to avoid issues with pkg_resources and six warnings on Python 3.10. * Bumped google-auth to 2.35.0 to satisfy async_rest requirements. Fixes internal issue: http://b/482126936 🦕
Adds `v1` to existing `google-cloud-geminidataanalytics` client and switches `default_version` to `v1`. Towards b/510217868
…i-core (#17016) [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/google-cloud-python/network/alerts). </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com>
) This PR removes the pandas version restrictions from tests that were skipped for Pandas >= 2.0 without a stated reason and enables testing by addressing a precision issue in the tests. It also adds a catch for ImportError when tqdm tries to import matplotlib when matplotlib is not installed. It also adds two small ignore pragmas to resolve mypy's struggles with handling optional imports. This PR partially fixes #16042 (for bigquery). For completeness, we did an assessment of any remaining test skips and they all appear to be legitimate skips that are applied when a dependency is not installed. 1. PyArrow 2. tqdm (Progress Bar) 3. Pandas 4. OpenTelemetry 5. GeoPandas 6. Shapely
This PR removes Python 3.9 from the default nox session which is used in continuous builds. Python 3.9 unit tests are still running in presubmits via Github actions but cannot be tested in continuous builds since Python 3.9 has been removed from the testing image as of googleapis/testing-infra-docker#524.
…api-core (#17022) Bumps [requests](https://github.com/psf/requests) from 2.25.0 to 2.33.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/releases">requests's releases</a>.</em></p> <blockquote> <h2>v2.33.0</h2> <h2>2.33.0 (2026-03-25)</h2> <p><strong>Announcements</strong></p> <ul> <li>📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at <a href="https://redirect.github.com/psf/requests/issues/7271">#7271</a>. Give it a try, and report any gaps or feedback you may have in the issue. 📣</li> </ul> <p><strong>Security</strong></p> <ul> <li>CVE-2026-25645 <code>requests.utils.extract_zipped_paths</code> now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.</li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Migrated to a PEP 517 build system using setuptools. (<a href="https://redirect.github.com/psf/requests/issues/7012">#7012</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li>Fixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (<a href="https://redirect.github.com/psf/requests/issues/7205">#7205</a>)</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Dropped support for Python 3.9 following its end of support. (<a href="https://redirect.github.com/psf/requests/issues/7196">#7196</a>)</li> </ul> <p><strong>Documentation</strong></p> <ul> <li>Various typo fixes and doc improvements.</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/M0d3v1"><code>@M0d3v1</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6865">psf/requests#6865</a></li> <li><a href="https://github.com/aminvakil"><code>@aminvakil</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7220">psf/requests#7220</a></li> <li><a href="https://github.com/E8Price"><code>@E8Price</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6960">psf/requests#6960</a></li> <li><a href="https://github.com/mitre88"><code>@mitre88</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7244">psf/requests#7244</a></li> <li><a href="https://github.com/magsen"><code>@magsen</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/6553">psf/requests#6553</a></li> <li><a href="https://github.com/Rohan5commit"><code>@Rohan5commit</code></a> made their first contribution in <a href="https://redirect.github.com/psf/requests/pull/7227">psf/requests#7227</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25">https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25</a></p> <h2>v2.32.5</h2> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> <h2>v2.32.4</h2> <h2>2.32.4 (2025-06-10)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/psf/requests/blob/main/HISTORY.md">requests's changelog</a>.</em></p> <blockquote> <h2>2.33.0 (2026-03-25)</h2> <p><strong>Announcements</strong></p> <ul> <li>📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at <a href="https://redirect.github.com/psf/requests/issues/7271">#7271</a>. Give it a try, and report any gaps or feedback you may have in the issue. 📣</li> </ul> <p><strong>Security</strong></p> <ul> <li>CVE-2026-25645 <code>requests.utils.extract_zipped_paths</code> now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.</li> </ul> <p><strong>Improvements</strong></p> <ul> <li>Migrated to a PEP 517 build system using setuptools. (<a href="https://redirect.github.com/psf/requests/issues/7012">#7012</a>)</li> </ul> <p><strong>Bugfixes</strong></p> <ul> <li>Fixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (<a href="https://redirect.github.com/psf/requests/issues/7205">#7205</a>)</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Dropped support for Python 3.9 following its end of support. (<a href="https://redirect.github.com/psf/requests/issues/7196">#7196</a>)</li> </ul> <p><strong>Documentation</strong></p> <ul> <li>Various typo fixes and doc improvements.</li> </ul> <h2>2.32.5 (2025-08-18)</h2> <p><strong>Bugfixes</strong></p> <ul> <li>The SSLContext caching feature originally introduced in 2.32.0 has created a new class of issues in Requests that have had negative impact across a number of use cases. The Requests team has decided to revert this feature as long term maintenance of it is proving to be unsustainable in its current iteration.</li> </ul> <p><strong>Deprecations</strong></p> <ul> <li>Added support for Python 3.14.</li> <li>Dropped support for Python 3.8 following its end of support.</li> </ul> <h2>2.32.4 (2025-06-10)</h2> <p><strong>Security</strong></p> <ul> <li>CVE-2024-47081 Fixed an issue where a maliciously crafted URL and trusted environment will retrieve credentials for the wrong hostname/machine from a netrc file.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761"><code>bc04dfd</code></a> v2.33.0</li> <li><a href="https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7"><code>66d21cb</code></a> Merge commit from fork</li> <li><a href="https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028"><code>8b9bc8f</code></a> Move badges to top of README (<a href="https://redirect.github.com/psf/requests/issues/7293">#7293</a>)</li> <li><a href="https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286"><code>e331a28</code></a> Remove unused extraction call (<a href="https://redirect.github.com/psf/requests/issues/7292">#7292</a>)</li> <li><a href="https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29"><code>753fd08</code></a> docs: fix FAQ grammar in httplib2 example</li> <li><a href="https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71"><code>774a0b8</code></a> docs(socks): same block as other sections</li> <li><a href="https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303"><code>9c72a41</code></a> Bump github/codeql-action from 4.33.0 to 4.34.1</li> <li><a href="https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be"><code>ebf7190</code></a> Bump github/codeql-action from 4.32.0 to 4.33.0</li> <li><a href="https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798"><code>0e4ae38</code></a> docs: exclude Response.is_permanent_redirect from API docs (<a href="https://redirect.github.com/psf/requests/issues/7244">#7244</a>)</li> <li><a href="https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a"><code>d568f47</code></a> docs: clarify Quickstart POST example (<a href="https://redirect.github.com/psf/requests/issues/6960">#6960</a>)</li> <li>Additional commits viewable in <a href="https://github.com/psf/requests/compare/v2.25.0...v2.33.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/google-cloud-python/network/alerts). </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com>
…rator (#17020) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/releases">urllib3's releases</a>.</em></p> <blockquote> <h2>2.7.0</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Security</h2> <p>Addressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.</p> <ul> <li> <p>Decompression-bomb safeguards of the streaming API were bypassed:</p> <ol> <li>When <code>HTTPResponse.drain_conn()</code> was called after the response had been read and decompressed partially. (Reported by <a href="https://github.com/Cycloctane"><code>@Cycloctane</code></a>)</li> <li>During the second <code>HTTPResponse.read(amt=N)</code> or <code>HTTPResponse.stream(amt=N)</code> call when the response was decompressed using the official <a href="https://pypi.org/project/brotli/">Brotli</a> library. (Reported by <a href="https://github.com/kimkou2024"><code>@kimkou2024</code></a>)</li> </ol> <p>See GHSA-mf9v-mfxr-j63j for details.</p> </li> <li> <p>HTTP pools created using <code>ProxyManager.connection_from_url</code> did not strip sensitive headers specified in <code>Retry.remove_headers_on_redirect</code> when redirecting to a different host. (GHSA-qccp-gfcp-xxvc reported by <a href="https://github.com/christos-spearbit"><code>@christos-spearbit</code></a>)</p> </li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>Used <code>FutureWarning</code> instead of <code>DeprecationWarning</code> for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3763">urllib3/urllib3#3763</a>)</li> <li>Removed support for end-of-life Python 3.9. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3720">urllib3/urllib3#3720</a>)</li> <li>Removed support for end-of-life PyPy3.10. (<a href="https://redirect.github.com/urllib3/urllib3/issues/4979">urllib3/urllib3#4979</a>)</li> <li>Bumped the minimum supported pyOpenSSL version to 19.0.0. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3777">urllib3/urllib3#3777</a>)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was ignoring decompressed data buffered from previous partial reads. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3636">urllib3/urllib3#3636</a>)</li> <li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only part of the response after a partial read when <code>cache_content=True</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/4967">urllib3/urllib3#4967</a>)</li> <li>Fixed <code>HTTPResponse.stream()</code> and <code>HTTPResponse.read_chunked()</code> to handle <code>amt=0</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3793">urllib3/urllib3#3793</a>)</li> <li>Updated <code>_TYPE_BODY</code> type alias to include missing <code>Iterable[str]</code>, matching the documented and runtime behavior of chunked request bodies. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3798">urllib3/urllib3#3798</a>)</li> <li>Fixed <code>LocationParseError</code> when paths resembling schemeless URIs were passed to <code>HTTPConnectionPool.urlopen()</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3352">urllib3/urllib3#3352</a>)</li> <li>Fixed <code>BaseHTTPResponse.readinto()</code> type annotation to accept <code>memoryview</code> in addition to <code>bytearray</code>, matching the <code>io.RawIOBase.readinto</code> contract and enabling use with <code>io.BufferedReader</code> without type errors. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3764">urllib3/urllib3#3764</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's changelog</a>.</em></p> <blockquote> <h1>2.7.0 (2026-05-07)</h1> <h2>Security</h2> <p>Addressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be marginal.</p> <ul> <li> <p>Decompression-bomb safeguards of the streaming API were bypassed:</p> <ol> <li>When <code>HTTPResponse.drain_conn()</code> was called after the response had been read and decompressed partially.</li> <li>During the second <code>HTTPResponse.read(amt=N)</code> or <code>HTTPResponse.stream(amt=N)</code> call when the response was decompressed using the official <code>Brotli <https://pypi.org/project/brotli/></code>__ library.</li> </ol> <p>See <code>GHSA-mf9v-mfxr-j63j <https://github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j></code>__ for details.</p> </li> <li> <p>HTTP pools created using <code>ProxyManager.connection_from_url</code> did not strip sensitive headers specified in <code>Retry.remove_headers_on_redirect</code> when redirecting to a different host. (<code>GHSA-qccp-gfcp-xxvc <https://github.com/urllib3/urllib3/security/advisories/GHSA-qccp-gfcp-xxvc></code>__)</p> </li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>Used <code>FutureWarning</code> instead of <code>DeprecationWarning</code> for better visibility of existing deprecation notices. Rescheduled the removal of deprecated features to version 3.0. (<code>[#3763](urllib3/urllib3#3763) <https://github.com/urllib3/urllib3/issues/3763></code>__)</li> <li>Removed support for end-of-life Python 3.9. (<code>[#3720](urllib3/urllib3#3720) <https://github.com/urllib3/urllib3/issues/3720></code>__)</li> <li>Removed support for end-of-life PyPy3.10. (<code>[#4979](urllib3/urllib3#4979) <https://github.com/urllib3/urllib3/issues/4979></code>__)</li> <li>Bumped the minimum supported pyOpenSSL version to 19.0.0. (<code>[#3777](urllib3/urllib3#3777) <https://github.com/urllib3/urllib3/issues/3777></code>__)</li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed a bug where <code>HTTPResponse.read(amt=None)</code> was ignoring decompressed data buffered from previous partial reads. (<code>[#3636](urllib3/urllib3#3636) <https://github.com/urllib3/urllib3/issues/3636></code>__)</li> <li>Fixed a bug where <code>HTTPResponse.read()</code> could cache only part of the response after a partial read when <code>cache_content=True</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/urllib3/urllib3/commit/9a950b92d999f906b6020bb2d1076ee56cddd5d2"><code>9a950b9</code></a> Release 2.7.0</li> <li><a href="https://github.com/urllib3/urllib3/commit/5ec0de499b9166ca71c65ab04f2a7e4eb0d66fcc"><code>5ec0de4</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/2bdcc44d1e163fb5cc48a8662425e35e15adfe6a"><code>2bdcc44</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/f45b0df09d8620ac6ed0491eb9362c8c87b7bc2c"><code>f45b0df</code></a> Fix a misleading example for <code>ProxyManager</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/4970">#4970</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/577193ca029872384f82c133449e0935f6d8a64b"><code>577193c</code></a> Switch to nightly PyPy3.11 in CI for now (<a href="https://redirect.github.com/urllib3/urllib3/issues/4984">#4984</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/e90af45bb006c3a452a3a21644a2681523f5c7fc"><code>e90af45</code></a> Avoid infinite loop in <code>HTTPResponse.read_chunked</code> when <code>amt=0</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/4974">#4974</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/67ed74fdaec6659a6534621ec8e3aaaa6f976210"><code>67ed74f</code></a> Bump dev dependencies (<a href="https://redirect.github.com/urllib3/urllib3/issues/4972">#4972</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/3abd481097b54d87b574ac7ea593c3f40938a84d"><code>3abd481</code></a> Upgrade mypy to version 1.20.2 (<a href="https://redirect.github.com/urllib3/urllib3/issues/4978">#4978</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/2b8725dfcac4f21d4d93cc0cc3a64a33af08f890"><code>2b8725d</code></a> Drop support for EOL PyPy3.10 (<a href="https://redirect.github.com/urllib3/urllib3/issues/4979">#4979</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/2944b2a0a6c573f5548a39cfd17196f98ee21b33"><code>2944b2a</code></a> Upgrade <code>setup-chrome</code> and <code>setup-firefox</code> to fix warnings (<a href="https://redirect.github.com/urllib3/urllib3/issues/4973">#4973</a>)</li> <li>Additional commits viewable in <a href="https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/google-cloud-python/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) | Type |
Update |
|---|---|---|---|---|---|
| [@babel/preset-env](https://babel.dev/docs/en/next/babel-preset-env)
([source](https://redirect.github.com/babel/babel/tree/HEAD/packages/babel-preset-env))
| [`7.29.2` →
`7.29.5`](https://renovatebot.com/diffs/npm/@babel%2fpreset-env/7.29.2/7.29.5)
|

|

| devDependencies | patch |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
`v4` → `v6` |

|

| action | major |
|
[actions/setup-python](https://redirect.github.com/actions/setup-python)
| `v5` → `v6` |

|

| action | major |
| [cryptography](https://redirect.github.com/pyca/cryptography)
([changelog](https://cryptography.io/en/latest/changelog/)) | `==47.0.0`
→ `==48.0.0` |

|

| | major |
|
[db-dtypes](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/db-dtypes)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==1.5.1` → `==1.6.0` |

|

| | minor |
| [dorny/paths-filter](https://redirect.github.com/dorny/paths-filter) |
`v3` → `v4` |

|

| action | major |
|
[google-auth](https://redirect.github.com/googleapis/google-auth-library-python)
| `==2.50.0` → `==2.52.0` |

|

| | minor |
|
[google-cloud-bigquery-storage](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-bigquery-storage)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==2.37.0` → `==2.38.0` |

|

| | minor |
|
[google-cloud-core](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-core)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==2.5.1` → `==2.6.0` |

|

| | minor |
|
[google-cloud-spanner](https://redirect.github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-spanner)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==3.65.0` → `==3.66.0` |

|

| | minor |
|
[google-cloud-testutils](https://redirect.github.com/googleapis/google-cloud-python/packages/google-cloud-testutils)
([source](https://redirect.github.com/googleapis/google-cloud-python)) |
`==1.7.1` → `==1.8.0` |

|

| | minor |
|
[googleapis-common-protos](https://redirect.github.com/googleapis/google-cloud-python)
([source](https://redirect.github.com/googleapis/google-cloud-python/tree/HEAD/packages/googleapis-common-protos))
| `==1.74.0` → `==1.75.0` |

|

| | minor |
| [idna](https://redirect.github.com/kjd/idna)
([changelog](https://redirect.github.com/kjd/idna/blob/master/HISTORY.rst))
| `==3.13` → `==3.14` |

|

| | minor |
| [jest](https://jestjs.io/)
([source](https://redirect.github.com/jestjs/jest/tree/HEAD/packages/jest))
| [`30.3.0` →
`30.4.2`](https://renovatebot.com/diffs/npm/jest/30.3.0/30.4.2) |

|

| devDependencies | minor |
| [jest-environment-jsdom](https://redirect.github.com/jestjs/jest)
([source](https://redirect.github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom))
| [`30.3.0` →
`30.4.1`](https://renovatebot.com/diffs/npm/jest-environment-jsdom/30.3.0/30.4.1)
|

|

| devDependencies | minor |
| [jsdom](https://redirect.github.com/jsdom/jsdom) | [`29.1.0` →
`29.1.1`](https://renovatebot.com/diffs/npm/jsdom/29.1.0/29.1.1) |

|

| devDependencies | patch |
| [pandas](https://redirect.github.com/pandas-dev/pandas) | `==2.3.3` →
`==3.0.2` |

|

| | major |
| [pip](https://redirect.github.com/pypa/pip)
([changelog](https://pip.pypa.io/en/stable/news/)) | `==26.1` →
`==26.1.1` |

|

| | patch |
| [propcache](https://redirect.github.com/aio-libs/propcache) |
`==0.4.1` → `==0.5.2` |

|

| | minor |
|
[proto-plus](https://redirect.github.com/googleapis/google-cloud-python)
| `==1.27.2` → `==1.28.0` |

|

| | minor |
| [python](https://redirect.github.com/actions/python-versions) | `3.10`
→ `3.14` |

|

| uses-with | minor |
| [python](https://redirect.github.com/actions/python-versions) | `3.12`
→ `3.14` |

|

| uses-with | minor |
| [rules_cc](https://redirect.github.com/bazelbuild/rules_cc) | `0.1.1`
→ `0.2.18` |

|

| http_archive | minor |
| [urllib3](https://redirect.github.com/urllib3/urllib3)
([changelog](https://redirect.github.com/urllib3/urllib3/blob/main/CHANGES.rst))
| `==2.6.3` → `==2.7.0` |

|

| | minor |
| [virtualenv](https://redirect.github.com/pypa/virtualenv) | `==21.3.0`
→ `==21.3.1` |

|

| | patch |
---
### Release Notes
<details>
<summary>babel/babel (@​babel/preset-env)</summary>
###
[`v7.29.5`](https://redirect.github.com/babel/babel/compare/v7.29.3...v7.29.5)
[Compare
Source](https://redirect.github.com/babel/babel/compare/v7.29.3...v7.29.5)
###
[`v7.29.3`](https://redirect.github.com/babel/babel/compare/v7.29.2...v7.29.3)
[Compare
Source](https://redirect.github.com/babel/babel/compare/v7.29.2...v7.29.3)
</details>
<details>
<summary>actions/checkout (actions/checkout)</summary>
###
[`v6.0.2`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v602)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v6.0.1...v6.0.2)
- Fix tag handling: preserve annotations and explicit fetch-tags by
[@​ericsciple](https://redirect.github.com/ericsciple) in
[#​2356](https://redirect.github.com/actions/checkout/pull/2356)
###
[`v6.0.1`](https://redirect.github.com/actions/checkout/compare/v6.0.0...v6.0.1)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v6...v6.0.1)
###
[`v6.0.0`](https://redirect.github.com/actions/checkout/compare/v5.0.1...v6.0.0)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v6...v6)
### [`v6`]()
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v5.0.1...v6)
###
[`v5.0.1`](https://redirect.github.com/actions/checkout/releases/tag/v5.0.1)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v5...v5.0.1)
##### What's Changed
- Port v6 cleanup to v5 by
[@​ericsciple](https://redirect.github.com/ericsciple) in
[#​2301](https://redirect.github.com/actions/checkout/pull/2301)
**Full Changelog**:
<https://github.com/actions/checkout/compare/v5...v5.0.1>
###
[`v5.0.0`](https://redirect.github.com/actions/checkout/releases/tag/v5.0.0)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v5...v5)
##### What's Changed
- Update actions checkout to use node 24 by
[@​salmanmkc](https://redirect.github.com/salmanmkc) in
[#​2226](https://redirect.github.com/actions/checkout/pull/2226)
- Prepare v5.0.0 release by
[@​salmanmkc](https://redirect.github.com/salmanmkc) in
[#​2238](https://redirect.github.com/actions/checkout/pull/2238)
##### ⚠️ Minimum Compatible Runner Version
**v2.327.1**\
[Release
Notes](https://redirect.github.com/actions/runner/releases/tag/v2.327.1)
Make sure your runner is updated to this version or newer to use this
release.
**Full Changelog**:
<https://github.com/actions/checkout/compare/v4...v5.0.0>
### [`v5`]()
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.3.1...v5)
###
[`v4.3.1`](https://redirect.github.com/actions/checkout/releases/tag/v4.3.1)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.3.0...v4.3.1)
##### What's Changed
- Port v6 cleanup to v4 by
[@​ericsciple](https://redirect.github.com/ericsciple) in
[#​2305](https://redirect.github.com/actions/checkout/pull/2305)
**Full Changelog**:
<https://github.com/actions/checkout/compare/v4...v4.3.1>
###
[`v4.3.0`](https://redirect.github.com/actions/checkout/releases/tag/v4.3.0)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.2.2...v4.3.0)
##### What's Changed
- docs: update README.md by
[@​motss](https://redirect.github.com/motss) in
[#​1971](https://redirect.github.com/actions/checkout/pull/1971)
- Add internal repos for checking out multiple repositories by
[@​mouismail](https://redirect.github.com/mouismail) in
[#​1977](https://redirect.github.com/actions/checkout/pull/1977)
- Documentation update - add recommended permissions to Readme by
[@​benwells](https://redirect.github.com/benwells) in
[#​2043](https://redirect.github.com/actions/checkout/pull/2043)
- Adjust positioning of user email note and permissions heading by
[@​joshmgross](https://redirect.github.com/joshmgross) in
[#​2044](https://redirect.github.com/actions/checkout/pull/2044)
- Update README.md by
[@​nebuk89](https://redirect.github.com/nebuk89) in
[#​2194](https://redirect.github.com/actions/checkout/pull/2194)
- Update CODEOWNERS for actions by
[@​TingluoHuang](https://redirect.github.com/TingluoHuang) in
[#​2224](https://redirect.github.com/actions/checkout/pull/2224)
- Update package dependencies by
[@​salmanmkc](https://redirect.github.com/salmanmkc) in
[#​2236](https://redirect.github.com/actions/checkout/pull/2236)
- Prepare release v4.3.0 by
[@​salmanmkc](https://redirect.github.com/salmanmkc) in
[#​2237](https://redirect.github.com/actions/checkout/pull/2237)
##### New Contributors
- [@​motss](https://redirect.github.com/motss) made their first
contribution in
[#​1971](https://redirect.github.com/actions/checkout/pull/1971)
- [@​mouismail](https://redirect.github.com/mouismail) made their
first contribution in
[#​1977](https://redirect.github.com/actions/checkout/pull/1977)
- [@​benwells](https://redirect.github.com/benwells) made their
first contribution in
[#​2043](https://redirect.github.com/actions/checkout/pull/2043)
- [@​nebuk89](https://redirect.github.com/nebuk89) made their
first contribution in
[#​2194](https://redirect.github.com/actions/checkout/pull/2194)
- [@​salmanmkc](https://redirect.github.com/salmanmkc) made their
first contribution in
[#​2236](https://redirect.github.com/actions/checkout/pull/2236)
**Full Changelog**:
<https://github.com/actions/checkout/compare/v4...v4.3.0>
###
[`v4.2.2`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v422)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.2.1...v4.2.2)
- `url-helper.ts` now leverages well-known environment variables by
[@​jww3](https://redirect.github.com/jww3) in
[#​1941](https://redirect.github.com/actions/checkout/pull/1941)
- Expand unit test coverage for `isGhes` by
[@​jww3](https://redirect.github.com/jww3) in
[#​1946](https://redirect.github.com/actions/checkout/pull/1946)
###
[`v4.2.1`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v421)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.2.0...v4.2.1)
- Check out other refs/\* by commit if provided, fall back to ref by
[@​orhantoy](https://redirect.github.com/orhantoy) in
[#​1924](https://redirect.github.com/actions/checkout/pull/1924)
###
[`v4.2.0`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v420)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.7...v4.2.0)
- Add Ref and Commit outputs by
[@​lucacome](https://redirect.github.com/lucacome) in
[#​1180](https://redirect.github.com/actions/checkout/pull/1180)
- Dependency updates by
[@​dependabot-](https://redirect.github.com/dependabot-)
[#​1777](https://redirect.github.com/actions/checkout/pull/1777),
[#​1872](https://redirect.github.com/actions/checkout/pull/1872)
###
[`v4.1.7`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v417)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.6...v4.1.7)
- Bump the minor-npm-dependencies group across 1 directory with 4
updates by [@​dependabot](https://redirect.github.com/dependabot)
in
[#​1739](https://redirect.github.com/actions/checkout/pull/1739)
- Bump actions/checkout from 3 to 4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1697](https://redirect.github.com/actions/checkout/pull/1697)
- Check out other refs/\* by commit by
[@​orhantoy](https://redirect.github.com/orhantoy) in
[#​1774](https://redirect.github.com/actions/checkout/pull/1774)
- Pin actions/checkout's own workflows to a known, good, stable version.
by [@​jww3](https://redirect.github.com/jww3) in
[#​1776](https://redirect.github.com/actions/checkout/pull/1776)
###
[`v4.1.6`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v416)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.5...v4.1.6)
- Check platform to set archive extension appropriately by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1732](https://redirect.github.com/actions/checkout/pull/1732)
###
[`v4.1.5`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v415)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.4...v4.1.5)
- Update NPM dependencies by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1703](https://redirect.github.com/actions/checkout/pull/1703)
- Bump github/codeql-action from 2 to 3 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1694](https://redirect.github.com/actions/checkout/pull/1694)
- Bump actions/setup-node from 1 to 4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1696](https://redirect.github.com/actions/checkout/pull/1696)
- Bump actions/upload-artifact from 2 to 4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1695](https://redirect.github.com/actions/checkout/pull/1695)
- README: Suggest `user.email` to be
`41898282+github-actions[bot]@​users.noreply.github.com` by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1707](https://redirect.github.com/actions/checkout/pull/1707)
###
[`v4.1.4`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v414)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.3...v4.1.4)
- Disable `extensions.worktreeConfig` when disabling `sparse-checkout`
by [@​jww3](https://redirect.github.com/jww3) in
[#​1692](https://redirect.github.com/actions/checkout/pull/1692)
- Add dependabot config by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1688](https://redirect.github.com/actions/checkout/pull/1688)
- Bump the minor-actions-dependencies group with 2 updates by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1693](https://redirect.github.com/actions/checkout/pull/1693)
- Bump word-wrap from 1.2.3 to 1.2.5 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1643](https://redirect.github.com/actions/checkout/pull/1643)
###
[`v4.1.3`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v413)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.2...v4.1.3)
- Check git version before attempting to disable `sparse-checkout` by
[@​jww3](https://redirect.github.com/jww3) in
[#​1656](https://redirect.github.com/actions/checkout/pull/1656)
- Add SSH user parameter by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1685](https://redirect.github.com/actions/checkout/pull/1685)
- Update `actions/checkout` version in `update-main-version.yml` by
[@​jww3](https://redirect.github.com/jww3) in
[#​1650](https://redirect.github.com/actions/checkout/pull/1650)
###
[`v4.1.2`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v412)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.1...v4.1.2)
- Fix: Disable sparse checkout whenever `sparse-checkout` option is not
present [@​dscho](https://redirect.github.com/dscho) in
[#​1598](https://redirect.github.com/actions/checkout/pull/1598)
###
[`v4.1.1`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v411)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4.1.0...v4.1.1)
- Correct link to GitHub Docs by
[@​peterbe](https://redirect.github.com/peterbe) in
[#​1511](https://redirect.github.com/actions/checkout/pull/1511)
- Link to release page from what's new section by
[@​cory-miller](https://redirect.github.com/cory-miller) in
[#​1514](https://redirect.github.com/actions/checkout/pull/1514)
###
[`v4.1.0`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v410)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4...v4.1.0)
- [Add support for partial checkout
filters](https://redirect.github.com/actions/checkout/pull/1396)
</details>
<details>
<summary>actions/setup-python (actions/setup-python)</summary>
###
[`v6.2.0`](https://redirect.github.com/actions/setup-python/compare/v6.1.0...v6.2.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v6.1.0...v6.2.0)
###
[`v6.1.0`](https://redirect.github.com/actions/setup-python/releases/tag/v6.1.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v6...v6.1.0)
##### What's Changed
##### Enhancements:
- Add support for `pip-install` input by
[@​gowridurgad](https://redirect.github.com/gowridurgad) in
[#​1201](https://redirect.github.com/actions/setup-python/pull/1201)
- Add graalpy early-access and windows builds by
[@​timfel](https://redirect.github.com/timfel) in
[#​880](https://redirect.github.com/actions/setup-python/pull/880)
##### Dependency and Documentation updates:
- Enhanced wording and updated example usage for `allow-prereleases` by
[@​yarikoptic](https://redirect.github.com/yarikoptic) in
[#​979](https://redirect.github.com/actions/setup-python/pull/979)
- Upgrade urllib3 from 1.26.19 to 2.5.0 and document breaking changes in
v6 by [@​dependabot](https://redirect.github.com/dependabot) in
[#​1139](https://redirect.github.com/actions/setup-python/pull/1139)
- Upgrade typescript from 5.4.2 to 5.9.3 and Documentation update by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1094](https://redirect.github.com/actions/setup-python/pull/1094)
- Upgrade actions/publish-action from 0.3.0 to 0.4.0 & Documentation
update for pip-install input by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1199](https://redirect.github.com/actions/setup-python/pull/1199)
- Upgrade requests from 2.32.2 to 2.32.4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1130](https://redirect.github.com/actions/setup-python/pull/1130)
- Upgrade prettier from 3.5.3 to 3.6.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1234](https://redirect.github.com/actions/setup-python/pull/1234)
- Upgrade [@​types/node](https://redirect.github.com/types/node)
from 24.1.0 to 24.9.1 and update macos-13 to macos-15-intel by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1235](https://redirect.github.com/actions/setup-python/pull/1235)
##### New Contributors
- [@​yarikoptic](https://redirect.github.com/yarikoptic) made
their first contribution in
[#​979](https://redirect.github.com/actions/setup-python/pull/979)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v6...v6.1.0>
###
[`v6.0.0`](https://redirect.github.com/actions/setup-python/releases/tag/v6.0.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v6...v6)
#### What's Changed
##### Breaking Changes
- Upgrade to node 24 by
[@​salmanmkc](https://redirect.github.com/salmanmkc) in
[#​1164](https://redirect.github.com/actions/setup-python/pull/1164)
Make sure your runner is on version v2.327.1 or later to ensure
compatibility with this release. [See Release
Notes](https://redirect.github.com/actions/runner/releases/tag/v2.327.1)
##### Enhancements:
- Add support for `pip-version` by
[@​priyagupta108](https://redirect.github.com/priyagupta108) in
[#​1129](https://redirect.github.com/actions/setup-python/pull/1129)
- Enhance reading from .python-version by
[@​krystof-k](https://redirect.github.com/krystof-k) in
[#​787](https://redirect.github.com/actions/setup-python/pull/787)
- Add version parsing from Pipfile by
[@​aradkdj](https://redirect.github.com/aradkdj) in
[#​1067](https://redirect.github.com/actions/setup-python/pull/1067)
##### Bug fixes:
- Clarify pythonLocation behaviour for PyPy and GraalPy in environment
variables by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1183](https://redirect.github.com/actions/setup-python/pull/1183)
- Change missing cache directory error to warning by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1182](https://redirect.github.com/actions/setup-python/pull/1182)
- Add Architecture-Specific PATH Management for Python with --user Flag
on Windows by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1122](https://redirect.github.com/actions/setup-python/pull/1122)
- Include python version in PyPy python-version output by
[@​cdce8p](https://redirect.github.com/cdce8p) in
[#​1110](https://redirect.github.com/actions/setup-python/pull/1110)
- Update docs: clarification on pip authentication with setup-python by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​1156](https://redirect.github.com/actions/setup-python/pull/1156)
##### Dependency updates:
- Upgrade idna from 2.9 to 3.7 in /**tests**/data by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​843](https://redirect.github.com/actions/setup-python/pull/843)
- Upgrade form-data to fix critical vulnerabilities
[#​182](https://redirect.github.com/actions/setup-python/issues/182)
&
[#​183](https://redirect.github.com/actions/setup-python/issues/183)
by [@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y)
in
[#​1163](https://redirect.github.com/actions/setup-python/pull/1163)
- Upgrade setuptools to 78.1.1 to fix path traversal vulnerability in
PackageIndex.download by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1165](https://redirect.github.com/actions/setup-python/pull/1165)
- Upgrade actions/checkout from 4 to 5 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​1181](https://redirect.github.com/actions/setup-python/pull/1181)
- Upgrade
[@​actions/tool-cache](https://redirect.github.com/actions/tool-cache)
from 2.0.1 to 2.0.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​1095](https://redirect.github.com/actions/setup-python/pull/1095)
#### New Contributors
- [@​krystof-k](https://redirect.github.com/krystof-k) made their
first contribution in
[#​787](https://redirect.github.com/actions/setup-python/pull/787)
- [@​cdce8p](https://redirect.github.com/cdce8p) made their first
contribution in
[#​1110](https://redirect.github.com/actions/setup-python/pull/1110)
- [@​aradkdj](https://redirect.github.com/aradkdj) made their
first contribution in
[#​1067](https://redirect.github.com/actions/setup-python/pull/1067)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v6.0.0>
###
[`v6`](https://redirect.github.com/actions/setup-python/compare/v5...v6)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.6.0...v6)
###
[`v5.6.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.6.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.5.0...v5.6.0)
#### What's Changed
- Workflow updates related to Ubuntu 20.04 by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1065](https://redirect.github.com/actions/setup-python/pull/1065)
- Fix for Candidate Not Iterable Error by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​1082](https://redirect.github.com/actions/setup-python/pull/1082)
- Upgrade semver and
[@​types/semver](https://redirect.github.com/types/semver) by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1091](https://redirect.github.com/actions/setup-python/pull/1091)
- Upgrade prettier from 2.8.8 to 3.5.3 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1046](https://redirect.github.com/actions/setup-python/pull/1046)
- Upgrade ts-jest from 29.1.2 to 29.3.2 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1081](https://redirect.github.com/actions/setup-python/pull/1081)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.6.0>
###
[`v5.5.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.5.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.4.0...v5.5.0)
#### What's Changed
##### Enhancements:
- Support free threaded Python versions like '3.13t' by
[@​colesbury](https://redirect.github.com/colesbury) in
[#​973](https://redirect.github.com/actions/setup-python/pull/973)
- Enhance Workflows: Include ubuntu-arm runners, Add e2e Testing for
free threaded and Upgrade
[@​action/cache](https://redirect.github.com/action/cache) from
4.0.0 to 4.0.3 by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​1056](https://redirect.github.com/actions/setup-python/pull/1056)
- Add support for .tool-versions file in setup-python by
[@​mahabaleshwars](https://redirect.github.com/mahabaleshwars) in
[#​1043](https://redirect.github.com/actions/setup-python/pull/1043)
##### Bug fixes:
- Fix architecture for pypy on Linux ARM64 by
[@​mayeut](https://redirect.github.com/mayeut) in
[#​1011](https://redirect.github.com/actions/setup-python/pull/1011)
This update maps arm64 to aarch64 for Linux ARM64 PyPy installations.
##### Dependency updates:
- Upgrade [@​vercel/ncc](https://redirect.github.com/vercel/ncc)
from 0.38.1 to 0.38.3 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1016](https://redirect.github.com/actions/setup-python/pull/1016)
- Upgrade
[@​actions/glob](https://redirect.github.com/actions/glob) from
0.4.0 to 0.5.0 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1015](https://redirect.github.com/actions/setup-python/pull/1015)
#### New Contributors
- [@​colesbury](https://redirect.github.com/colesbury) made their
first contribution in
[#​973](https://redirect.github.com/actions/setup-python/pull/973)
- [@​mahabaleshwars](https://redirect.github.com/mahabaleshwars)
made their first contribution in
[#​1043](https://redirect.github.com/actions/setup-python/pull/1043)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.5.0>
###
[`v5.4.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.4.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.3.0...v5.4.0)
#### What's Changed
##### Enhancements:
- Update cache error message by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​968](https://redirect.github.com/actions/setup-python/pull/968)
- Enhance Workflows: Add Ubuntu-24, Remove Python 3.8 by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​985](https://redirect.github.com/actions/setup-python/pull/985)
- Configure Dependabot settings by
[@​HarithaVattikuti](https://redirect.github.com/HarithaVattikuti)
in
[#​1008](https://redirect.github.com/actions/setup-python/pull/1008)
##### Documentation changes:
- Readme update - recommended permissions by
[@​benwells](https://redirect.github.com/benwells) in
[#​1009](https://redirect.github.com/actions/setup-python/pull/1009)
- Improve Advanced Usage examples by
[@​lrq3000](https://redirect.github.com/lrq3000) in
[#​645](https://redirect.github.com/actions/setup-python/pull/645)
##### Dependency updates:
- Upgrade `undici` from 5.28.4 to 5.28.5 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1012](https://redirect.github.com/actions/setup-python/pull/1012)
- Upgrade `urllib3` from 1.25.9 to 1.26.19 in /**tests**/data by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​895](https://redirect.github.com/actions/setup-python/pull/895)
- Upgrade `actions/publish-immutable-action` from 0.0.3 to 0.0.4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1014](https://redirect.github.com/actions/setup-python/pull/1014)
- Upgrade `@actions/http-client` from 2.2.1 to 2.2.3 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1020](https://redirect.github.com/actions/setup-python/pull/1020)
- Upgrade `requests` from 2.24.0 to 2.32.2 in /**tests**/data by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1019](https://redirect.github.com/actions/setup-python/pull/1019)
- Upgrade `@actions/cache` to `^4.0.0` by
[@​priyagupta108](https://redirect.github.com/priyagupta108) in
[#​1007](https://redirect.github.com/actions/setup-python/pull/1007)
#### New Contributors
- [@​benwells](https://redirect.github.com/benwells) made their
first contribution in
[#​1009](https://redirect.github.com/actions/setup-python/pull/1009)
-
[@​HarithaVattikuti](https://redirect.github.com/HarithaVattikuti)
made their first contribution in
[#​1008](https://redirect.github.com/actions/setup-python/pull/1008)
- [@​lrq3000](https://redirect.github.com/lrq3000) made their
first contribution in
[#​645](https://redirect.github.com/actions/setup-python/pull/645)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.4.0>
###
[`v5.3.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.3.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.2.0...v5.3.0)
#### What's Changed
- Add workflow file for publishing releases to immutable action package
by [@​Jcambass](https://redirect.github.com/Jcambass) in
[#​941](https://redirect.github.com/actions/setup-python/pull/941)
- Upgrade IA publish by
[@​Jcambass](https://redirect.github.com/Jcambass) in
[#​943](https://redirect.github.com/actions/setup-python/pull/943)
##### Bug Fixes:
- Normalise Line Endings to Ensure Cross-Platform Consistency by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​938](https://redirect.github.com/actions/setup-python/pull/938)
- Revise `isGhes` logic by
[@​jww3](https://redirect.github.com/jww3) in
[#​963](https://redirect.github.com/actions/setup-python/pull/963)
- Bump pillow from 7.2 to 10.2.0 by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​956](https://redirect.github.com/actions/setup-python/pull/956)
##### Enhancements:
- Enhance workflows and documentation updates by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​965](https://redirect.github.com/actions/setup-python/pull/965)
- Bump default versions to latest by
[@​jeffwidman](https://redirect.github.com/jeffwidman) in
[#​905](https://redirect.github.com/actions/setup-python/pull/905)
#### New Contributors
- [@​Jcambass](https://redirect.github.com/Jcambass) made their
first contribution in
[#​941](https://redirect.github.com/actions/setup-python/pull/941)
- [@​jww3](https://redirect.github.com/jww3) made their first
contribution in
[#​963](https://redirect.github.com/actions/setup-python/pull/963)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.3.0>
###
[`v5.2.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.2.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.1.1...v5.2.0)
#### What's Changed
##### Bug fixes:
- Add `.zip` extension to Windows package downloads for `Expand-Archive`
Compatibility by
[@​priyagupta108](https://redirect.github.com/priyagupta108) in
[#​916](https://redirect.github.com/actions/setup-python/pull/916)
This addresses compatibility issues on Windows self-hosted runners by
ensuring that the filenames for Python and PyPy package downloads
explicitly include the .zip extension, allowing the Expand-Archive
command to function correctly.
- Add arch to cache key by
[@​Zxilly](https://redirect.github.com/Zxilly) in
[#​896](https://redirect.github.com/actions/setup-python/pull/896)
This addresses issues with caching by adding the architecture (arch) to
the cache key, ensuring that cache keys are accurate to prevent
conflicts.
Note: This change may break previous cache keys as they will no longer
be compatible with the new format.
##### Documentation changes:
- Fix display of emojis in contributors doc by
[@​sciencewhiz](https://redirect.github.com/sciencewhiz) in
[#​899](https://redirect.github.com/actions/setup-python/pull/899)
- Documentation update for caching poetry dependencies by
[@​gowridurgad](https://redirect.github.com/gowridurgad) in
[#​908](https://redirect.github.com/actions/setup-python/pull/908)
##### Dependency updates:
- Bump [@​iarna/toml](https://redirect.github.com/iarna/toml)
version from 2.2.5 to 3.0.0 by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​912](https://redirect.github.com/actions/setup-python/pull/912)
- Bump pyinstaller from 3.6 to 5.13.1 by
[@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y) in
[#​923](https://redirect.github.com/actions/setup-python/pull/923)
#### New Contributors
- [@​sciencewhiz](https://redirect.github.com/sciencewhiz) made
their first contribution in
[#​899](https://redirect.github.com/actions/setup-python/pull/899)
- [@​priyagupta108](https://redirect.github.com/priyagupta108)
made their first contribution in
[#​916](https://redirect.github.com/actions/setup-python/pull/916)
- [@​Zxilly](https://redirect.github.com/Zxilly) made their first
contribution in
[#​896](https://redirect.github.com/actions/setup-python/pull/896)
- [@​aparnajyothi-y](https://redirect.github.com/aparnajyothi-y)
made their first contribution in
[#​923](https://redirect.github.com/actions/setup-python/pull/923)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.2.0>
###
[`v5.1.1`](https://redirect.github.com/actions/setup-python/releases/tag/v5.1.1)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5.1.0...v5.1.1)
#### What's Changed
##### Bug fixes:
- fix(ci): update all failing workflows by
[@​mayeut](https://redirect.github.com/mayeut) in
[#​863](https://redirect.github.com/actions/setup-python/pull/863)
This update ensures compatibility and optimal performance of workflows
on the latest macOS version.
##### Documentation changes:
- Documentation update for cache by
[@​gowridurgad](https://redirect.github.com/gowridurgad) in
[#​873](https://redirect.github.com/actions/setup-python/pull/873)
##### Dependency updates:
- Bump braces from 3.0.2 to 3.0.3 and undici from 5.28.3 to 5.28.4 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​893](https://redirect.github.com/actions/setup-python/pull/893)
#### New Contributors
- [@​gowridurgad](https://redirect.github.com/gowridurgad) made
their first contribution in
[#​873](https://redirect.github.com/actions/setup-python/pull/873)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5...v5.1.1>
###
[`v5.1.0`](https://redirect.github.com/actions/setup-python/releases/tag/v5.1.0)
[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v5...v5.1.0)
#### What's Changed
- Leveraging the raw API to retrieve the version-manifest, as it does
not impose a rate limit and hence facilitates unrestricted consumption
without the need for a token for Github Enterprise Servers by
[@​Shegox](https://redirect.github.com/Shegox) in
[#​766](https://redirect.github.com/actions/setup-python/pull/766).
- Dependency updates by
[@​dependabot](https://redirect.github.com/dependabot) and
[@​HarithaVattikuti](https://redirect.github.com/HarithaVattikuti)
in
[#​817](https://redirect.github.com/actions/setup-python/pull/817)
- Documentation changes for version in README by
[@​basnijholt](https://redirect.github.com/basnijholt) in
[#​776](https://redirect.github.com/actions/setup-python/pull/776)
- Documentation changes for link in README by
[@​ukd1](https://redirect.github.com/ukd1) in
[#​793](https://redirect.github.com/actions/setup-python/pull/793)
- Documentation changes for link in Advanced Usage by
[@​Jamim](https://redirect.github.com/Jamim) in
[#​782](https://redirect.github.com/actions/setup-python/pull/782)
- Documentation changes for avoiding rate limit issues on GHES by
[@​priya-kinthali](https://redirect.github.com/priya-kinthali) in
[#​835](https://redirect.github.com/actions/setup-python/pull/835)
#### New Contributors
- [@​basnijholt](https://redirect.github.com/basnijholt) made
their first contribution in
[#​776](https://redirect.github.com/actions/setup-python/pull/776)
- [@​ukd1](https://redirect.github.com/ukd1) made their first
contribution in
[#​793](https://redirect.github.com/actions/setup-python/pull/793)
- [@​Jamim](https://redirect.github.com/Jamim) made their first
contribution in
[#​782](https://redirect.github.com/actions/setup-python/pull/782)
- [@​Shegox](https://redirect.github.com/Shegox) made their first
contribution in
[#​766](https://redirect.github.com/actions/setup-python/pull/766)
- [@​priya-kinthali](https://redirect.github.com/priya-kinthali)
made their first contribution in
[#​835](https://redirect.github.com/actions/setup-python/pull/835)
**Full Changelog**:
<https://github.com/actions/setup-python/compare/v5.0.0...v5.1.0>
</details>
<details>
<summary>pyca/cryptography (cryptography)</summary>
###
[`v48.0.0`](https://redirect.github.com/pyca/cryptography/compare/47.0.0...48.0.0)
[Compare
Source](https://redirect.github.com/pyca/cryptography/compare/47.0.0...48.0.0)
</details>
<details>
<summary>googleapis/google-cloud-python (db-dtypes)</summary>
###
[`v1.6.0`](https://redirect.github.com/googleapis/google-cloud-python/releases/tag/db-dtypes-v1.6.0):
db-dtypes: v1.6.0
[Compare
Source](https://redirect.github.com/googleapis/google-cloud-python/compare/db-dtypes-v1.5.1...db-dtypes-v1.6.0)
##### Features
- enable mypy session for db-dtypes
([#​16689](https://redirect.github.com/googleapis/google-cloud-python/issues/16689))
([856731e1](https://redirect.github.com/googleapis/google-cloud-python/commit/856731e1))
</details>
<details>
<summary>dorny/paths-filter (dorny/paths-filter)</summary>
###
[`v4.0.1`](https://redirect.github.com/dorny/paths-filter/releases/tag/v4.0.1)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v4...v4.0.1)
#### What's Changed
- Support merge queue by
[@​masaru-iritani](https://redirect.github.com/masaru-iritani) in
[#​255](https://redirect.github.com/dorny/paths-filter/pull/255)
#### New Contributors
- [@​masaru-iritani](https://redirect.github.com/masaru-iritani)
made their first contribution in
[#​255](https://redirect.github.com/dorny/paths-filter/pull/255)
**Full Changelog**:
<https://github.com/dorny/paths-filter/compare/v4.0.0...v4.0.1>
###
[`v4.0.0`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v400)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v4...v4)
- [Update action runtime to
node24](https://redirect.github.com/dorny/paths-filter/pull/294)
###
[`v4`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v400)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v3.0.3...v4)
- [Update action runtime to
node24](https://redirect.github.com/dorny/paths-filter/pull/294)
###
[`v3.0.3`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v303)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v3.0.2...v3.0.3)
- [Add missing
predicate-quantifier](https://redirect.github.com/dorny/paths-filter/pull/279)
###
[`v3.0.2`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v302)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v3.0.1...v3.0.2)
- [Add config parameter for predicate
quantifier](https://redirect.github.com/dorny/paths-filter/pull/224)
###
[`v3.0.1`](https://redirect.github.com/dorny/paths-filter/blob/HEAD/CHANGELOG.md#v301)
[Compare
Source](https://redirect.github.com/dorny/paths-filter/compare/v3...v3.0.1)
- [Compare base and ref when token is
empty](https://redirect.github.com/dorny/paths-filter/pull/133)
</details>
<details>
<summary>kjd/idna (idna)</summary>
###
[`v3.14`](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)
[Compare
Source](https://redirect.github.com/kjd/idna/compare/v3.13...v3.14)
</details>
<details>
<summary>jestjs/jest (jest)</summary>
###
[`v30.4.2`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3042)
[Compare
Source](https://redirect.github.com/jestjs/jest/compare/v30.4.1...v30.4.2)
##### Fixes
- `[jest-runtime]` Fix named imports from CJS modules whose
`module.exports` is a function with own-property exports
([#​16150](https://redirect.github.com/jestjs/jest/pull/16150))
###
[`v30.4.1`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3041)
[Compare
Source](https://redirect.github.com/jestjs/jest/compare/v30.4.0...v30.4.1)
##### Features
- `[jest-config, jest-core, jest-runner, jest-schemas, jest-types]`
Allow custom runner configuration options via tuple format
`['runner-path', {options}]`
([#​16141](https://redirect.github.com/jestjs/jest/pull/16141))
##### Fixes
- `[jest-runtime]` Align CJS-from-ESM default export with Node:
`module.exports` is always the ESM default, `__esModule` unwrapping is
no longer applied
([#​16143](https://redirect.github.com/jestjs/jest/pull/16143))
###
[`v30.4.0`](https://redirect.github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3040)
[Compare
Source](https://redirect.github.com/jestjs/jest/compare/v30.3.0...v30.4.0)
##### Features
- `[babel-jest]` Support collecting coverage from `.mts`, `.cts` (and
other) files
([#​15994](https://redirect.github.com/jestjs/jest/pull/15994))
- `[jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2,
jest-types]` Add `--collect-tests` flag to discover and list tests
without executing them
([#​16006](https://redirect.github.com/jestjs/jest/pull/16006))
- `[jest-config, jest-runner, jest-worker]` Add
`workerGracefulExitTimeout` config option to control how long workers
are given to exit before being force-killed
([#​15984](https://redirect.github.com/jestjs/jest/pull/15984))
- `[jest-config]` Add support for `jest.config.mts` as a valid
configuration file
([#​16005](https://redirect.github.com/jestjs/jest/pull/16005))
- `[jest-config, jest-core, jest-reporters, jest-runner]` `verbose` and
`silent` can now be set per-project; the project-level value overrides
the global value for that project's tests
([#​16133](https://redirect.github.com/jestjs/jest/pull/16133))
- `[@jest/fake-timers]` Accept `Temporal.Duration` in
`jest.advanceTimersByTime()` and `jest.advanceTimersByTimeAsync()`
([#​16128](https://redirect.github.com/jestjs/jest/pull/16128))
- `[@jest/fake-timers]` Accept `Temporal.Instant` and
`Temporal.ZonedDateTime` in `jest.setSystemTime()` and
`useFakeTimers({now})`
([#​16128](https://redirect.github.com/jestjs/jest/pull/16128))
- `[@jest/fake-timers]` Support faking `Temporal.Now.*`
([#​16131](https://redirect.github.com/jestjs/jest/pull/16131))
- `[jest-mock]` Add `clearMocksOnScope(scope)` on `ModuleMocker` for
clearing every mock function exposed on a scope object
([#​16088](https://redirect.github.com/jestjs/jest/pull/16088))
- `[jest-resolve]` Add `canResolveSync()` on `Resolver` so callers can
detect when a user-configured resolver only exports an `async` hook
([#​16064](https://redirect.github.com/jestjs/jest/pull/16064))
- `[jest-runtime]` Use synchronous `evaluate()` for ES modules without
top-level `await` on Node versions that support it (v24.9+), and prefer
the synchronous transform path when a sync transformer is configured
([#​16062](https://redirect.github.com/jestjs/jest/pull/16062))
- `[jest-runtime]` Support `require()` of ES modules on Node v24.9+
([#​16074](https://redirect.github.com/jestjs/jest/pull/16074))
- `[jest-runtime]` Validate TC39 import attributes (`with { type: 'json'
}`) on ESM imports
([#​16127](https://redirect.github.com/jestjs/jest/pull/16127))
- `[@jest/transform]` Add `canTransformSync(filename)` on
`ScriptTransformer` so callers can pick the sync vs async transform path
([#​16062](https://redirect.github.com/jestjs/jest/pull/16062))
- `[jest-util]` Add `isError` helper
([#​16076](https://redirect.github.com/jestjs/jest/pull/16076))
- `[pretty-format]` Support React 19
([#​16123](https://redirect.github.com/jestjs/jest/pull/16123))
##### Fixes
- `[expect-utils]` Fix `toStrictEqual` failing on `structuredClone`
results due to cross-realm constructor mismatch
([#​15959](https://redirect.github.com/jestjs/jest/pull/15959))
- `[@jest/expect-utils]` Prevent `toMatchObject`/subset matching from
throwing when encountering exotic iterables
([#​15952](https://redirect.github.com/jestjs/jest/pull/15952))
- `[fake-timers]` Convert `Date` to milliseconds before passing to
`@sinonjs/fake-timers`
([#​16029](https://redirect.github.com/jestjs/jest/pull/16029))
- `[jest]` Export `GlobalConfig` and `ProjectConfig` TypeScript types
([#​16132](https://redirect.github.com/jestjs/jest/pull/16132))
- `[jest-circus]` Prevent crash when `asyncError` is undefined for
non-Error throws
([#​16003](https://redirect.github.com/jestjs/jest/pull/16003))
- `[jest-circus, jest-jasmine2]` Include `Error.cause` in JSON
`failureMessages` output
([#​15967](https://redirect.github.com/jestjs/jest/pull/15967))
- `[jest-config]` Fix preset path resolution on Windows when the preset
uses subpath `exports`
([#​15961](https://redirect.github.com/jestjs/jest/pull/15961))
- `[jest-config]` Allow `collectCoverage` and `coverageProvider` in
project config without a validation warning
([#​16132](https://redirect.github.com/jestjs/jest/pull/16132))
- `[jest-config]` Project config validator now emits "is not supported
in an individual project configuration" instead of "probably a typing
mistake" for known global-only options
([#​16132](https://redirect.github.com/jestjs/jest/pull/16132))
- `[jest-environment-node]` Fix `--localstorage-file` warning on Node
25+
([#​16086](https://redirect.github.com/jestjs/jest/pull/16086))
- `[jest-reporters]` Apply global coverage threshold to unmatched
pattern files in addition to glob/path thresholds
([#​16137](https://redirect.github.com/jestjs/jest/pull/16137))
- `[jest-reporters, jest-runner, jest-runtime, jest-transform]` Fix
coverage report not showing correct code coverage when using `projects`
config option
([#​16140](https://redirect.github.com/jestjs/jest/pull/16140))
- `[jest-runtime]` Resolve `expect` and `@jest/expect` from the internal
module registry so test-file imports share the same `JestAssertionError`
as the global `expect`
([#​16130](https://redirect.github.com/jestjs/jest/pull/16130))
- `[jest-runtime]` Improve CJS-from-ESM interop: `__esModule`/Babel
default unwrap, broader named-export coverage, and shared CJS singleton
across importers
([#​16050](https://redirect.github.com/jestjs/jest/pull/16050))
- `[jest-runtime]` Load `.js` files with ESM syntax but no
`"type":"module"` marker as native ESM
([#​16050](https://redirect.github.com/jestjs/jest/pull/16050))
- `[jest-runtime]` Extend the `.js`-with-ESM-syntax fallback to
`require()` on Node v24.9+ - falls back to `require(esm)` when the CJS
parser rejects ESM syntax
([#​16078](https://redirect.github.com/jestjs/jest/pull/16078))
- `[jest-runtime]` Fix deadlocks and double-evaluation in concurrent ESM
and wasm imports
([#​16050](https://redirect.github.com/jestjs/jest/pull/16050))
- `[jest-runtime]` Fix error when `require()` is called after the Jest
environment has been torn down
([#​15951](https://redirect.github.com/jestjs/jest/pull/15951))
- `[jest-runtime]` Fix missing error when `import()` is called after the
Jest environment has been torn down
([#​16080](https://redirect.github.com/jestjs/jest/pull/16080))
- `[jest-runtime]` Fix virtual `unstable_mockModule` registrations not
respected in ESM
([#​16081](https://redirect.github.com/jestjs/jest/pull/16081))
- `[jest-runtime]` Apply `moduleNameMapper` when resolving modules with
`require.resolve()` and the `paths` option
([#​16135](https://redirect.github.com/jestjs/jest/pull/16135))
##### Chore & Maintenance
- `[@jest/fake-timers]` Upgrade `@sinonjs/fake-timers`
([#​16139](https://redirect.github.com/jestjs/jest/pull/16139))
- `[jest-runtime]` Use synchronous `linkRequests` / `instantiate` for
ESM linking on Node v24.9+
([#​16063](https://redirect.github.com/jestjs/jest/pull/16063))
</details>
<details>
<summary>jsdom/jsdom (jsdom)</summary>
###
[`v29.1.1`](https://redirect.github.com/jsdom/jsdom/compare/v29.1.0...9b9ea7e10b7842cd38c61458a38774cc3b60c24c)
[Compare
Source](https://redirect.github.com/jsdom/jsdom/compare/v29.1.0...v29.1.1)
</details>
<details>
<summary>pandas-dev/pandas (pandas)</summary>
###
[`v3.0.2`](https://redirect.github.com/pandas-dev/pandas/releases/tag/v3.0.2):
pandas 3.0.2
[Compare
Source](https://redirect.github.com/pandas-dev/pandas/compare/v3.0.1...v3.0.2)
We are pleased to announce the release of pandas 3.0.2.
This is a patch release in the 3.0.x series and includes some regression
fixes and bug fixes. We recommend that all users of the 3.0.x series
upgrade to this version.
See the [full
whatsnew](https://pandas.pydata.org/docs/dev/whatsnew/v3.0.2.html) for a
list of all the changes.
Pandas 3.0 supports Python 3.11 and higher.
The release can be installed from PyPI:
```
python -m pip install --upgrade pandas==3.0.*
```
Or from conda-forge
```
conda install -c conda-forge pandas=3.0
```
Please report any issues with the release on the [pandas issue
tracker](https://redirect.github.com/pandas-dev/pandas/issues).
Thanks to all the contributors who made this release possible.
###
[`v3.0.1`](https://redirect.github.com/pandas-dev/pandas/releases/tag/v3.0.1):
pandas 3.0.1
[Compare
Source](https://redirect.github.com/pandas-dev/pandas/compare/v3.0.0...v3.0.1)
We are pleased to announce the release of pandas 3.0.1.
This is a patch release in the 3.0.x series and includes some regression
fixes and bug fixes. We recommend that all users of the 3.0.x series
upgrade to this version.
See the [full
whatsnew](https://pandas.pydata.org/docs/dev/whatsnew/v3.0.1.html) for a
list of all the changes.
Pandas 3.0.0 supports Python 3.11 and
> ✂ **Note**
>
> PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/googleapis/google-cloud-python).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTkuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE1OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
---------
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 4.25.8 to 5.29.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/protocolbuffers/protobuf/releases">protobuf's releases</a>.</em></p> <blockquote> <h2>Protocol Buffers v34.0-rc1</h2> <h1>Announcements</h1> <ul> <li><strong>This version includes breaking changes to: C++, Objective-C, PHP, Python.</strong></li> <li>[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (<a href="https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb">https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb</a>)</li> <li>[C++] Make generator headers private (<a href="https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e">https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e</a>)</li> <li>[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (<a href="https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1">https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1</a>)</li> <li>[C++] Add [[nodiscard]] to many APIs. (<a href="https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738">https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738</a>)</li> <li>[C++] Make the arena-enabled constructors of <code>RepeatedField</code>, <code>RepeatedPtrField</code>, and <code>Map</code> private. (<a href="https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336">https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292">https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292</a>)</li> <li>[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (<a href="https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae">https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8">https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8</a>)</li> <li>[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (<a href="https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536">https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536</a>)</li> <li>[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (<a href="https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af">https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af</a>)</li> <li>[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (<a href="https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00">https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00</a>)</li> <li>[C++] All entity names have length limit (2afb0dc)</li> <li>[ObjC] Remove <code>generate_minimal_imports</code> generation option warning (<a href="https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4">https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4</a>)</li> <li>[ObjC] Fix nullability annotations on some <code>GPB*Dictionary</code> types. (<a href="https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50">https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50</a>)</li> <li>[ObjC] Remove <code>-[GPBFieldDescriptor optional]</code> (<a href="https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4">https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4</a>)</li> <li>[Other] Remove deprecated flag for enabling MSVC support (<a href="https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7">https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7</a>)</li> <li>[PHP] Remove deprecated PHP APIs (<a href="https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5">https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5</a>)</li> <li>[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (<a href="https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345">https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345</a>, <a href="https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6">https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6</a>, <a href="https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345">https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345</a>)</li> <li>[PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (<a href="https://redirect.github.com/protocolbuffers/protobuf/pull/25296">protocolbuffers/protobuf#25296</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd">https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd</a>)</li> <li>[PHP] support default values for editions/proto2 (<a href="https://redirect.github.com/protocolbuffers/protobuf/pull/25161">protocolbuffers/protobuf#25161</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17">https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17</a>)</li> <li>[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (<a href="https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c">https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c</a>)</li> <li>[Python] Remove float_format/double_format from python proto text_format (<a href="https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488">https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488</a>)</li> <li>[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (<a href="https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c">https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c</a>)</li> <li>[Python] Remove float_precision from python proto json_format (<a href="https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5">https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5</a>)</li> <li>[Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (<a href="https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292">https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292</a>)</li> <li>[Python] Remove deprecated FieldDescriptor.label (<a href="https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9">https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9</a>)</li> <li>[Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (<a href="https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00">https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00</a>)</li> <li><a href="https://protobuf.dev/news/">Protobuf News</a> may include additional announcements or pre-announcements for upcoming changes.</li> <li><a href="https://protobuf.dev/support/migration/">Migration Guide</a> may include additional guidance for breaking changes.</li> </ul> <h1>Bazel</h1> <ul> <li>Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/25168">#25168</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9">https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9</a>)</li> <li>Breaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (<a href="https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb">https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb</a>)</li> <li>Feat(bazel): wire up prebuilt protoc toolchain (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/24115">#24115</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6">https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6</a>)</li> <li>Migrate <code>proto_descriptor_set</code> (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/23369">#23369</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8">https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8</a>)</li> </ul> <h1>Compiler</h1> <ul> <li>Ruby codegen: support generation of rbs files (<a href="https://redirect.github.com/protocolbuffers/protobuf/issues/15633">#15633</a>) (<a href="https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d">https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d</a>)</li> <li>Avoid collision name problems between a message named <code>Xyz</code> and a direct sibling enum named <code>XyzView</code> (<a href="https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1">https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1</a>)</li> <li>Generalizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (<a href="https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0">https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0</a>)</li> <li>Fix a bug with custom features outside of the <code>pb</code> package. (<a href="https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8">https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8</a>)</li> <li>Fix import option handling when include_imports isn't set. (<a href="https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e">https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e</a>)</li> <li>Fix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (<a href="https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f">https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f</a>)</li> <li>Prevent accidental stripping of <code>debug_redact</code> options via import option. (<a href="https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28">https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28</a>)</li> </ul> <h1>C++</h1> <ul> <li>Add EnumerateEnumValues function. (<a href="https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7">https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/protocolbuffers/protobuf/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/google-cloud-python/network/alerts). </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com>
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-cloud-python/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes #<issue_number_goes_here> 🦕
#17029) This PR fixes the sqlalchemy-bigquery portion of Issue #16042. Problem: `test_compiled_query_literal_binds` was skipped for SQLAlchemy >= 2.0 because it was failing. The failure occurs because in SQLAlchemy 2.0, `Connection.execute()` expects an executable object or a string (wrapped in `text()`), and passing a `Compiled` object directly is no longer supported. Fix: - Removed the skip condition for SQLAlchemy >= 2.0. - Modified the test to wrap the compiled query string in `sqlalchemy.text()` before passing it to `conn.execute()`. This allows the test to run and pass on SQLAlchemy 2.0.
Onboard `google-maps-mapmanagement` API with initial `v2beta` version.
Produced by running the following commands:
```
$ V=$(sed -n 's/^version: *//p' librarian.yaml)
$ go run github.com/googleapis/librarian/tool/cmd/builddockerimages@${V} --version ${V} --language python
$ go run github.com/googleapis/librarian/cmd/librarian@${V} add google/maps/mapmanagement/v2beta
$ docker run -u $(id -u):$(id -g) -v .:/repo -v ~/.cache:/.cache -w /repo docker.io/library/librarian-python:${V} generate google-maps-mapmanagement
```
Towards b/503325033
The contents of the change are: * Fixed Sphinx format error: single backticks are replaced with double backticks. * Removed parameter verification to keep the client lean. * Removed pre-GA notes as these functions are all GA'ed * Fixed format of some other files .
This Pull Request drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
…nly (#17062) This is the result of regenerating all packages, but only committing files which have only changed in a single line, and that's a copyright line.
The changes include: * Make all optional parameters default to None, which reduces the length of compiled SQLs * "Upper" the parameters at the API layer if necessary, so that we don't need to repeat this logic in both compilers later * Make all optional parameters default to None in the operator definitions too, saving some lines in the unit tests --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.13.0 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:234b9d1f2ddb057ed7ac6a38db0bf8163d839c65c6cf88ade52530cddebce59e <details><summary>bigframes: v2.40.0</summary> ## [v2.40.0](bigframes-v2.39.0...bigframes-v2.40.0) (2026-05-13) ### Features * Add `bigframes.execution_history` API to track BigQuery jobs (#16588) ([fa20a74](fa20a740)) ```python import bigframes.pandas as bpd bpd.options.compute.enable_execution_history = True df = bpd.read_gbq("my_table") # ... perform operations ... history = bpd.execution_history print(history.jobs) # Access BigQuery job details for executed queries ``` * Implement `ai.similarity` and `ai.embed` for text embeddings and semantic similarity (#16771, #16759) ([d4afa2c](d4afa2c8), [fcb4579](fcb4579b)) ```python import bigframes.pandas as bpd # Generate embeddings df["embeddings"] = bpd.bigquery.ai.embed(df["text_col"]) # Compute similarity df["similarity"] = bpd.bigquery.ai.similarity(df["embeddings_a"], df["embeddings_b"]) ``` * Support `hparam_range` and `hparam_candidates` parameters for hyperparameter tuning in model creation (#16640) ([ca47835](ca47835c)) * Update `ai.score`, `ai.classify` and `ai.if_` parameters to match their SQL equivalents (#16919, #16990, #16857) ([9f42fe1](9f42fe14), [e9c52b1](e9c52b12), [f3cb4ad](f3cb4ad0)) * Support unstable sorting in `sort_values` and `sort_index` (#16665) ([bbdeb70](bbdeb70f)) * Support loading Avro and ORC data formats (#16555) ([6d46cba](6d46cba3)) * Add NumPy ufunc support directly on column expressions (#16554) ([2f792ab](2f792abd)) ### Bug Fixes * Fix bugs compiling ambiguous ids and in subqueries (#16617) ([479e44d](479e44dd)) * BigFrames respects bq default region (#16933) ([ef9945a](ef9945a5)) * avoid views when querying BigLake tables from SQL cells (#16562) ([fdd3e0d](fdd3e0de)) * avoid `copy` argument warning in `to_pandas` (#16917) ([fe5245b](fe5245b8)) ### Performance Improvements * Improve write api upload throughput (#16641) ([ef856b0](ef856b04)) ### Documentation * Add docs to the to_csv methods of dataframe and series (#16570) ([a8fccef](a8fccefd)) </details>
…6918) **Overview** This PR modernizes the tutorial notebooks across the BigFrames ecosystem to align with the latest public API state and successfully completes the migration path away from the deprecated internal .blob accessors and private loading mechanisms (e.g. _from_glob_path). The core objective is ensuring user-facing documentation perfectly tracks active package behavior without invoking retirement warnings or triggering internal attribute exceptions. **Key Changes** - Explicit URL Mapping: Replaced implicit complex type conversions inside low-level AI function calls with deterministic, user-facing patterns utilizing bbq.obj.get_access_url. - Tutorial Stabilizations: Corrected a regression chain in ai_movie_poster.ipynb wherein cascading dataframe types were left in raw struct states, potentially breaking downstream filters. All extractions are now strictly string-casted at generation time. - Infrastructure Cleanup: Successfully replaced legacy references to _from_glob_path and other private ingestion hooks with proper bbq.obj.make_ref and standard read_gbq() patterns. - Kaggle Integrity: Wrapped authentication segments in Kaggle notebooks to prevent local import collisions and added missing output formatting. - Fixes #< 478952827 > 🦕
Some lint errors sneaked in to the main branch of BigFrames.
This Pull Request drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
This Pull Request drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
This Pull Request drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
Fixes b/512917646
This Pull Request drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
…17127) These packages have not yet been updated to generator version 1.32.0. We should handle them with a separate PR per package which fixes any post-processing files, unskips generation, and includes the generated changes. Packages skipped by this change: - google-cloud-asset - google-cloud-automl - google-cloud-monitoring - google-cloud-pubsub - google-cloud-spanner - google-cloud-storage
This is an already reviewed change as part of [this PR](googleapis/python-spanner#1461) in old repo. This change introduces logging for Spanner client options upon initialization. This allows customers to easily capture and inspect the configuration being used, which is valuable for debugging and verification. This feature mirrors the existing logSpannerOptions functionality in the Java client, improving consistency across client libraries. googleapis/java-spanner#4141
) (This was caused by #17044, but wasn't caught *in* that PR as the librarian version at the time wasn't checking for release consistency.)
Updates the Dialogflow API, which was previously blocked on a resource name conflict. This Pull Request also drops support for Python <=3.9 in generated packages. This is part of our ongoing effort to modernize the Cloud Python SDK libraries and remove support for End-of-Life (EOL) Python versions. - Removed Python <=3.9 from testing, configuration, and constraints files. - Resolved dependency conflicts arising from dropping Python <=3.9 support. - Cleaned up obsolete code related to Python <=3.9 support. - Updated select copyright dates - Updated some autogenerated headings - Updated some tests to resolve issues discovered during this migration.
Fixes b/491582856 🦕
This PR deprecates and cleans up experimental Multimodal Blob APIs in BigQuery DataFrames to focus on core supported features. Key Changes: - Removed public APIs: from_glob_path and read_gbq_object_table were removed from module exports and Session class. - Exposed internal API: Added _from_glob_path as an internal API in the module to support existing notebooks. Fixes #<478952827> 🦕 --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Relaxes DatasetReference.from_string and TableReference.from_string validation. Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-cloud-python/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes b/512823729 🦕
…t FailedPrecondition and quota exhaustion (#17141) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-cloud-python/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) ### Root Cause During Kokoro continuous test runs for Cloud Spanner samples, tests restore databases from backups. The restored databases hold active backend references to the backups (`backup.referencing_databases`) while optimizing in the background. During module teardown, `conftest.py` calls `database.drop()` and immediately iterates to `backup.delete()`. Because `database.drop()` is asynchronous on the Spanner backend, `backup.delete()` frequently fails with a `FailedPrecondition` error (backup in use). This unhandled exception crashes the fixture teardown generator, skipping `instance.delete()` and leaking instances and backups. As these leaked resources accumulate across frequent Kokoro runs in the shared test project, subsequent runs fail due to `ResourceExhausted` (quota exceeded) errors. ### Solution - Created a robust retry helper (`retry_cleanup`) that retries on both `ResourceExhausted` and `FailedPrecondition`. - Isolated individual database drops and backup deletions within `try...except exceptions.GoogleAPICallError` blocks so that an error on a single resource never aborts the scrubbing generator. - Unified this robust scrubbing logic across `cleanup_old_instances`, `sample_instance`, and `multi_region_instance` teardown fixtures.
…st (#17140) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/google-cloud-python/issues) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) ### Root Cause In Python 3.13 (and under recent `pytest-asyncio` / `asyncio` runtimes), the asynchronous event loop and task scheduling infrastructure makes internal calls to `time.time()` during coroutine execution and retry delay handling. In `test_run_in_transaction_w_abort_w_retry_metadata_deadline`, `time.time` was mocked using a helper that popped from a fixed 2-element list on every invocation (`_results.pop(0)`). The extra internal event loop calls exhausted `_results` prematurely, deterministically raising an `IndexError: pop from empty list` when `_delay_until_retry` checked the deadline. ### Solution Updated the `_time` mock helper in `packages/google-cloud-spanner/tests/unit/_async/test_session.py` to return the last timestamp repeatedly once `_results` has reached its final element: ```python def _time(_results=[1, 1.5]): if len(_results) > 1: return _results.pop(0) return _results[0]
This PR adds support for the
delete_source_objectsparameter in theBlob.composemethod of thegoogle-cloud-storagepackage. This aligns the Python SDK with feature parity in the Java SDK.Key changes:
Blob.composesignature to acceptdelete_source_objects.Blob.composedocstring.deleteSourceObjectsin the JSON request body sent to the GCS REST API.test_compose_w_delete_source_objectstotest_blob.pyto verify correct serialization.Blobpass.PR created automatically by Jules for task 5220279067164674388 started by @nidhiii-27