Repository navigation
chore: release main - #18876
chore: release main#18876release-please[bot] wants to merge 1 commit into
Conversation
|
Pytest issued a new release today and it handles filterwarnings differently than the last version did, which is causing several CI checks to fail. Root Cause: Upstream pytest 9.2.0 Release Today (21:30 UTC) In pytest <= 9.1.1, filterwarnings = error from pytest.ini / pyproject.toml was applied after pytest_configure plugin hooks ran. In pytest 9.2.0, filterwarnings = error is now active before self.hook.pytest_configure.call_historic(...) (_pytest/config/init.py, line 1370). When pytest-asyncio runs its pytest_configure hook (pytest_asyncio/plugin.py, line 300): warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))pytest 9.2.0 immediately promotes that warning into a fatal startup crash (exit code 3) in any package that has filterwarnings = error and pytest-asyncio installed. Because #18866 modifies packages/google-api-core (listed in CORE_PACKAGES in ci/get_package_shards.py), CI runs unit and core-deps handwritten across all 58 handwritten packages. Affected Packages Across the Monorepo Across the entire monorepo, only 9 packages combine filterwarnings = error with pytest-asyncio: |
812afa3 to
12089fd
Compare
|
The failing CI should be resolved by this PR which is in the queue for review: |
## Summary Temporarily pin `pytest<9.2` in the `noxfile.py` configuration of the 13 handwritten packages affected by the `pytest 9.2.0` release. ## Context Upstream `pytest 9.2.0` (released on October 27, 2026) changed warning filter initialization so that `filterwarnings = error` is applied *before* `pytest_configure` plugin hooks run, and removed the private `FixtureManager._arg2fixturedefs` attribute used by `pytest-asyncio==0.21.2`. Pinning `pytest<9.2` in the affected handwritten packages unblocks CI and current release pull requests (such as #18876). A follow-up effort will address `pytest 9.2` compatibility across these packages cleanly. ## Why These 13 Handwritten Packages Are Pinned All 13 packages configure `filterwarnings = error` in `pytest.ini` or `pyproject.toml` and fall into two categories: 1. **Direct `pytest-asyncio` usage (10 packages)**: `db-dtypes`, `google-api-core`, `google-auth-httplib2`, `google-cloud-dns`, `google-cloud-documentai-toolbox`, `google-cloud-error-reporting`, `google-cloud-firestore` (also pins `pytest-asyncio==0.21.2`), `google-cloud-logging`, `google-cloud-pubsub`, and `google-cloud-runtimeconfig`. Each installs `pytest-asyncio` directly in its own `noxfile.py` alongside `filterwarnings = error`, causing `pytest 9.2.0` to abort during startup when `pytest-asyncio` emits `PytestDeprecationWarning` for `asyncio_default_fixture_loop_scope`. 2. **Shared CI virtualenv inheritance (3 packages)**: `google-cloud-core`, `google-cloud-testutils`, and `proto-plus`. Although these three do not install `pytest-asyncio` in their own `noxfile.py`, our GitHub Actions test workflows reuse a shared Nox virtualenv directory (`NOX_ENVDIR=/tmp/shared_nox_envs`) across all packages in the same CI shard. When earlier packages in a shard install `pytest-asyncio` into that shared environment it will trigger the `filterwarnings = error` startup failure when these three packages run.
🤖 I have created a release beep boop
google-api-core: 2.43.1
2.43.1 (2026-10-28)
Bug Fixes
This PR was generated with Release Please. See documentation.