diff --git a/ChangeLog b/ChangeLog index f9d118eed..4793ae327 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +* 28.2.0 +- Add support for Python 3.14. + * 28.1.1 - Upgrade minimum version of nox so it's compatible with the "uv" backend. diff --git a/Dockerfile b/Dockerfile index e67b5f674..1b5eaa2f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:24.04 ARG DEBIAN_FRONTEND=noninteractive -ARG PYTHON_VERSIONS="3.13 3.12 3.11 3.10 3.9" +ARG PYTHON_VERSIONS="3.14 3.13 3.12 3.11 3.10 3.9" ENV TZ=Etc/GMT ENV PATH="$PATH:/root/.local/bin" diff --git a/google/ads/googleads/__init__.py b/google/ads/googleads/__init__.py index 7c1bb688d..5b495f83f 100644 --- a/google/ads/googleads/__init__.py +++ b/google/ads/googleads/__init__.py @@ -19,7 +19,7 @@ import google.ads.googleads.errors import google.ads.googleads.util -VERSION = "28.1.1" +VERSION = "28.2.0" # Checks if the current runtime is Python 3.9. if sys.version_info.major == 3 and sys.version_info.minor <= 9: diff --git a/noxfile.py b/noxfile.py index 37fb59638..0e32007a7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -17,7 +17,7 @@ import pathlib -PYTHON_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13"] +PYTHON_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] PROTOBUF_IMPLEMENTATIONS = ["python", "upb"] TEST_COMMAND = [ @@ -67,7 +67,10 @@ def tests(session, protobuf_implementation): @nox.session(python=PYTHON_VERSIONS) @nox.parametrize("protobuf_implementation", PROTOBUF_IMPLEMENTATIONS) def tests_minimum_dependency_versions(session, protobuf_implementation): - if session.python == "3.13": + if session.python == "3.14": + # If running Python 3.14 use the constraints file intended for it. + filename = "constraints-3.14.txt" + elif session.python == "3.13": # If running Python 3.13 use the constraints file intended for it. filename = "constraints-3.13.txt" else: diff --git a/pyproject.toml b/pyproject.toml index 4c5b97a96..18e6d534d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,17 +18,15 @@ build-backend = "setuptools.build_meta" [project] name = "google-ads" -version = "28.1.1" +version = "28.2.0" description = "Client library for the Google Ads API" readme = "./README.rst" -requires-python = ">=3.9, <3.14" -license = "Apache-2.0" +requires-python = ">=3.9, <3.15" +license = { file = "LICENSE" } authors = [ {name = "Google LLC", email = "googleapis-packages@google.com"} ] classifiers = [ - "Intended Audience :: Developers", - "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", @@ -37,6 +35,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dependencies = [ "google-auth-oauthlib >= 1.0.0, < 2.0.0", @@ -49,8 +48,10 @@ dependencies = [ # have the same version range. "grpcio >= 1.59.0, < 2.0.0", "grpcio >= 1.66.2, < 2.0.0; python_version >= '3.13'", + "grpcio >= 1.75.1, < 2.0.0; python_version >= '3.14'", "grpcio-status >= 1.59.0, < 2.0.0", "grpcio-status >= 1.66.2, < 2.0.0; python_version >= '3.13'", + "grpcio-status >= 1.75.1, < 2.0.0; python_version >= '3.14'", "proto-plus >= 1.22.3, < 2.0.0", "proto-plus >= 1.25.0, < 2.0.0; python_version >= '3.13'", "PyYAML >= 5.1, < 7.0", diff --git a/tests/constraints/minimums/constraints-3.14.txt b/tests/constraints/minimums/constraints-3.14.txt new file mode 100644 index 000000000..731398344 --- /dev/null +++ b/tests/constraints/minimums/constraints-3.14.txt @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-auth-oauthlib==1.0.0 +google-api-core==2.22.0 +proto-plus==1.25.0 +protobuf==5.26.1 +googleapis-common-protos==1.63.2 +grpcio==1.75.1 +grpcio-status==1.75.1 \ No newline at end of file