Skip to content

chore(deps): update all dependencies#1763

Open
renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
renovate-bot:renovate/all
Open

chore(deps): update all dependencies#1763
renovate-bot wants to merge 1 commit intogoogleapis:mainfrom
renovate-bot:renovate/all

Conversation

@renovate-bot
Copy link
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
google-cloud-pubsub ==2.29.0==2.35.0 age confidence
google-cloud-storage ==3.1.0==3.9.0 age confidence
pandas ==2.2.3==3.0.1 age confidence
pytest (changelog) ==8.3.5==9.0.2 age confidence

Release Notes

googleapis/python-pubsub (google-cloud-pubsub)

v2.35.0

Compare Source

Documentation
Features

v2.34.0

Compare Source

Features

v2.33.0

Compare Source

Features
  • Add AwsKinesisFailureReason.ApiViolationReason (ac68093)
  • Add tags to Subscription, Topic, and CreateSnapshotRequest messages for use in CreateSubscription, CreateTopic, and CreateSnapshot requests respectively (ac68093)
  • Annotate some resource fields with their corresponding API types (ac68093)
Bug Fixes
  • Deprecate credentials_file argument (ac68093)
Documentation
  • A comment for field received_messages in message .google.pubsub.v1.StreamingPullResponse is changed (ac68093)

v2.32.0

Compare Source

Features
Bug Fixes

v2.31.1

Compare Source

Bug Fixes

v2.31.0

Compare Source

