{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":226992639,"defaultBranch":"main","name":"python-storage","ownerLogin":"googleapis","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-12-10T00:10:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/16785467?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712936256.0","currentOid":""},"activityList":{"items":[{"before":"992f910baed0aa929217104984390140517c5db1","after":"e6ed8e88af3bddf4887457ca6cbc157fb81c20d0","ref":"refs/heads/otel-trace","pushedAt":"2024-04-24T17:57:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cojenco","name":null,"path":"/cojenco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59401799?s=80&v=4"},"commit":{"message":"feat: introduce OpenTelemetry Tracing decorators (#1257)\n\n* feat: introduce OpenTelemetry Tracing decorators\r\n\r\n* update test coverage\r\n\r\n* add tests, update fixture\r\n\r\n* update noxfile, extras; remove print\r\n\r\n* update unit test\r\n\r\n* review comments","shortMessageHtmlLink":"feat: introduce OpenTelemetry Tracing decorators (#1257)"}},{"before":"2f77e1bf1de23352c6d83cd85b429a6b654ee51c","after":"6ed22ee91d4596dd27338ff8b35076d1238a603c","ref":"refs/heads/main","pushedAt":"2024-04-12T21:42:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"chore(deps): update dependency pandas (#1261)\n\n* chore(deps): update all dependencies\r\n\r\n* 🦉 Updates from OwlBot post-processor\r\n\r\nSee https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md\r\n\r\n---------\r\n\r\nCo-authored-by: Owl Bot ","shortMessageHtmlLink":"chore(deps): update dependency pandas (#1261)"}},{"before":"cb3459ee15c57598fe0ede41c00ab0ab0a05415e","after":"2f77e1bf1de23352c6d83cd85b429a6b654ee51c","ref":"refs/heads/main","pushedAt":"2024-04-12T16:02:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies (#1260)\n\n* chore(deps): update all dependencies\r\n\r\n* 🦉 Updates from OwlBot post-processor\r\n\r\nSee https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md\r\n\r\n---------\r\n\r\nCo-authored-by: Owl Bot ","shortMessageHtmlLink":"chore(deps): update all dependencies (#1260)"}},{"before":"bec2ec148cd977a0fbc9e0772ce5e7a6bed49923","after":null,"ref":"refs/heads/owl-bot-update-lock-5a4c19d17e597b92d786e569be101e636c9c2817731f80a5adec56b2aa8fe070","pushedAt":"2024-04-12T16:01:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"}},{"before":"aec255f696389e9d0919799e1dc9c4f327594d67","after":"cb3459ee15c57598fe0ede41c00ab0ab0a05415e","ref":"refs/heads/main","pushedAt":"2024-04-12T16:01:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"chore(python): bump idna from 3.4 to 3.7 in .kokoro (#1259)\n\n* chore(python): bump idna from 3.4 to 3.7 in .kokoro\r\n\r\nSource-Link: https://github.com/googleapis/synthtool/commit/d50980e704793a2d3310bfb3664f3a82f24b5796\r\nPost-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:5a4c19d17e597b92d786e569be101e636c9c2817731f80a5adec56b2aa8fe070\r\n\r\n* Apply changes from googleapis/synthtool#1950\r\n\r\n---------\r\n\r\nCo-authored-by: Owl Bot \r\nCo-authored-by: Anthonios Partheniou ","shortMessageHtmlLink":"chore(python): bump idna from 3.4 to 3.7 in .kokoro (#1259)"}},{"before":"e682e214ce63daf1c4ff6deee73cae9819f131d9","after":"bec2ec148cd977a0fbc9e0772ce5e7a6bed49923","ref":"refs/heads/owl-bot-update-lock-5a4c19d17e597b92d786e569be101e636c9c2817731f80a5adec56b2aa8fe070","pushedAt":"2024-04-12T15:43:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"Apply changes from googleapis/synthtool#1950","shortMessageHtmlLink":"Apply changes from googleapis/synthtool#1950"}},{"before":"25baf3f10c7947e7187738c1cd4b7e454a9713f0","after":null,"ref":"refs/heads/dependabot/pip/dot-kokoro/idna-3.7","pushedAt":"2024-04-12T15:37:36.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"26bcf5285a3db4aaa0aa267f65747612e72eaace","after":"a5328686d8940cef98a1183855ad6b5ad42d30d7","ref":"refs/heads/release-please--branches--main","pushedAt":"2024-04-12T15:36:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"release-please[bot]","name":null,"path":"/apps/release-please","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40688?s=80&v=4"},"commit":{"message":"chore(main): release 2.16.1","shortMessageHtmlLink":"chore(main): release 2.16.1"}},{"before":"343f4c0890fd98347217fafbf8ca2424d302e164","after":"aec255f696389e9d0919799e1dc9c4f327594d67","ref":"refs/heads/main","pushedAt":"2024-04-12T15:35:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies (#1250)\n\n* chore(deps): update all dependencies\r\n\r\n* 🦉 Updates from OwlBot post-processor\r\n\r\nSee https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md\r\n\r\n---------\r\n\r\nCo-authored-by: Owl Bot ","shortMessageHtmlLink":"chore(deps): update all dependencies (#1250)"}},{"before":"583a4d737c20230380bc4f726dc4154670b2da08","after":"bbd02bc3ae6b64d842c1b9108f5df9fd60fc52af","ref":"refs/heads/treat-warnings-as-errors","pushedAt":"2024-04-12T15:35:25.000Z","pushType":"push","commitsCount":18,"pusher":{"login":"parthea","name":"Anthonios Partheniou","path":"/parthea","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5184014?s=80&v=4"},"commit":{"message":"Merge branch 'main' into treat-warnings-as-errors","shortMessageHtmlLink":"Merge branch 'main' into treat-warnings-as-errors"}},{"before":null,"after":"e682e214ce63daf1c4ff6deee73cae9819f131d9","ref":"refs/heads/owl-bot-update-lock-5a4c19d17e597b92d786e569be101e636c9c2817731f80a5adec56b2aa8fe070","pushedAt":"2024-04-12T11:42:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gcf-owl-bot[bot]","name":null,"path":"/apps/gcf-owl-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/99011?s=80&v=4"},"commit":{"message":"chore(python): bump idna from 3.4 to 3.7 in .kokoro\n\nSource-Link: https://github.com/googleapis/synthtool/commit/d50980e704793a2d3310bfb3664f3a82f24b5796\nPost-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:5a4c19d17e597b92d786e569be101e636c9c2817731f80a5adec56b2aa8fe070","shortMessageHtmlLink":"chore(python): bump idna from 3.4 to 3.7 in .kokoro"}},{"before":"9c89b348d2482bb46a00febdda1acabdb00fead8","after":"25baf3f10c7947e7187738c1cd4b7e454a9713f0","ref":"refs/heads/dependabot/pip/dot-kokoro/idna-3.7","pushedAt":"2024-04-12T01:47:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"gcf-owl-bot[bot]","name":null,"path":"/apps/gcf-owl-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/99011?s=80&v=4"},"commit":{"message":"🦉 Updates from OwlBot post-processor\n\nSee https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md","shortMessageHtmlLink":"🦉 Updates from OwlBot post-processor"}},{"before":null,"after":"9c89b348d2482bb46a00febdda1acabdb00fead8","ref":"refs/heads/dependabot/pip/dot-kokoro/idna-3.7","pushedAt":"2024-04-12T01:45:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"chore(deps): bump idna from 3.4 to 3.7 in /.kokoro\n\nBumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7.\n- [Release notes](https://github.com/kjd/idna/releases)\n- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)\n- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7)\n\n---\nupdated-dependencies:\n- dependency-name: idna\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"chore(deps): bump idna from 3.4 to 3.7 in /.kokoro"}},{"before":"bdd426adf5901faa36115885af868ef50e356a36","after":"343f4c0890fd98347217fafbf8ca2424d302e164","ref":"refs/heads/main","pushedAt":"2024-04-11T19:09:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cojenco","name":null,"path":"/cojenco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59401799?s=80&v=4"},"commit":{"message":"samples: add samples for object retention (#1247)","shortMessageHtmlLink":"samples: add samples for object retention (#1247)"}},{"before":"bdd426adf5901faa36115885af868ef50e356a36","after":"26bcf5285a3db4aaa0aa267f65747612e72eaace","ref":"refs/heads/release-please--branches--main","pushedAt":"2024-04-11T02:06:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"release-please[bot]","name":null,"path":"/apps/release-please","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40688?s=80&v=4"},"commit":{"message":"chore(main): release 2.16.1","shortMessageHtmlLink":"chore(main): release 2.16.1"}},{"before":null,"after":"bdd426adf5901faa36115885af868ef50e356a36","ref":"refs/heads/release-please--branches--main","pushedAt":"2024-04-11T02:06:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"release-please[bot]","name":null,"path":"/apps/release-please","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/40688?s=80&v=4"},"commit":{"message":"docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings (#1234)\n\n* docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings\r\n\r\n* update docstrings","shortMessageHtmlLink":"docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings (#1234)"}},{"before":"992f910baed0aa929217104984390140517c5db1","after":"bdd426adf5901faa36115885af868ef50e356a36","ref":"refs/heads/main","pushedAt":"2024-04-11T02:06:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cojenco","name":null,"path":"/cojenco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59401799?s=80&v=4"},"commit":{"message":"docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings (#1234)\n\n* docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings\r\n\r\n* update docstrings","shortMessageHtmlLink":"docs: update DEFAULT_RETRY_IF_GENERATION_SPECIFIED docstrings (#1234)"}},{"before":null,"after":"48aa45095ecd80f6b92bfe6bc1d835b3bd611946","ref":"refs/heads/owl-bot-update-lock-704d34f7c25e15fcb12ac19af08eb7cf01eabc16fb4781590223e01dd252985e","pushedAt":"2024-04-10T14:12:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gcf-owl-bot[bot]","name":null,"path":"/apps/gcf-owl-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/99011?s=80&v=4"},"commit":{"message":"chore(python): support multiple codeowners in blunderbuss\n\nSource-Link: https://github.com/googleapis/synthtool/commit/7d3cf14e9517def8132cc7c086d8ec816677e08b\nPost-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:704d34f7c25e15fcb12ac19af08eb7cf01eabc16fb4781590223e01dd252985e","shortMessageHtmlLink":"chore(python): support multiple codeowners in blunderbuss"}},{"before":null,"after":"992f910baed0aa929217104984390140517c5db1","ref":"refs/heads/otel-trace","pushedAt":"2024-04-08T23:39:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cojenco","name":null,"path":"/cojenco","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59401799?s=80&v=4"},"commit":{"message":"chore(deps): update all dependencies (#1213)\n\n[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence |\n|---|---|---|---|---|---|\n| [filelock](https://togithub.com/tox-dev/py-filelock) | `==3.13.1` -> `==3.13.3` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/filelock/3.13.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/filelock/3.13.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/filelock/3.13.1/3.13.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/filelock/3.13.1/3.13.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |\n| [google-cloud-pubsub](https://togithub.com/googleapis/python-pubsub) | `==2.19.0` -> `==2.21.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-pubsub/2.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/google-cloud-pubsub/2.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/google-cloud-pubsub/2.19.0/2.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-pubsub/2.19.0/2.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |\n| [google-cloud-storage](https://togithub.com/googleapis/python-storage) | `==2.14.0` -> `==2.16.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/google-cloud-storage/2.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/google-cloud-storage/2.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/google-cloud-storage/2.14.0/2.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/google-cloud-storage/2.14.0/2.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |\n| [pandas](https://pandas.pydata.org) ([source](https://togithub.com/pandas-dev/pandas)) | `==2.1.4` -> `==2.2.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pandas/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pandas/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pandas/2.1.4/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pandas/2.1.4/2.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |\n| [pytest](https://togithub.com/pytest-dev/pytest) ([changelog](https://docs.pytest.org/en/stable/changelog.html)) | `==7.4.4` -> `==8.1.1` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest/7.4.4/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest/7.4.4/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |\n\n---\n\n### Release Notes\n\n
\ntox-dev/py-filelock (filelock)\n\n### [`v3.13.3`](https://togithub.com/tox-dev/filelock/releases/tag/3.13.3)\n\n[Compare Source](https://togithub.com/tox-dev/py-filelock/compare/3.13.2...3.13.3)\n\n\n\n#### What's Changed\n\n- Make singleton class instance dict unique per subclass by [@​nefrob](https://togithub.com/nefrob) in [https://togithub.com/tox-dev/filelock/pull/318](https://togithub.com/tox-dev/filelock/pull/318)\n\n**Full Changelog**: https://togithub.com/tox-dev/filelock/compare/3.13.2...3.13.3\n\n### [`v3.13.2`](https://togithub.com/tox-dev/filelock/releases/tag/3.13.2)\n\n[Compare Source](https://togithub.com/tox-dev/py-filelock/compare/3.13.1...3.13.2)\n\n\n\n##### What's Changed\n\n- Fixed small typo in \\_unix.py by [@​snemes](https://togithub.com/snemes) in [https://togithub.com/tox-dev/filelock/pull/302](https://togithub.com/tox-dev/filelock/pull/302)\n- Update SECURITY.md to reflect Python 3.7 support dropoff by [@​kemzeb](https://togithub.com/kemzeb) in [https://togithub.com/tox-dev/filelock/pull/304](https://togithub.com/tox-dev/filelock/pull/304)\n- Update index.rst to improve the demo usage by [@​youkaichao](https://togithub.com/youkaichao) in [https://togithub.com/tox-dev/filelock/pull/314](https://togithub.com/tox-dev/filelock/pull/314)\n- \\[BugFix] fix permission denied error when lock file is placed in `/tmp` by [@​kota-iizuka](https://togithub.com/kota-iizuka) in [https://togithub.com/tox-dev/filelock/pull/317](https://togithub.com/tox-dev/filelock/pull/317)\n\n##### New Contributors\n\n- [@​snemes](https://togithub.com/snemes) made their first contribution in [https://togithub.com/tox-dev/filelock/pull/302](https://togithub.com/tox-dev/filelock/pull/302)\n- [@​kemzeb](https://togithub.com/kemzeb) made their first contribution in [https://togithub.com/tox-dev/filelock/pull/304](https://togithub.com/tox-dev/filelock/pull/304)\n- [@​youkaichao](https://togithub.com/youkaichao) made their first contribution in [https://togithub.com/tox-dev/filelock/pull/314](https://togithub.com/tox-dev/filelock/pull/314)\n- [@​kota-iizuka](https://togithub.com/kota-iizuka) made their first contribution in [https://togithub.com/tox-dev/filelock/pull/317](https://togithub.com/tox-dev/filelock/pull/317)\n\n**Full Changelog**: https://togithub.com/tox-dev/filelock/compare/3.13.1...3.13.2\n\n
\n\n
\ngoogleapis/python-pubsub (google-cloud-pubsub)\n\n### [`v2.21.0`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2210-2024-03-26)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.20.3...v2.21.0)\n\n##### Features\n\n- Add custom datetime format for Cloud Storage subscriptions ([#​1131](https://togithub.com/googleapis/python-pubsub/issues/1131)) ([4da6744](https://togithub.com/googleapis/python-pubsub/commit/4da67441ddab01a173620d8c03bc640271c785c6))\n\n### [`v2.20.3`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2203-2024-03-21)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.20.2...v2.20.3)\n\n##### Documentation\n\n- **samples:** Update Region Tags ([#​1128](https://togithub.com/googleapis/python-pubsub/issues/1128)) ([e3bc89e](https://togithub.com/googleapis/python-pubsub/commit/e3bc89eaa51337c93144d6c3100486353d494ad9))\n\n### [`v2.20.2`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2202-2024-03-15)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.20.1...v2.20.2)\n\n##### Documentation\n\n- **samples:** Add Create Topic with Kinesis IngestionDataSourceSettings Sample ([#​1120](https://togithub.com/googleapis/python-pubsub/issues/1120)) ([83dc9ff](https://togithub.com/googleapis/python-pubsub/commit/83dc9fff13aa35518fb9b6a73472816da852d975))\n- **samples:** Update Topic with Kinesis Ingestion Settings ([#​1123](https://togithub.com/googleapis/python-pubsub/issues/1123)) ([e0e2d83](https://togithub.com/googleapis/python-pubsub/commit/e0e2d831da8d17288c3ae8900bea2388ce8758af))\n\n### [`v2.20.1`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2201-2024-03-06)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.20.0...v2.20.1)\n\n##### Bug Fixes\n\n- Catch and surface BaseException() ([#​1108](https://togithub.com/googleapis/python-pubsub/issues/1108)) ([07e427f](https://togithub.com/googleapis/python-pubsub/commit/07e427f675464b9aa79c68dede67082529054980))\n\n### [`v2.20.0`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2200-2024-03-05)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.8...v2.20.0)\n\n##### Features\n\n- Add include_recaptcha_script for as a new action in firewall policies ([#​1109](https://togithub.com/googleapis/python-pubsub/issues/1109)) ([54041a5](https://togithub.com/googleapis/python-pubsub/commit/54041a527398eb0ec5daa97a346ba3202ce349f3))\n\n##### Documentation\n\n- **samples:** Correct type and description of `timeout` parameter in subscriber quickstart ([#​1051](https://togithub.com/googleapis/python-pubsub/issues/1051)) ([141a473](https://togithub.com/googleapis/python-pubsub/commit/141a473561bd0e45d3137a02cbefddb454ab3af4))\n\n### [`v2.19.8`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2198-2024-03-05)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.7...v2.19.8)\n\n##### Bug Fixes\n\n- **deps:** Exclude google-auth 2.24.0 and 2.25.0 ([#​1102](https://togithub.com/googleapis/python-pubsub/issues/1102)) ([165c983](https://togithub.com/googleapis/python-pubsub/commit/165c983803c48a17141765395cf9ec2e6a7056fa))\n\n### [`v2.19.7`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2197-2024-02-24)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.6...v2.19.7)\n\n##### Bug Fixes\n\n- **deps:** Require `google-api-core>=1.34.1` ([#​1080](https://togithub.com/googleapis/python-pubsub/issues/1080)) ([1a5a134](https://togithub.com/googleapis/python-pubsub/commit/1a5a1342de8736c6a2b1ac63476667f8a02b5bb8))\n\n### [`v2.19.6`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2196-2024-02-23)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.5...v2.19.6)\n\n##### Bug Fixes\n\n- Remove LOGGER.exception() line ([#​1087](https://togithub.com/googleapis/python-pubsub/issues/1087)) ([a395d26](https://togithub.com/googleapis/python-pubsub/commit/a395d26ed0fffaee8662f988da97dd35c480af4f))\n\n### [`v2.19.5`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2195-2024-02-22)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.4...v2.19.5)\n\n##### Bug Fixes\n\n- Update system_test_python_versions ([#​1096](https://togithub.com/googleapis/python-pubsub/issues/1096)) ([c659ac7](https://togithub.com/googleapis/python-pubsub/commit/c659ac777f177e54d7272a8de93fa9f554b15d46))\n\n### [`v2.19.4`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2194-2024-02-09)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.3...v2.19.4)\n\n##### Bug Fixes\n\n- **diregapic:** S/bazel/bazelisk/ in DIREGAPIC build GitHub action ([#​1064](https://togithub.com/googleapis/python-pubsub/issues/1064)) ([d56ad12](https://togithub.com/googleapis/python-pubsub/commit/d56ad12f197e9e379d2a4a0a38be108808985c23))\n\n### [`v2.19.3`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2193-2024-02-08)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.2...v2.19.3)\n\n##### Bug Fixes\n\n- Add google-auth as a direct dependency ([#​1076](https://togithub.com/googleapis/python-pubsub/issues/1076)) ([5ce7301](https://togithub.com/googleapis/python-pubsub/commit/5ce7301b3056191203bc89bbcf1f33083de72a2d))\n\n### [`v2.19.2`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2192-2024-02-08)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.1...v2.19.2)\n\n##### Bug Fixes\n\n- Unit test failures in https://togithub.com/googleapis/python-pubsu… ([#​1074](https://togithub.com/googleapis/python-pubsub/issues/1074)) ([3c6d128](https://togithub.com/googleapis/python-pubsub/commit/3c6d128a53d83439036aaec1f1fd48331152935b))\n\n### [`v2.19.1`](https://togithub.com/googleapis/python-pubsub/blob/HEAD/CHANGELOG.md#2191-2024-02-02)\n\n[Compare Source](https://togithub.com/googleapis/python-pubsub/compare/v2.19.0...v2.19.1)\n\n##### Documentation\n\n- **samples:** Swap writer and reader schema to correct places ([265f410](https://togithub.com/googleapis/python-pubsub/commit/265f4106f499ec5d2d01a127ba192404c1836a28))\n\n
\n\n
\ngoogleapis/python-storage (google-cloud-storage)\n\n### [`v2.16.0`](https://togithub.com/googleapis/python-storage/blob/HEAD/CHANGELOG.md#2160-2024-03-18)\n\n[Compare Source](https://togithub.com/googleapis/python-storage/compare/v2.15.0...v2.16.0)\n\n##### Features\n\n- Add support for soft delete ([#​1229](https://togithub.com/googleapis/python-storage/issues/1229)) ([3928aa0](https://togithub.com/googleapis/python-storage/commit/3928aa0680ec03addae1f792c73abb5c9dc8586f))\n- Support includeFoldersAsPrefixes ([#​1223](https://togithub.com/googleapis/python-storage/issues/1223)) ([7bb8065](https://togithub.com/googleapis/python-storage/commit/7bb806538cf3d7a5e16390db1983620933d5e51a))\n\n### [`v2.15.0`](https://togithub.com/googleapis/python-storage/blob/HEAD/CHANGELOG.md#2150-2024-02-28)\n\n[Compare Source](https://togithub.com/googleapis/python-storage/compare/v2.14.0...v2.15.0)\n\n##### Features\n\n- Support custom universe domains/TPC ([#​1212](https://togithub.com/googleapis/python-storage/issues/1212)) ([f4cf041](https://togithub.com/googleapis/python-storage/commit/f4cf041a5f2075cecf5f4993f8b7afda0476a52b))\n\n##### Bug Fixes\n\n- Add \"updated\" as property for Bucket ([#​1220](https://togithub.com/googleapis/python-storage/issues/1220)) ([ae9a53b](https://togithub.com/googleapis/python-storage/commit/ae9a53b464e7d82c79a019a4111c49a4cdcc3ae0))\n- Remove utcnow usage ([#​1215](https://togithub.com/googleapis/python-storage/issues/1215)) ([8d8a53a](https://togithub.com/googleapis/python-storage/commit/8d8a53a1368392ad7a1c4352f559c12932c5a9c9))\n\n
\n\n
\npandas-dev/pandas (pandas)\n\n### [`v2.2.1`](https://togithub.com/pandas-dev/pandas/releases/tag/v2.2.1): Pandas 2.2.1\n\n[Compare Source](https://togithub.com/pandas-dev/pandas/compare/v2.2.0...v2.2.1)\n\nWe are pleased to announce the release of pandas 2.2.1.\nThis release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.\n\nSee the [full whatsnew](https://pandas.pydata.org/pandas-docs/version/2.2.1/whatsnew/v2.2.1.html) for a list of all the changes.\nPandas 2.2.1 supports Python 3.9 and higher.\n\nThe release will be available on the defaults and conda-forge channels:\n\n conda install pandas\n\nOr via PyPI:\n\n python3 -m pip install --upgrade pandas\n\nPlease report any issues with the release on the [pandas issue tracker](https://togithub.com/pandas-dev/pandas/issues).\n\nThanks to all the contributors who made this release possible.\n\n### [`v2.2.0`](https://togithub.com/pandas-dev/pandas/compare/v2.1.4...v2.2.0)\n\n[Compare Source](https://togithub.com/pandas-dev/pandas/compare/v2.1.4...v2.2.0)\n\n
\n\n
\npytest-dev/pytest (pytest)\n\n### [`v8.1.1`](https://togithub.com/pytest-dev/pytest/releases/tag/8.1.1)\n\n[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.1.0...8.1.1)\n\n# pytest 8.1.1 (2024-03-08)\n\n::: {.note}\n::: {.title}\nNote\n:::\n\nThis release is not a usual bug fix release -- it contains features and improvements, being a follow up\nto `8.1.0`, which has been yanked from PyPI.\n:::\n\n## Features\n\n- [#​11475](https://togithub.com/pytest-dev/pytest/issues/11475): Added the new `consider_namespace_packages`{.interpreted-text role=\"confval\"} configuration option, defaulting to `False`.\n\n If set to `True`, pytest will attempt to identify modules that are part of [namespace packages](https://packaging.python.org/en/latest/guides/packaging-namespace-packages) when importing modules.\n\n- [#​11653](https://togithub.com/pytest-dev/pytest/issues/11653): Added the new `verbosity_test_cases`{.interpreted-text role=\"confval\"} configuration option for fine-grained control of test execution verbosity.\n See `Fine-grained verbosity `{.interpreted-text role=\"ref\"} for more details.\n\n## Improvements\n\n- [#​10865](https://togithub.com/pytest-dev/pytest/issues/10865): `pytest.warns`{.interpreted-text role=\"func\"} now validates that `warnings.warn`{.interpreted-text role=\"func\"} was called with a \\[str]{.title-ref} or a \\[Warning]{.title-ref}.\n Currently in Python it is possible to use other types, however this causes an exception when `warnings.filterwarnings`{.interpreted-text role=\"func\"} is used to filter those warnings (see [CPython #​103577](https://togithub.com/python/cpython/issues/103577) for a discussion).\n While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.\n\n- [#​11311](https://togithub.com/pytest-dev/pytest/issues/11311): When using `--override-ini` for paths in invocations without a configuration file defined, the current working directory is used\n as the relative directory.\n\n Previoulsy this would raise an `AssertionError`{.interpreted-text role=\"class\"}.\n\n- [#​11475](https://togithub.com/pytest-dev/pytest/issues/11475): `--import-mode=importlib `{.interpreted-text role=\"ref\"} now tries to import modules using the standard import mechanism (but still without changing :py`sys.path`{.interpreted-text role=\"data\"}), falling back to importing modules directly only if that fails.\n\n This means that installed packages will be imported under their canonical name if possible first, for example `app.core.models`, instead of having the module name always be derived from their path (for example `.env310.lib.site_packages.app.core.models`).\n\n- [#​11801](https://togithub.com/pytest-dev/pytest/issues/11801): Added the `iter_parents() <_pytest.nodes.Node.iter_parents>`{.interpreted-text role=\"func\"} helper method on nodes.\n It is similar to `listchain <_pytest.nodes.Node.listchain>`{.interpreted-text role=\"func\"}, but goes from bottom to top, and returns an iterator, not a list.\n\n- [#​11850](https://togithub.com/pytest-dev/pytest/issues/11850): Added support for `sys.last_exc`{.interpreted-text role=\"data\"} for post-mortem debugging on Python>=3.12.\n\n- [#​11962](https://togithub.com/pytest-dev/pytest/issues/11962): In case no other suitable candidates for configuration file are found, a `pyproject.toml` (even without a `[tool.pytest.ini_options]` table) will be considered as the configuration file and define the `rootdir`.\n\n- [#​11978](https://togithub.com/pytest-dev/pytest/issues/11978): Add `--log-file-mode` option to the logging plugin, enabling appending to log-files. This option accepts either `\"w\"` or `\"a\"` and defaults to `\"w\"`.\n\n Previously, the mode was hard-coded to be `\"w\"` which truncates the file before logging.\n\n- [#​12047](https://togithub.com/pytest-dev/pytest/issues/12047): When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.\n Previously, only the first exception was reported.\n\n## Bug Fixes\n\n- [#​11475](https://togithub.com/pytest-dev/pytest/issues/11475): Fixed regression where `--importmode=importlib` would import non-test modules more than once.\n\n- [#​11904](https://togithub.com/pytest-dev/pytest/issues/11904): Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using `--pyargs`.\n\n This change improves the collection tree for tests specified using `--pyargs`, see `12043`{.interpreted-text role=\"pull\"} for a comparison with pytest 8.0 and <8.\n\n- [#​12011](https://togithub.com/pytest-dev/pytest/issues/12011): Fixed a regression in 8.0.1 whereby `setup_module` xunit-style fixtures are not executed when `--doctest-modules` is passed.\n\n- [#​12014](https://togithub.com/pytest-dev/pytest/issues/12014): Fix the `stacklevel` used when warning about marks used on fixtures.\n\n- [#​12039](https://togithub.com/pytest-dev/pytest/issues/12039): Fixed a regression in `8.0.2` where tests created using `tmp_path`{.interpreted-text role=\"fixture\"} have been collected multiple times in CI under Windows.\n\n## Improved Documentation\n\n- [#​11790](https://togithub.com/pytest-dev/pytest/issues/11790): Documented the retention of temporary directories created using the `tmp_path` fixture in more detail.\n\n## Trivial/Internal Changes\n\n- [#​11785](https://togithub.com/pytest-dev/pytest/issues/11785): Some changes were made to private functions which may affect plugins which access them:\n\n - `FixtureManager._getautousenames()` now takes a `Node` itself instead of the nodeid.\n - `FixtureManager.getfixturedefs()` now takes the `Node` itself instead of the nodeid.\n - The `_pytest.nodes.iterparentnodeids()` function is removed without replacement.\n Prefer to traverse the node hierarchy itself instead.\n If you really need to, copy the function from the previous pytest release.\n\n- [#​12069](https://togithub.com/pytest-dev/pytest/issues/12069): Delayed the deprecation of the following features to `9.0.0`:\n\n - `node-ctor-fspath-deprecation`{.interpreted-text role=\"ref\"}.\n - `legacy-path-hooks-deprecated`{.interpreted-text role=\"ref\"}.\n\n It was discovered after `8.1.0` was released that the warnings about the impeding removal were not being displayed, so the team decided to revert the removal.\n\n This is the reason for `8.1.0` being yanked.\n\n# pytest 8.1.0 (YANKED)\n\n::: {.note}\n::: {.title}\nNote\n:::\n\nThis release has been **yanked**: it broke some plugins without the proper warning period, due to\nsome warnings not showing up as expected.\n\nSee [#​12069](https://togithub.com/pytest-dev/pytest/issues/12069).\n:::\n\n### [`v8.1.0`](https://togithub.com/pytest-dev/pytest/releases/tag/8.1.0)\n\n[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.0.2...8.1.0)\n\n# pytest 8.1.0 (YANKED)\n\n> \\[!IMPORTANT]\\\n> This release has been **yanked**: it broke some plugins without the proper warning period, due to some warnings not showing up as expected. See [#​12069](https://togithub.com/pytest-dev/pytest/issues/12069).\n\n## Features\n\n- [#​11475](https://togithub.com/pytest-dev/pytest/issues/11475): Added the new `consider_namespace_packages`{.interpreted-text role=\"confval\"} configuration option, defaulting to `False`.\n\n If set to `True`, pytest will attempt to identify modules that are part of [namespace packages](https://packaging.python.org/en/latest/guides/packaging-namespace-packages) when importing modules.\n\n- [#​11653](https://togithub.com/pytest-dev/pytest/issues/11653): Added the new `verbosity_test_cases`{.interpreted-text role=\"confval\"} configuration option for fine-grained control of test execution verbosity.\n See `Fine-grained verbosity `{.interpreted-text role=\"ref\"} for more details.\n\n## Improvements\n\n- [#​10865](https://togithub.com/pytest-dev/pytest/issues/10865): `pytest.warns`{.interpreted-text role=\"func\"} now validates that `warnings.warn`{.interpreted-text role=\"func\"} was called with a \\[str]{.title-ref} or a \\[Warning]{.title-ref}.\n Currently in Python it is possible to use other types, however this causes an exception when `warnings.filterwarnings`{.interpreted-text role=\"func\"} is used to filter those warnings (see [CPython #​103577](https://togithub.com/python/cpython/issues/103577) for a discussion).\n While this can be considered a bug in CPython, we decided to put guards in pytest as the error message produced without this check in place is confusing.\n\n- [#​11311](https://togithub.com/pytest-dev/pytest/issues/11311): When using `--override-ini` for paths in invocations without a configuration file defined, the current working directory is used\n as the relative directory.\n\n Previoulsy this would raise an `AssertionError`{.interpreted-text role=\"class\"}.\n\n- [#​11475](https://togithub.com/pytest-dev/pytest/issues/11475): `--import-mode=importlib `{.interpreted-text role=\"ref\"} now tries to import modules using the standard import mechanism (but still without changing :py`sys.path`{.interpreted-text role=\"data\"}), falling back to importing modules directly only if that fails.\n\n This means that installed packages will be imported under their canonical name if possible first, for example `app.core.models`, instead of having the module name always be derived from their path (for example `.env310.lib.site_packages.app.core.models`).\n\n- [#​11801](https://togithub.com/pytest-dev/pytest/issues/11801): Added the `iter_parents() <_pytest.nodes.Node.iter_parents>`{.interpreted-text role=\"func\"} helper method on nodes.\n It is similar to `listchain <_pytest.nodes.Node.listchain>`{.interpreted-text role=\"func\"}, but goes from bottom to top, and returns an iterator, not a list.\n\n- [#​11850](https://togithub.com/pytest-dev/pytest/issues/11850): Added support for `sys.last_exc`{.interpreted-text role=\"data\"} for post-mortem debugging on Python>=3.12.\n\n- [#​11962](https://togithub.com/pytest-dev/pytest/issues/11962): In case no other suitable candidates for configuration file are found, a `pyproject.toml` (even without a `[tool.pytest.ini_options]` table) will be considered as the configuration file and define the `rootdir`.\n\n- [#​11978](https://togithub.com/pytest-dev/pytest/issues/11978): Add `--log-file-mode` option to the logging plugin, enabling appending to log-files. This option accepts either `\"w\"` or `\"a\"` and defaults to `\"w\"`.\n\n Previously, the mode was hard-coded to be `\"w\"` which truncates the file before logging.\n\n- [#​12047](https://togithub.com/pytest-dev/pytest/issues/12047): When multiple finalizers of a fixture raise an exception, now all exceptions are reported as an exception group.\n Previously, only the first exception was reported.\n\n## Bug Fixes\n\n- [#​11904](https://togithub.com/pytest-dev/pytest/issues/11904): Fixed a regression in pytest 8.0.0 that would cause test collection to fail due to permission errors when using `--pyargs`.\n\n This change improves the collection tree for tests specified using `--pyargs`, see `12043`{.interpreted-text role=\"pull\"} for a comparison with pytest 8.0 and <8.\n\n- [#​12011](https://togithub.com/pytest-dev/pytest/issues/12011): Fixed a regression in 8.0.1 whereby `setup_module` xunit-style fixtures are not executed when `--doctest-modules` is passed.\n\n- [#​12014](https://togithub.com/pytest-dev/pytest/issues/12014): Fix the `stacklevel` used when warning about marks used on fixtures.\n\n- [#​12039](https://togithub.com/pytest-dev/pytest/issues/12039): Fixed a regression in `8.0.2` where tests created using `tmp_path`{.interpreted-text role=\"fixture\"} have been collected multiple times in CI under Windows.\n\n## Improved Documentation\n\n- [#​11790](https://togithub.com/pytest-dev/pytest/issues/11790): Documented the retention of temporary directories created using the `tmp_path` fixture in more detail.\n\n## Trivial/Internal Changes\n\n- [#​11785](https://togithub.com/pytest-dev/pytest/issues/11785): Some changes were made to private functions which may affect plugins which access them:\n - `FixtureManager._getautousenames()` now takes a `Node` itself instead of the nodeid.\n - `FixtureManager.getfixturedefs()` now takes the `Node` itself instead of the nodeid.\n - The `_pytest.nodes.iterparentnodeids()` function is removed without replacement.\n Prefer to traverse the node hierarchy itself instead.\n If you really need to, copy the function from the previous pytest release.\n\n### [`v8.0.2`](https://togithub.com/pytest-dev/pytest/releases/tag/8.0.2)\n\n[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.0.1...8.0.2)\n\n# pytest 8.0.2 (2024-02-24)\n\n## Bug Fixes\n\n- [#​11895](https://togithub.com/pytest-dev/pytest/issues/11895): Fix collection on Windows where initial paths contain the short version of a path (for example `c:\\PROGRA~1\\tests`).\n- [#​11953](https://togithub.com/pytest-dev/pytest/issues/11953): Fix an `IndexError` crash raising from `getstatementrange_ast`.\n- [#​12021](https://togithub.com/pytest-dev/pytest/issues/12021): Reverted a fix to \\[--maxfail]{.title-ref} handling in pytest 8.0.0 because it caused a regression in pytest-xdist whereby session fixture teardowns may get executed multiple times when the max-fails is reached.\n\n### [`v8.0.1`](https://togithub.com/pytest-dev/pytest/releases/tag/8.0.1)\n\n[Compare Source](https://togithub.com/pytest-dev/pytest/compare/8.0.0...8.0.1)\n\n# pytest 8.0.1 (2024-02-16)\n\n## Bug Fixes\n\n- [#​11875](https://togithub.com/pytest-dev/pytest/issues/11875): Correctly handle errors from `getpass.getuser`{.interpreted-text role=\"func\"} in Python 3.13.\n- [#​11879](https://togithub.com/pytest-dev/pytest/issues/11879): Fix an edge case where `ExceptionInfo._stringify_exception` could crash `pytest.raises`{.interpreted-text role=\"func\"}.\n- [#​11906](https://togithub.com/pytest-dev/pytest/issues/11906): Fix regression with `pytest.warns`{.interpreted-text role=\"func\"} using custom warning subclasses which have more than one parameter in their \\[\\__init\\_\\_]{.title-ref}.\n- [#​11907](https://togithub.com/pytest-dev/pytest/issues/11907): Fix a regression in pytest 8.0.0 whereby calling `pytest.skip`{.interpreted-text role=\"func\"} and similar control-flow exceptions within a `pytest.warns()`{.interpreted-text role=\"func\"} block would get suppressed instead of propagating.\n- [#​11929](https://togithub.com/pytest-dev/pytest/issues/11929): Fix a regression in pytest 8.0.0 whereby autouse fixtures defined in a module get ignored by the doctests in the module.\n- [#​11937](https://togithub.com/pytest-dev/pytest/issues/11937): Fix a regression in pytest 8.0.0 whereby items would be collected in reverse order in some circumstances.\n\n### [`v8.0.0`](https://togithub.com/pytest-dev/pytest/releases/tag/8.0.0): pytest 8.0.0 (2024-01-27)\n\n[Compare Source](https://togithub.com/pytest-dev/pytest/compare/7.4.4...8.0.0)\n\nSee [8.0.0rc1](https://togithub.com/pytest-dev/pytest/releases/tag/8.0.0rc1) and [8.0.0rc2](https://togithub.com/pytest-dev/pytest/releases/tag/8.0.0rc2) for the full changes since pytest 7.4!\n\n#### Bug Fixes\n\n- [#​11842](https://togithub.com/pytest-dev/pytest/issues/11842): Properly escape the `reason` of a `skip `{.interpreted-text role=\"ref\"} mark when writing JUnit XML files.\n- [#​11861](https://togithub.com/pytest-dev/pytest/issues/11861): Avoid microsecond exceeds `1_000_000` when using `log-date-format` with `%f` specifier, which might cause the test suite to crash.\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\n👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.\n\n---\n\n - [ ] If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/python-storage).\n","shortMessageHtmlLink":"chore(deps): update all dependencies (#1213)"}},{"before":null,"after":"a41644e861d1101436cbb5f2fd2010443d1643b0","ref":"refs/heads/owl-bot-update-lock-8244c1253becbaa533f48724a6348e4b92a10df4b4dfb66d87e615e633059bdf","pushedAt":"2024-04-07T11:49:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gcf-owl-bot[bot]","name":null,"path":"/apps/gcf-owl-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/99011?s=80&v=4"},"commit":{"message":"docs: fix docs session\n\nSource-Link: https://github.com/googleapis/synthtool/commit/223f39e29577145d4238a522633c2f3e5e6dc8dc\nPost-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:8244c1253becbaa533f48724a6348e4b92a10df4b4dfb66d87e615e633059bdf","shortMessageHtmlLink":"docs: fix docs session"}},{"before":null,"after":"d99a26f5ae69979dda3d14382269fd6c80d7e85f","ref":"refs/heads/test_change","pushedAt":"2024-04-07T06:03:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dandhlee","name":"Dan Lee","path":"/dandhlee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/71398022?s=80&v=4"},"commit":{"message":"test: verify index page update changes","shortMessageHtmlLink":"test: verify index page update changes"}},{"before":null,"after":"77a530e33b4f4e41effb9a8c413ed8a6d87708ec","ref":"refs/heads/owl-bot-update-lock-db05f70829de86fe8e34ba972b7fe56da57eaccf1691f875ed4867db80d5cec9","pushedAt":"2024-04-05T19:57:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"gcf-owl-bot[bot]","name":null,"path":"/apps/gcf-owl-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/99011?s=80&v=4"},"commit":{"message":"docs: add summary_overview template\n\nSource-Link: https://github.com/googleapis/synthtool/commit/d7c2271d319aeb7e3043ec3f1ecec6f3604f1f1e\nPost-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:db05f70829de86fe8e34ba972b7fe56da57eaccf1691f875ed4867db80d5cec9","shortMessageHtmlLink":"docs: add summary_overview template"}},{"before":"509526c73055cb80033f472f1b06aa9f2a687730","after":"faa63ba2f60517204c101e18280353d0d5ebf0ca","ref":"refs/heads/content-type","pushedAt":"2024-04-04T15:57:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Add `test_from_string_wout_client()`","shortMessageHtmlLink":"Add test_from_string_wout_client()"}},{"before":"81690690eda22ce86572fd84858d6c5df1331bf0","after":"509526c73055cb80033f472f1b06aa9f2a687730","ref":"refs/heads/content-type","pushedAt":"2024-04-04T14:59:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Add unit test","shortMessageHtmlLink":"Add unit test"}},{"before":"f64a86dd9f2ca8dc7acec54d037783bf8f614d48","after":"81690690eda22ce86572fd84858d6c5df1331bf0","ref":"refs/heads/content-type","pushedAt":"2024-04-03T23:15:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Add new test_blob_from_string","shortMessageHtmlLink":"Add new test_blob_from_string"}},{"before":"f05de38572d7c67f5f8d77643aeeb2f38b62786c","after":"f64a86dd9f2ca8dc7acec54d037783bf8f614d48","ref":"refs/heads/content-type","pushedAt":"2024-04-03T22:44:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Add if check for client","shortMessageHtmlLink":"Add if check for client"}},{"before":"dd4f94345f92c981ce4c82341d372b2bd4b78d2f","after":"f05de38572d7c67f5f8d77643aeeb2f38b62786c","ref":"refs/heads/content-type","pushedAt":"2024-04-03T22:30:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Remove test","shortMessageHtmlLink":"Remove test"}},{"before":"57fbe61f3b826a5b9aea8fdd0efeceb15d05b25f","after":"dd4f94345f92c981ce4c82341d372b2bd4b78d2f","ref":"refs/heads/content-type","pushedAt":"2024-04-03T22:19:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"Change to use `blob.reload()` to load all properties","shortMessageHtmlLink":"Change to use blob.reload() to load all properties"}},{"before":"cba2ead2571431c6c6ef0f1e5437d31820a28c27","after":"57fbe61f3b826a5b9aea8fdd0efeceb15d05b25f","ref":"refs/heads/content-type","pushedAt":"2024-04-03T22:09:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"test: Add unit test for content_type","shortMessageHtmlLink":"test: Add unit test for content_type"}},{"before":null,"after":"cba2ead2571431c6c6ef0f1e5437d31820a28c27","ref":"refs/heads/content-type","pushedAt":"2024-04-03T22:04:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"holtskinner","name":"Holt Skinner","path":"/holtskinner","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13262395?s=80&v=4"},"commit":{"message":"fix: Populate `content_type` when creating `Blob.from_string()`\n\nfixes #1248","shortMessageHtmlLink":"fix: Populate content_type when creating Blob.from_string()"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEOWqAfgA","startCursor":null,"endCursor":null}},"title":"Activity · googleapis/python-storage"}