From ab9785d1bce1d50a03ff41d9b377dc7632772105 Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Mon, 10 Mar 2025 17:01:02 -0400 Subject: [PATCH 1/4] fix: resolve issue where pre-release versions of dependencies are installed (#329) Co-authored-by: Victor Chudnovsky --- setup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 0264021..d25a880 100644 --- a/setup.py +++ b/setup.py @@ -28,14 +28,14 @@ # 'Development Status :: 5 - Production/Stable' release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core >= 1.31.6, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0", - "google-auth >= 1.25.0, < 3.0dev", + "google-api-core >= 1.31.6, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0", + "google-auth >= 1.25.0, < 3.0.0", "importlib-metadata > 1.0.0; python_version<'3.8'", ] extras = { "grpc": [ - "grpcio >= 1.38.0, < 2.0dev", - "grpcio-status >= 1.38.0, < 2.0.dev0", + "grpcio >= 1.38.0, < 2.0.0", + "grpcio-status >= 1.38.0, < 2.0.0", ], } From 78ce8a6f7c781cf2585131d7961beec9069a206c Mon Sep 17 00:00:00 2001 From: Anthonios Partheniou Date: Wed, 19 Mar 2025 20:52:19 -0400 Subject: [PATCH 2/4] fix: remove setup.cfg configuration for creating universal wheels (#332) --- setup.cfg | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 setup.cfg diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 2a9acf1..0000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[bdist_wheel] -universal = 1 From c26e587a79b1905f4d64e409b853d9e50bbb6c17 Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Mon, 27 Oct 2025 06:35:16 -0400 Subject: [PATCH 3/4] feat: Add Python 3.14 support (#333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(ci): Add Python 3.14 support to owlbot.py * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat(ci): Add Python 3.14 support to core files * Apply suggestion from @chalmerlowe 3.7 is not supported in this repo. * Apply suggestion from @chalmerlowe * Apply suggestion from @chalmerlowe 3.7 is not supported in this repo. * fix(ci): Remove unit (3.7) from required checks * fix(coverage): Remove obsolete Python < 3.8 import logic * fix(coverage): Add no cover pragma for api_key import * fix(ci): Correct lint errors and coverage pragma case --------- Co-authored-by: Owl Bot --- .github/sync-repo-settings.yaml | 3 ++- .github/workflows/unittest.yml | 2 +- CONTRIBUTING.rst | 10 +++++----- google/cloud/client/__init__.py | 5 +++-- google/cloud/obsolete/__init__.py | 8 +------- noxfile.py | 2 +- owlbot.py | 1 + setup.py | 4 +++- testing/constraints-3.14.txt | 0 9 files changed, 17 insertions(+), 18 deletions(-) create mode 100644 testing/constraints-3.14.txt diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index eeac265..bdd4cb7 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -11,12 +11,13 @@ branchProtectionRules: # No Kokoro: the following are Github actions - 'mypy' - 'lint' - - 'unit (3.7)' - 'unit (3.8)' - 'unit (3.9)' - 'unit (3.10)' - 'unit (3.11)' - 'unit (3.12)' + - 'unit (3.13)' + - 'unit (3.14)' - 'cover' - 'docs' - 'docfx' diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index c66b757..e381a05 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - python: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] + python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index f6f9ad5..5f1f417 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -22,7 +22,7 @@ In order to add a feature: documentation. - The feature must work fully on the following CPython versions: - 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 and 3.13 on both UNIX and Windows. + 3.8, 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on both UNIX and Windows. - The feature must not add unnecessary dependencies (where "unnecessary" is of course subjective, but new dependencies should @@ -72,7 +72,7 @@ We use `nox `__ to instrument our tests. - To run a single unit test:: - $ nox -s unit-3.13 -- -k + $ nox -s unit-3.14 -- -k .. note:: @@ -221,21 +221,21 @@ Supported Python Versions We support: -- `Python 3.7`_ - `Python 3.8`_ - `Python 3.9`_ - `Python 3.10`_ - `Python 3.11`_ - `Python 3.12`_ - `Python 3.13`_ +- `Python 3.14`_ -.. _Python 3.7: https://docs.python.org/3.7/ .. _Python 3.8: https://docs.python.org/3.8/ .. _Python 3.9: https://docs.python.org/3.9/ .. _Python 3.10: https://docs.python.org/3.10/ .. _Python 3.11: https://docs.python.org/3.11/ .. _Python 3.12: https://docs.python.org/3.12/ .. _Python 3.13: https://docs.python.org/3.13/ +.. _Python 3.14: https://docs.python.org/3.14/ Supported versions can be found in our ``noxfile.py`` `config`_. @@ -243,7 +243,7 @@ Supported versions can be found in our ``noxfile.py`` `config`_. .. _config: https://github.com/googleapis/python-cloud-core/blob/main/noxfile.py -We also explicitly decided to support Python 3 beginning with version 3.7. +We also explicitly decided to support Python 3 beginning with version 3.8. Reasons for this include: - Encouraging use of newest versions of Python 3 diff --git a/google/cloud/client/__init__.py b/google/cloud/client/__init__.py index 1396486..27d1a4c 100644 --- a/google/cloud/client/__init__.py +++ b/google/cloud/client/__init__.py @@ -34,8 +34,9 @@ import google.auth.api_key HAS_GOOGLE_AUTH_API_KEY = True -except ImportError: - HAS_GOOGLE_AUTH_API_KEY = False +except ImportError: # pragma: NO COVER + HAS_GOOGLE_AUTH_API_KEY = False # pragma: NO COVER + # TODO: Investigate adding a test for google.auth.api_key ImportError (https://github.com/googleapis/python-cloud-core/issues/334) _GOOGLE_AUTH_CREDENTIALS_HELP = ( diff --git a/google/cloud/obsolete/__init__.py b/google/cloud/obsolete/__init__.py index 854110e..552f755 100644 --- a/google/cloud/obsolete/__init__.py +++ b/google/cloud/obsolete/__init__.py @@ -14,16 +14,10 @@ """Helpers for deprecated code and modules.""" -import sys +import importlib.metadata as metadata import warnings -if sys.version_info < (3, 8): - import importlib_metadata as metadata -else: - import importlib.metadata as metadata - - def complain(distribution_name): """Issue a warning if `distribution_name` is installed. diff --git a/noxfile.py b/noxfile.py index 70ba2b2..e1a1c95 100644 --- a/noxfile.py +++ b/noxfile.py @@ -96,7 +96,7 @@ def default(session): ) -@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]) +@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]) def unit(session): """Default unit test session.""" default(session) diff --git a/owlbot.py b/owlbot.py index af02b0a..767da60 100644 --- a/owlbot.py +++ b/owlbot.py @@ -26,6 +26,7 @@ templated_files = common.py_library( microgenerator=True, cov_level=100, + unit_test_python_versions=["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"], ) s.move( templated_files, diff --git a/setup.py b/setup.py index d25a880..8e7dd9d 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,8 @@ ] extras = { "grpc": [ - "grpcio >= 1.38.0, < 2.0.0", + "grpcio >= 1.38.0, < 2.0.0; python_version < '3.14'", + "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'", "grpcio-status >= 1.38.0, < 2.0.0", ], } @@ -82,6 +83,7 @@ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Operating System :: OS Independent", "Topic :: Internet", ], diff --git a/testing/constraints-3.14.txt b/testing/constraints-3.14.txt new file mode 100644 index 0000000..e69de29 From 312620edab18920718f335e6a4330ed600fb4402 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:10:50 -0700 Subject: [PATCH 4/4] chore(main): release 2.5.0 (#330) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ google/cloud/version.py | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f435646..7cdf4ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,19 @@ [1]: https://pypi.org/project/google-cloud-core/#history +## [2.5.0](https://github.com/googleapis/python-cloud-core/compare/v2.4.3...v2.5.0) (2025-10-27) + + +### Features + +* Add Python 3.14 support ([#333](https://github.com/googleapis/python-cloud-core/issues/333)) ([c26e587](https://github.com/googleapis/python-cloud-core/commit/c26e587a79b1905f4d64e409b853d9e50bbb6c17)) + + +### Bug Fixes + +* Remove setup.cfg configuration for creating universal wheels ([#332](https://github.com/googleapis/python-cloud-core/issues/332)) ([78ce8a6](https://github.com/googleapis/python-cloud-core/commit/78ce8a6f7c781cf2585131d7961beec9069a206c)) +* Resolve issue where pre-release versions of dependencies are installed ([#329](https://github.com/googleapis/python-cloud-core/issues/329)) ([ab9785d](https://github.com/googleapis/python-cloud-core/commit/ab9785d1bce1d50a03ff41d9b377dc7632772105)) + ## [2.4.3](https://github.com/googleapis/python-cloud-core/compare/v2.4.2...v2.4.3) (2025-03-10) diff --git a/google/cloud/version.py b/google/cloud/version.py index 7c4fc85..5836d80 100644 --- a/google/cloud/version.py +++ b/google/cloud/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "2.4.3" +__version__ = "2.5.0"