Features
  • Add MessageTransformationFailureReason to IngestionFailureEvent (#​1427) (8ab13e1)
Bug Fixes
  • Surface Fatal Stream Errors to Future; Adjust Retryable Error Codes (#​1422) (e081beb)

v2.30.0

Compare Source

Features

v2.29.1

Compare Source

Bug Fixes
  • Remove setup.cfg configuration for creating universal wheels (#​1376) (60639c4)
Documentation
  • sample: Add samples for topic and subscription SMTs (#​1386) (4d072e0)
  • Update documentation for JavaScriptUDF to indicate that the message_id metadata field is optional instead of required (#​1380) (be90054)
  • Update readme links (#​1409) (77ba05d)
googleapis/python-storage (google-cloud-storage)

v3.9.0

Compare Source

Features
Bug Fixes

v3.8.0

Compare Source

Features
Bug Fixes

v3.7.0

Compare Source

Features
Bug Fixes

v3.6.0

Compare Source

Features
  • Add support for partial list buckets (#​1606) (92fc2b0)
  • Make return_partial_success and unreachable fields public for list Bucket (#​1601) (323cddd)
  • zb-experimental: Add async write object stream (5ab8103)
  • zb-experimental: Add async write object stream (#​1612) (5ab8103)
Bug Fixes

v3.5.0

Compare Source

Features
Bug Fixes
  • Deprecate credentials_file argument (74415a2)
  • Flaky system tests for resumable_media (#​1592) (7fee3dd)
  • Make download_ranges compatible with asyncio.create_task(..) (#​1591) (faf8b83)
  • Make download_ranges compatible with asyncio.create_task(..) (#​1591) (faf8b83)
  • Redact sensitive data from OTEL traces and fix env var parsing (#​1553) (a38ca19)
  • Redact sensitive data from OTEL traces and fix env var parsing (#​1553) (a38ca19)
  • Use separate header object for each upload in Transfer Manager MPU (#​1595) (0d867bd)

v3.4.1

Compare Source

Bug Fixes
  • Fixes #​1561 by adding an option to specify the entire object checksum for resumable uploads via the upload_from_string, upload_from_file, and upload_from_filename methods (acb918e)

v3.4.0

Compare Source

Features
Bug Fixes

v3.3.1

Compare Source

Bug Fixes
  • Provide option to user to set entire object checksum at "initiate a resumable upload session" and send the same (#​1525) (a8109e0)
  • Send part's checksum for XML MPU part upload (#​1529) (2ad77c7)

v3.3.0

Compare Source

Features
Bug Fixes
Documentation

v3.2.0

Compare Source

Features

v3.1.1

Compare Source

Bug Fixes
  • Add a check for partial response data (#​1487) (7e0412a)
  • Add trove classifier for Python 3.13 (0100916)
  • deps: Require google-crc32c >= 1.1.3 (0100916)
  • deps: Require protobuf >= 3.20.2, < 7.0.0 (0100916)
  • deps: Require requests >= 2.22.0 (0100916)
  • Remove setup.cfg configuration for creating universal wheels (#​1448) (d3b6b3f)
  • Resolve issue where pre-release versions of dependencies are installed (0100916)
  • Segmentation fault in tink while writing data (#​1490) (2a46c0b)
Documentation
pandas-dev/pandas (pandas)

v3.0.1: pandas 3.0.1

Compare Source

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 for a list of all the changes.

Pandas 3.0.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.

Thanks to all the contributors who made this release possible.

v3.0.0: pandas 3.0.0

Compare Source

We are pleased to announce the release of pandas 3.0.0, a major release from the pandas 2.x series. This release includes some new features, bug fixes, and performance improvements, as well as possible breaking changes.

The pandas 3.0 release removed a functionality that was deprecated in previous releases. It is recommended to first upgrade to pandas 2.3 and to ensure your code is working without warnings, before upgrading to pandas 3.0.

Highlights include:

See the full whatsnew for a list of all the changes.

Pandas 3.0.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.

Thanks to all the contributors who made this release possible.

v2.3.3: Pandas 2.3.3

Compare Source

We are pleased to announce the release of pandas 2.3.3.
This release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes.
Pandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.

The release will be available on the conda-forge channel:

conda install pandas --channel conda-forge

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

v2.3.2: Pandas 2.3.2

Compare Source

We are pleased to announce the release of pandas 2.3.2.
This release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes.
Pandas 2.3.2 supports Python 3.9 and higher.

The release will be available on the conda-forge channel:

conda install pandas --channel conda-forge

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

v2.3.1: Pandas 2.3.1

Compare Source

We are pleased to announce the release of pandas 2.3.1.
This release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes.
Pandas 2.3.1 supports Python 3.9 and higher.

The release will be available on the conda-forge channel:

conda install pandas --channel conda-forge

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

v2.3.0: Pandas 2.3.0

Compare Source

We are pleased to announce the release of pandas 2.3.0.
This release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.

See the full whatsnew for a list of all the changes.
Pandas 2.3.0 supports Python 3.10 and higher.

The release will be available on the defaults and conda-forge channels:

conda install -c conda-forge pandas

Or via PyPI:

python3 -m pip install --upgrade pandas

Please report any issues with the release on the pandas issue tracker.

Thanks to all the contributors who made this release possible.

pytest-dev/pytest (pytest)

v9.0.2

Compare Source

pytest 9.0.2 (2025-12-06)

Bug fixes

  • #​13896: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.

    You may enable it again by passing -p terminalprogress. We may enable it by default again once compatibility improves in the future.

    Additionally, when the environment variable TERM is dumb, the escape codes are no longer emitted, even if the plugin is enabled.

  • #​13904: Fixed the TOML type of the tmp_path_retention_count settings in the API reference from number to string.

  • #​13946: The private config.inicfg attribute was changed in a breaking manner in pytest 9.0.0.
    Due to its usage in the ecosystem, it is now restored to working order using a compatibility shim.
    It will be deprecated in pytest 9.1 and removed in pytest 10.

  • #​13965: Fixed quadratic-time behavior when handling unittest subtests in Python 3.10.

Improved documentation

  • #​4492: The API Reference now contains cross-reference-able documentation of pytest's command-line flags <command-line-flags>.

v9.0.1

Compare Source

pytest 9.0.1 (2025-11-12)

Bug fixes

  • #​13895: Restore support for skipping tests via raise unittest.SkipTest.
  • #​13896: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.
  • #​13904: Fixed the TOML type of the verbosity settings in the API reference from number to string.
  • #​13910: Fixed UserWarning: Do not expect file_or_dir on some earlier Python 3.12 and 3.13 point versions.

Packaging updates and notes for downstreams

  • #​13933: The tox configuration has been adjusted to make sure the desired
    version string can be passed into its package_env through
    the SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST environment
    variable as a part of the release process -- by webknjaz.

Contributor-facing changes

  • #​13891, #​13942: The CI/CD part of the release automation is now capable of
    creating GitHub Releases without having a Git checkout on
    disk -- by bluetech and webknjaz.
  • #​13933: The tox configuration has been adjusted to make sure the desired
    version string can be passed into its package_env through
    the SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST environment
    variable as a part of the release process -- by webknjaz.

v9.0.0

Compare Source

pytest 9.0.0 (2025-11-05)

New features

  • #​1367: Support for subtests has been added.

    subtests <subtests> are an alternative to parametrization, useful in situations where the parametrization values are not all known at collection time.

    Example:

    def contains_docstring(p: Path) -> bool:
        """Return True if the given Python file contains a top-level docstring."""
        ...
    
    def test_py_files_contain_docstring(subtests: pytest.Subtests) -> None:
        for path in Path.cwd().glob("*.py"):
            with subtests.test(path=str(path)):
                assert contains_docstring(path)

    Each assert failure or error is caught by the context manager and reported individually, giving a clear picture of all files that are missing a docstring.

    In addition, unittest.TestCase.subTest is now also supported.

    This feature was originally implemented as a separate plugin in pytest-subtests, but since then has been merged into the core.

    [!NOTE]
    This feature is experimental and will likely evolve in future releases. By that we mean that we might change how subtests are reported on failure, but the functionality and how to use it are stable.

  • #​13743: Added support for native TOML configuration files.

    While pytest, since version 6, supports configuration in pyproject.toml files under [tool.pytest.ini_options],
    it does so in an "INI compatibility mode", where all configuration values are treated as strings or list of strings.
    Now, pytest supports the native TOML data model.

    In pyproject.toml, the native TOML configuration is under the [tool.pytest] table.

    # pyproject.toml
    [tool.pytest]
    minversion = "9.0"
    addopts = ["-ra", "-q"]
    testpaths = [
        "tests",
        "integration",
    ]

    The [tool.pytest.ini_options] table remains supported, but both tables cannot be used at the same time.

    If you prefer to use a separate configuration file, or don't use pyproject.toml, you can use pytest.toml or .pytest.toml:

    # pytest.toml or .pytest.toml
    [pytest]
    minversion = "9.0"
    addopts = ["-ra", "-q"]
    testpaths = [
        "tests",
        "integration",
    ]

    The documentation now (sometimes) shows configuration snippets in both TOML and INI formats, in a tabbed interface.

    See config file formats for full details.

  • #​13823: Added a "strict mode" enabled by the strict configuration option.

    When set to true, the strict option currently enables

    • strict_config
    • strict_markers
    • strict_parametrization_ids
    • strict_xfail

    The individual strictness options can be explicitly set to override the global strict setting.

    The previously-deprecated --strict command-line flag now enables strict mode.

    If pytest adds new strictness options in the future, they will also be enabled in strict mode.
    Therefore, you should only enable strict mode if you use a pinned/locked version of pytest,
    or if you want to proactively adopt new strictness options as they are added.

    See strict mode for more details.

  • #​13737: Added the strict_parametrization_ids configuration option.

    When set, pytest emits an error if it detects non-unique parameter set IDs,
    rather than automatically making the IDs unique by adding 0, 1, ... to them.
    This can be particularly useful for catching unintended duplicates.

  • #​13072: Added support for displaying test session progress in the terminal tab using the OSC 9;4; ANSI sequence.
    When pytest runs in a supported terminal emulator like ConEmu, Gnome Terminal, Ptyxis, Windows Terminal, Kitty or Ghostty,
    you'll see the progress in the terminal tab or window,
    allowing you to monitor pytest's progress at a glance.

    This feature is automatically enabled when running in a TTY. It is implemented as an internal plugin. If needed, it can be disabled as follows:

    • On a user level, using -p no:terminalprogress on the command line or via an environment variable PYTEST_ADDOPTS='-p no:terminalprogress'.
    • On a project configuration level, using addopts = "-p no:terminalprogress".
  • #​478: Support PEP420 (implicit namespace packages) as --pyargs target when consider_namespace_packages is true in the config.

    Previously, this option only impacted package imports, now it also impacts tests discovery.

  • #​13678: Added a new faulthandler_exit_on_timeout configuration option set to "false" by default to let faulthandler interrupt the pytest process after a timeout in case of deadlock.

    Previously, a faulthandler timeout would only dump the traceback of all threads to stderr, but would not interrupt the pytest process.

    -- by ogrisel.

  • #​13829: Added support for configuration option aliases via the aliases parameter in Parser.addini() <pytest.Parser.addini>.

    Plugins can now register alternative names for configuration options,
    allowing for more flexibility in configuration naming and supporting backward compatibility when renaming options.
    The canonical name always takes precedence if both the canonical name and an alias are specified in the configuration file.

Improvements in existing functionality

  • #​13330: Having pytest configuration spread over more than one file (for example having both a pytest.ini file and pyproject.toml with a [tool.pytest.ini_options] table) will now print a warning to make it clearer to the user that only one of them is actually used.

    -- by sgaist

  • #​13574: The single argument --version no longer loads the entire plugin infrastructure, making it faster and more reliable when displaying only the pytest version.

    Passing --version twice (e.g., pytest --version --version) retains the original behavior, showing both the pytest version and plugin information.

    [!NOTE]
    Since --version is now processed early, it only takes effect when passed directly via the command line. It will not work if set through other mechanisms, such as PYTEST_ADDOPTS or addopts.

  • #​13823: Added strict_xfail as an alias to the xfail_strict option,
    strict_config as an alias to the --strict-config flag,
    and strict_markers as an alias to the --strict-markers flag.
    This makes all strictness options consistently have configuration options with the prefix strict_.

  • #​13700: --junitxml no longer prints the generated xml file summary at the end of the pytest session when --quiet is given.

  • #​13732: Previously, when filtering warnings, pytest would fail if the filter referenced a class that could not be imported. Now, this only outputs a message indicating the problem.

  • #​13859: Clarify the error message for pytest.raises() when a regex match fails.

  • #​13861: Better sentence structure in a test's expected error message. Previously, the error message would be "expected exception must be <expected>, but got <actual>". Now, it is "Expected <expected>, but got <actual>".

Removals and backward incompatible breaking changes

  • #​12083: Fixed a bug where an invocation such as pytest a/ a/b would cause only tests from a/b to run, and not other tests under a/.

    The fix entails a few breaking changes to how such overlapping arguments and duplicates are handled:

    1. pytest a/b a/ or pytest a/ a/b are equivalent to pytest a; if an argument overlaps another arguments, only the prefix remains.
    2. pytest x.py x.py is equivalent to pytest x.py; previously such an invocation was taken as an explicit request to run the tests from the file twice.

    If you rely on these behaviors, consider using --keep-duplicates <duplicate-paths>, which retains its existing behavior (including the bug).

  • #​13719: Support for Python 3.9 is dropped following its end of life.

  • #​13766: Previously, pytest would assume it was running in a CI/CD environment if either of the environment variables $CI or $BUILD_NUMBER was defined;
    now, CI mode is only activated if at least one of those variables is defined and set to a non-empty value.

  • #​13779: PytestRemovedIn9Warning deprecation warnings are now errors by default.

    Following our plan to remove deprecated features with as little disruption as
    possible, all warnings of type PytestRemovedIn9Warning now generate errors
    instead of warning messages by default.

    The affected features will be effectively removed in pytest 9.1, so please consult the
    deprecations section in the docs for directions on how to update existing code.

    In the pytest 9.0.X series, it is possible to change the errors back into warnings as a
    stopgap measure by adding this to your pytest.ini file:

    [pytest]
    filterwarnings =
        ignore::pytest.PytestRemovedIn9Warning

    But this will stop working when pytest 9.1 is released.

    If you have concerns about the removal of a specific feature, please add a
    comment to 13779.

Deprecations (removal in next major release)

  • #​13807: monkeypatch.syspath_prepend() <pytest.MonkeyPatch.syspath_prepend> now issues a deprecation warning when the prepended path contains legacy namespace packages (those using pkg_resources.declare_namespace()).
    Users should migrate to native namespace packages (420).
    See monkeypatch-fixup-namespace-packages for details.

Bug fixes

  • #​13445: Made the type annotations of pytest.skip and friends more spec-complaint to have them work across more type checkers.

  • #​13537: Fixed a bug in which ExceptionGroup with only Skipped exceptions in teardown was not handled correctly and showed as error.

  • #​13598: Fixed possible collection confusion on Windows when short paths and symlinks are involved.

  • #​13716: Fixed a bug where a nonsensical invocation like pytest x.py[a] (a file cannot be parametrized) was silently treated as pytest x.py. This is now a usage error.

  • #​13722: Fixed a misleading assertion failure message when using pytest.approx on mappings with differing lengths.

  • #​13773: Fixed the static fixture closure calculation to properly consider transitive dependencies requested by overridden fixtures.

  • #​13816: Fixed pytest.approx which now returns a clearer error message when comparing mappings with different keys.

  • #​13849: Hidden .pytest.ini files are now picked up as the config file even if empty.
    This was an inconsistency with non-hidden pytest.ini.

  • #​13865: Fixed --show-capture with --tb=line.

  • #​13522: Fixed pytester in subprocess mode ignored all :attr`pytester.plugins <pytest.Pytester.plugins>` except the first.

    Fixed pytester in subprocess mode silently ignored non-str pytester.plugins <pytest.Pytester.plugins>.
    Now it errors instead.
    If you are affected by this, specify the plugin by name, or switch the affected tests to use pytester.runpytest_inprocess <pytest.Pytester.runpytest_inprocess> explicitly instead.

Packaging updates and notes for downstreams

  • #​13791: Minimum requirements on iniconfig and packaging were bumped to 1.0.1 and 22.0.0, respectively.

Contributor-facing changes

  • #​12244: Fixed self-test failures when TERM=dumb.
  • #​12474: Added scheduled GitHub Action Workflow to run Sphinx linkchecks in repo documentation.
  • #​13621: pytest's own

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate-bot renovate-bot requested review from a team as code owners March 2, 2026 15:22
@renovate-bot renovate-bot requested a review from gericdong March 2, 2026 15:22
@trusted-contributions-gcf trusted-contributions-gcf bot added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 2, 2026
@product-auto-label product-auto-label bot added the size: xs Pull request size is extra small. label Mar 2, 2026
@product-auto-label product-auto-label bot added api: storage Issues related to the googleapis/python-storage API. samples Issues that are directly related to samples. labels Mar 2, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request systematically updates several core Python dependencies to their latest stable versions. The updates encompass significant feature enhancements in google-cloud-pubsub and google-cloud-storage, a major version upgrade for pandas introducing breaking changes and new paradigms, and a substantial pytest update with new testing features and configuration options. This ensures the project benefits from the latest improvements, security fixes, and maintains compatibility with modern Python environments.

Highlights

  • google-cloud-pubsub Update: Updated google-cloud-pubsub to 2.35.0, introducing features like AIInference MessageTransform, mTLS support, and Python 3.14 compatibility, alongside various bug fixes and documentation improvements across several minor versions.
  • google-cloud-storage Update: Upgraded google-cloud-storage to 3.9.0, enhancing async gRPC client capabilities with new methods, moving Zonal Buckets features out of experimental, and improving write/read strategies with resumption and checksum support.
  • pandas Major Version Upgrade: Bumped pandas to 3.0.1, a significant major release bringing a dedicated string data type by default, consistent Copy-on-Write (CoW) behavior, a new default resolution for datetime-like data, and initial support for the pd.col syntax.
  • pytest Major Version Upgrade: Updated pytest to 9.0.2, which includes new features such as support for subtests, native TOML configuration files, a new 'strict mode', and terminal tab progress display. This version also drops support for Python 3.9.
Changelog
  • samples/snippets/requirements-test.txt
    • Updated pytest from 8.3.5 to 9.0.2 for Python versions 3.8 and above.
  • samples/snippets/requirements.txt
    • Updated google-cloud-pubsub from 2.29.0 to 2.35.0.
    • Updated google-cloud-storage from 3.1.0 to 3.9.0.
    • Updated pandas from 2.2.3 to 3.0.1 for Python versions 3.9 and above.
Activity
  • This pull request was automatically generated by Renovate Bot to update project dependencies.
  • No human comments or reviews have been recorded yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@yoshi-kokoro yoshi-kokoro removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label Mar 2, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates several dependencies, including google-cloud-pubsub, google-cloud-storage, pandas, and pytest. While most updates are straightforward, the upgrades for pandas to 3.0.1 and pytest to 9.0.2 introduce compatibility issues with the Python versions used in your test environments. Both of these new major versions have dropped support for older Python versions (Python < 3.11 for pandas 3.x and Python < 3.10 for pytest 9.x). The requirements.txt and requirements-test.txt files need to be adjusted to use the new versions only for compatible Python interpreters, while retaining the older versions for the rest. I have left specific comments with suggestions to fix these critical issues that would otherwise break your CI builds.

@@ -1,4 +1,4 @@
pytest===7.4.4; python_version == '3.7'
pytest==8.3.5; python_version >= '3.8'
pytest==9.0.2; python_version >= '3.8'
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

pytest 9.x requires Python 3.10 or newer, but this line attempts to install it for Python 3.8 and 3.9 as well, which will cause your build to fail for those versions. You should restrict this version to Python 3.10+.

To maintain support for older Python versions in your test matrix, you'll also need to add a line for pytest 8.x. Please add the following line before this one:

pytest==8.3.5; python_version >= '3.8' and python_version < '3.10'
pytest==9.0.2; python_version >= '3.10'

pandas===1.3.5; python_version == '3.7'
pandas===2.0.3; python_version == '3.8'
pandas==2.2.3; python_version >= '3.9'
pandas==3.0.1; python_version >= '3.9'
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

pandas 3.x requires Python 3.11 or newer. This line attempts to install it for Python 3.9 and 3.10, which will cause build failures. You should restrict this version to Python 3.11+.

To maintain support for Python 3.9 and 3.10, you should add a line to continue using pandas 2.x for those versions. Please add the following line before this one:

pandas==2.2.3; python_version >= '3.9' and python_version < '3.11'
pandas==3.0.1; python_version >= '3.11'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: storage Issues related to the googleapis/python-storage API. samples Issues that are directly related to samples. size: xs Pull request size is extra small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants