diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9db56f8b0c..4109ffeed7 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -16,7 +16,7 @@ concurrency: env: SHOWCASE_VERSION: 0.35.0 PROTOC_VERSION: 3.20.2 - OLDEST_PYTHON: 3.7 + OLDEST_PYTHON: 3.9 LATEST_STABLE_PYTHON: 3.14 # TODO(https://github.com/googleapis/gapic-generator-python/issues/2450): # Switch this to Python 3.15 alpha1 pre-release @@ -25,7 +25,7 @@ env: # TODO(https://github.com/googleapis/gapic-generator-python/issues/2450): # Add Python 3.15 alpha1 pre-release # https://peps.python.org/pep-0790/ - ALL_PYTHON: "['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']" + ALL_PYTHON: "['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']" permissions: contents: read @@ -93,9 +93,6 @@ jobs: # Run mypy on all of the supported python versions listed in setup.py # https://github.com/python/mypy/blob/master/setup.py python: ${{ fromJSON(needs.all_python_setup.outputs.all_python) }} - exclude: - # Remove once https://github.com/googleapis/gapic-generator-python/issues/2303 is fixed - - python: '3.7' runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -119,9 +116,7 @@ jobs: target: [showcase, showcase_w_rest_async] logging_scope: ["", "google"] - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2303): use `ubuntu-latest` once this bug is fixed. - # Use ubuntu-22.04 until Python 3.7 is removed from the test matrix - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Set up Python "${{ matrix.python }}" @@ -212,9 +207,7 @@ jobs: variant: ['', _alternative_templates, _mixins, _alternative_templates_mixins, _w_rest_async] logging_scope: ["", "google"] - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2303): use `ubuntu-latest` once this bug is fixed. - # Use ubuntu-22.04 until Python 3.7 is removed from the test matrix - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Set up Python "${{ matrix.python }}" @@ -318,9 +311,7 @@ jobs: strategy: matrix: python: ${{ fromJSON(needs.all_python_setup.outputs.all_python) }} - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2303): use `ubuntu-latest` once this bug is fixed. - # Use ubuntu-22.04 until Python 3.7 is removed from the test matrix - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python }} @@ -344,9 +335,7 @@ jobs: matrix: python: ${{ fromJSON(needs.all_python_setup.outputs.all_python) }} variant: ['', _alternative_templates] - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2303): use `ubuntu-latest` once this bug is fixed. - # Use ubuntu-22.04 until Python 3.7 is removed from the test matrix - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python }} diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 3df5a264d6..e120e905ab 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -18,7 +18,7 @@ Execute unit tests by running one of the sessions prefixed with `unit-`. -- Example: `nox -s unit-3.8` +- Example: `nox -s unit-3.13` - See all Nox sessions with `nox -l`. ## Formatting diff --git a/README.rst b/README.rst index 5b38c1d7fb..08079f7f3a 100644 --- a/README.rst +++ b/README.rst @@ -5,7 +5,7 @@ API Client Generator for Python |release level| |pypi| |versions| - A generator for protocol buffer described APIs for and in Python 3. + A client library generator for APIs described through protocol buffers. This is a generator for API client libraries for APIs specified by `protocol buffers`_, such as those inside Google. diff --git a/gapic/ads-templates/noxfile.py.j2 b/gapic/ads-templates/noxfile.py.j2 index 48646feb5e..c46e8a7d67 100644 --- a/gapic/ads-templates/noxfile.py.j2 +++ b/gapic/ads-templates/noxfile.py.j2 @@ -11,8 +11,6 @@ import nox # type: ignore # Add tests for Python 3.15 alpha1 # https://peps.python.org/pep-0790/ ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/gapic/ads-templates/setup.py.j2 b/gapic/ads-templates/setup.py.j2 index 0824bc697c..79d2e0b3fa 100644 --- a/gapic/ads-templates/setup.py.j2 +++ b/gapic/ads-templates/setup.py.j2 @@ -34,6 +34,7 @@ dependencies = [ "googleapis-common-protos >= 1.53.0", "grpcio >= 1.10.0", "proto-plus >= 1.22.3, <2.0.0", + "protobuf >= 4.25.8, <7.0.0", {% if api.requires_package(('google', 'iam', 'v1')) %} "grpc-google-iam-v1", {% endif %} @@ -63,8 +64,6 @@ setuptools.setup( "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -76,7 +75,7 @@ setuptools.setup( ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, include_package_data=True, zip_safe=False, diff --git a/gapic/templates/noxfile.py.j2 b/gapic/templates/noxfile.py.j2 index e11bf34bcf..a62637f5ad 100644 --- a/gapic/templates/noxfile.py.j2 +++ b/gapic/templates/noxfile.py.j2 @@ -33,8 +33,6 @@ if os.path.isdir("samples"): FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -287,7 +285,7 @@ def unit(session, protobuf_implementation): def install_systemtest_dependencies(session, *constraints): - session.install("--pre", "grpcio") + session.install("--pre", "grpcio<=1.62.2") session.install(*SYSTEM_TEST_STANDARD_DEPENDENCIES, *constraints) @@ -506,7 +504,7 @@ def prerelease_deps(session, protobuf_implementation): "google-api-core", "google-auth", "grpc-google-iam-v1", - "grpcio", + "grpcio<=1.62.2", "grpcio-status", "protobuf", "proto-plus", diff --git a/gapic/templates/setup.py.j2 b/gapic/templates/setup.py.j2 index 6573b942db..bff08c5006 100644 --- a/gapic/templates/setup.py.j2 +++ b/gapic/templates/setup.py.j2 @@ -33,7 +33,7 @@ else: release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -42,7 +42,7 @@ dependencies = [ "proto-plus >= 1.22.3, <2.0.0", "proto-plus >= 1.25.0, <2.0.0; python_version >= '3.13'", {# Explicitly exclude protobuf versions mentioned in https://cloud.google.com/support/bulletins#GCP-2022-019 #} - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", {% for package_tuple, package_info in pypi_packages.items() %} {# Quick check to make sure `package_info.package_name` is not the package being generated so we don't circularly include this package in its own constraints file. #} {% if api.naming.warehouse_package_name != package_info.package_name %} @@ -89,8 +89,6 @@ setuptools.setup( "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -102,7 +100,7 @@ setuptools.setup( ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/gapic/templates/testing/constraints-3.7.txt.j2 b/gapic/templates/testing/constraints-3.7.txt.j2 deleted file mode 100644 index d6d5cd5dd3..0000000000 --- a/gapic/templates/testing/constraints-3.7.txt.j2 +++ /dev/null @@ -1,21 +0,0 @@ -{% from '_pypi_packages.j2' import pypi_packages %} -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 -{% for package_tuple, package_info in pypi_packages.items() %} -{# Quick check to make sure `package_info.package_name` is not the package being generated so we don't circularly include this package in its own constraints file. #} -{% if api.naming.warehouse_package_name != package_info.package_name %} -{% if api.requires_package(package_tuple) %} -{{ package_info.package_name }}=={{ package_info.lower_bound }} -{% endif %} -{% endif %} -{% endfor %} diff --git a/gapic/templates/testing/constraints-3.8.txt.j2 b/gapic/templates/testing/constraints-3.8.txt.j2 deleted file mode 100644 index e0f6dc7590..0000000000 --- a/gapic/templates/testing/constraints-3.8.txt.j2 +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -{% block constraints %} -{% include "testing/_default_constraints.j2" %} -{% endblock %} \ No newline at end of file diff --git a/gapic/templates/testing/constraints-3.9.txt.j2 b/gapic/templates/testing/constraints-3.9.txt.j2 index e0f6dc7590..1c6ec61fd8 100644 --- a/gapic/templates/testing/constraints-3.9.txt.j2 +++ b/gapic/templates/testing/constraints-3.9.txt.j2 @@ -1,4 +1,22 @@ # -*- coding: utf-8 -*- -{% block constraints %} -{% include "testing/_default_constraints.j2" %} -{% endblock %} \ No newline at end of file +{% from '_pypi_packages.j2' import pypi_packages %} +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 +{% for package_tuple, package_info in pypi_packages.items() %} +{# Quick check to make sure `package_info.package_name` is not the package being generated so we don't circularly include this package in its own constraints file. #} +{% if api.naming.warehouse_package_name != package_info.package_name %} +{% if api.requires_package(package_tuple) %} +{{ package_info.package_name }}=={{ package_info.lower_bound }} +{% endif %} +{% endif %} +{% endfor %} diff --git a/noxfile.py b/noxfile.py index e99bfad597..9ec613d322 100644 --- a/noxfile.py +++ b/noxfile.py @@ -37,8 +37,6 @@ BLACK_EXCLUDES = "|".join([".*golden.*", ".*pb2.py"]) ALL_PYTHON = ( - "3.7", - "3.8", "3.9", "3.10", "3.11", @@ -170,17 +168,13 @@ def fragment(session, use_ads_templates=False): "pytest", "pytest-cov", "pytest-xdist", - "asyncmock; python_version < '3.8'", "pytest-asyncio", "grpcio-tools", ) session.install("-e", ".") - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2473): - # Warnings emitted from google-api-core starting in 2.28 - # appear to cause issues when running protoc. # The specific failure is `Plugin output is unparseable` - if session.python in ("3.7", "3.8", "3.9", "3.10"): + if session.python in ("3.9", "3.10"): session.install("google-api-core<2.28") frag_files = ( @@ -250,7 +244,7 @@ def showcase_library( # Warnings emitted from google-api-core starting in 2.28 # appear to cause issues when running protoc. # The specific failure is `Plugin output is unparseable` - if session.python in ("3.7", "3.8", "3.9", "3.10"): + if session.python in ("3.9", "3.10"): session.install("google-api-core<2.28") # Install a client library for Showcase. @@ -357,40 +351,20 @@ def showcase_library( f"{tmp_dir}/testing/constraints-{session.python}.txt" ) # Install the library with a constraints file. - if session.python == "3.7": - session.install("-e", tmp_dir, "-r", constraints_path) - if rest_async_io_enabled: - # NOTE: We re-install `google-api-core` and `google-auth` to override the respective - # versions for each specified in constraints-3.7.txt. This is needed because async REST - # is not supported with the minimum version of `google-api-core` and `google-auth`. - # TODO(https://github.com/googleapis/gapic-generator-python/issues/2211): Remove hardcoded dependencies - # from here and add a new constraints file for testing the minimum supported versions for async REST feature. - session.install( - "--no-cache-dir", - "--force-reinstall", - "google-api-core[grpc, async_rest]==2.21.0", - ) - # session.install('--no-cache-dir', '--force-reinstall', "google-api-core==2.20.0") - session.install( - "--no-cache-dir", - "--force-reinstall", - "google-auth[aiohttp]==2.35.0", - ) - else: - session.install( - "-e", - tmp_dir + ("[async_rest]" if rest_async_io_enabled else ""), - "-r", - constraints_path, - ) - # Exclude `google-auth==2.40.0` which contains a regression - # https://github.com/googleapis/gapic-generator-python/issues/2385 - session.install( - "--no-cache-dir", - "--force-reinstall", - "--upgrade", - "google-auth[aiohttp]!=2.40.0", - ) + session.install( + "-e", + tmp_dir + ("[async_rest]" if rest_async_io_enabled else ""), + "-r", + constraints_path, + ) + # Exclude `google-auth==2.40.0` which contains a regression + # https://github.com/googleapis/gapic-generator-python/issues/2385 + session.install( + "--no-cache-dir", + "--force-reinstall", + "--upgrade", + "google-auth[aiohttp]!=2.40.0", + ) else: # The ads templates do not have constraints files. # See https://github.com/googleapis/gapic-generator-python/issues/1788 @@ -497,41 +471,23 @@ def run_showcase_unit_tests(session, fail_under=100, rest_async_io_enabled=False "pytest", "pytest-cov", "pytest-xdist", - "asyncmock; python_version < '3.8'", "pytest-asyncio", ) # Run the tests. - # NOTE: async rest is not supported against the minimum supported version of google-api-core. - # Therefore, we ignore the coverage requirement in this case. - if session.python == "3.7" and rest_async_io_enabled: - session.run( - "py.test", - *( - session.posargs - or [ - "-n=auto", - "--quiet", - "--cov=google", - "--cov-append", - path.join("tests", "unit"), - ] - ), - ) - else: - session.run( - "py.test", - *( - session.posargs - or [ - "-n=auto", - "--quiet", - "--cov=google", - "--cov-append", - f"--cov-fail-under={str(fail_under)}", - path.join("tests", "unit"), - ] - ), - ) + session.run( + "py.test", + *( + session.posargs + or [ + "-n=auto", + "--quiet", + "--cov=google", + "--cov-append", + f"--cov-fail-under={str(fail_under)}", + path.join("tests", "unit"), + ] + ), + ) @nox.session(python=ALL_PYTHON) diff --git a/requirements.in b/requirements.in index d6a1c8d6f1..2a9d7bb2cd 100644 --- a/requirements.in +++ b/requirements.in @@ -3,7 +3,7 @@ google-api-core googleapis-common-protos jinja2 MarkupSafe -protobuf +protobuf>=4.25.8 pypandoc PyYAML grpc-google-iam-v1 diff --git a/requirements.txt b/requirements.txt index dfba7dd8d8..10f053daf9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,8 +1,8 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --allow-unsafe --generate-hashes requirements.in +# pip-compile --allow-unsafe --generate-hashes --output-file=requirements.txt requirements.in # aiohappyeyeballs==2.6.1 \ --hash=sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558 \ @@ -134,18 +134,10 @@ aiosignal==1.4.0 \ --hash=sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e \ --hash=sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7 # via aiohttp -async-timeout==5.0.1 \ - --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \ - --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3 - # via aiohttp attrs==25.4.0 \ --hash=sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11 \ --hash=sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373 # via aiohttp -backports-asyncio-runner==1.2.0 \ - --hash=sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5 \ - --hash=sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162 - # via pytest-asyncio cachetools==6.2.1 \ --hash=sha256:09868944b6dde876dfd44e1d47e18484541eaf12f26f29b7af91b26cc892d701 \ --hash=sha256:3f391e4bd8f8bf0931169baf7456cc822705f4e2a31f840d218f445b9a854201 @@ -273,10 +265,6 @@ click==8.3.0 \ --hash=sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc \ --hash=sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4 # via -r requirements.in -exceptiongroup==1.3.0 \ - --hash=sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10 \ - --hash=sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88 - # via pytest frozenlist==1.8.0 \ --hash=sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686 \ --hash=sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0 \ @@ -1090,58 +1078,12 @@ rsa==4.9.1 \ --hash=sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762 \ --hash=sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75 # via google-auth -tomli==2.3.0 \ - --hash=sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456 \ - --hash=sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845 \ - --hash=sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999 \ - --hash=sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0 \ - --hash=sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878 \ - --hash=sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf \ - --hash=sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3 \ - --hash=sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be \ - --hash=sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52 \ - --hash=sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b \ - --hash=sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67 \ - --hash=sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549 \ - --hash=sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba \ - --hash=sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22 \ - --hash=sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c \ - --hash=sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f \ - --hash=sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6 \ - --hash=sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba \ - --hash=sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45 \ - --hash=sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f \ - --hash=sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77 \ - --hash=sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606 \ - --hash=sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441 \ - --hash=sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0 \ - --hash=sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f \ - --hash=sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530 \ - --hash=sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05 \ - --hash=sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8 \ - --hash=sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005 \ - --hash=sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879 \ - --hash=sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae \ - --hash=sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc \ - --hash=sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b \ - --hash=sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b \ - --hash=sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e \ - --hash=sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf \ - --hash=sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac \ - --hash=sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8 \ - --hash=sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b \ - --hash=sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf \ - --hash=sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463 \ - --hash=sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876 - # via pytest typing-extensions==4.15.0 \ --hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \ --hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548 # via # aiosignal - # exceptiongroup # grpcio - # multidict # pytest-asyncio urllib3==2.5.0 \ --hash=sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760 \ diff --git a/setup.py b/setup.py index c02c9af9c0..d45842faae 100644 --- a/setup.py +++ b/setup.py @@ -35,7 +35,7 @@ # https://jinja.palletsprojects.com/en/3.0.x/templates/#jinja-filters.map # https://jinja.palletsprojects.com/en/2.11.x/changelog/#version-2-11-0 "jinja2 >= 2.11", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", "pypandoc >= 1.4", "PyYAML >= 5.1.1", "grpc-google-iam-v1 >= 0.14.0, < 1.0.0", @@ -70,8 +70,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -83,7 +81,7 @@ "Topic :: Software Development :: Libraries :: Python Modules", ], platforms="Posix; MacOS X", - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, include_package_data=True, zip_safe=False, diff --git a/tests/integration/goldens/asset/noxfile.py b/tests/integration/goldens/asset/noxfile.py index c0c32cce8d..325ba9b28a 100755 --- a/tests/integration/goldens/asset/noxfile.py +++ b/tests/integration/goldens/asset/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/asset/setup.py b/tests/integration/goldens/asset/setup.py index db0a03c590..c8118e1a4a 100755 --- a/tests/integration/goldens/asset/setup.py +++ b/tests/integration/goldens/asset/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", "google-cloud-access-context-manager >= 0.1.2, <1.0.0", "google-cloud-os-config >= 1.0.0, <2.0.0", "grpc-google-iam-v1 >= 0.14.0, <1.0.0", @@ -83,8 +83,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -96,7 +94,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/asset/testing/constraints-3.7.txt b/tests/integration/goldens/asset/testing/constraints-3.7.txt deleted file mode 100755 index 45771b18c6..0000000000 --- a/tests/integration/goldens/asset/testing/constraints-3.7.txt +++ /dev/null @@ -1,15 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 -google-cloud-access-context-manager==0.1.2 -google-cloud-os-config==1.0.0 -grpc-google-iam-v1==0.14.0 diff --git a/tests/integration/goldens/asset/testing/constraints-3.8.txt b/tests/integration/goldens/asset/testing/constraints-3.8.txt deleted file mode 100755 index 763d545abe..0000000000 --- a/tests/integration/goldens/asset/testing/constraints-3.8.txt +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf -google-cloud-access-context-manager -google-cloud-os-config -grpc-google-iam-v1 diff --git a/tests/integration/goldens/asset/testing/constraints-3.9.txt b/tests/integration/goldens/asset/testing/constraints-3.9.txt index 763d545abe..1d4be8919b 100755 --- a/tests/integration/goldens/asset/testing/constraints-3.9.txt +++ b/tests/integration/goldens/asset/testing/constraints-3.9.txt @@ -1,11 +1,16 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf -google-cloud-access-context-manager -google-cloud-os-config -grpc-google-iam-v1 +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 +google-cloud-access-context-manager==0.1.2 +google-cloud-os-config==1.0.0 +grpc-google-iam-v1==0.14.0 diff --git a/tests/integration/goldens/credentials/noxfile.py b/tests/integration/goldens/credentials/noxfile.py index 488c013ac7..49a19c4761 100755 --- a/tests/integration/goldens/credentials/noxfile.py +++ b/tests/integration/goldens/credentials/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/credentials/setup.py b/tests/integration/goldens/credentials/setup.py index eaba6dcd0c..759cd11bc5 100755 --- a/tests/integration/goldens/credentials/setup.py +++ b/tests/integration/goldens/credentials/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", ] extras = { } @@ -80,8 +80,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -93,7 +91,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/credentials/testing/constraints-3.7.txt b/tests/integration/goldens/credentials/testing/constraints-3.7.txt deleted file mode 100755 index 5d29dea386..0000000000 --- a/tests/integration/goldens/credentials/testing/constraints-3.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 diff --git a/tests/integration/goldens/credentials/testing/constraints-3.8.txt b/tests/integration/goldens/credentials/testing/constraints-3.8.txt deleted file mode 100755 index 93e6826f2a..0000000000 --- a/tests/integration/goldens/credentials/testing/constraints-3.8.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf diff --git a/tests/integration/goldens/credentials/testing/constraints-3.9.txt b/tests/integration/goldens/credentials/testing/constraints-3.9.txt index 93e6826f2a..571c4f68f9 100755 --- a/tests/integration/goldens/credentials/testing/constraints-3.9.txt +++ b/tests/integration/goldens/credentials/testing/constraints-3.9.txt @@ -1,8 +1,13 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 diff --git a/tests/integration/goldens/eventarc/noxfile.py b/tests/integration/goldens/eventarc/noxfile.py index 228dccbbed..8ef15b00a0 100755 --- a/tests/integration/goldens/eventarc/noxfile.py +++ b/tests/integration/goldens/eventarc/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/eventarc/setup.py b/tests/integration/goldens/eventarc/setup.py index 8f8887b4d5..eae607c5b2 100755 --- a/tests/integration/goldens/eventarc/setup.py +++ b/tests/integration/goldens/eventarc/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", "grpc-google-iam-v1 >= 0.14.0, <1.0.0", ] extras = { @@ -81,8 +81,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -94,7 +92,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/eventarc/testing/constraints-3.7.txt b/tests/integration/goldens/eventarc/testing/constraints-3.7.txt deleted file mode 100755 index 5b1ee6c35a..0000000000 --- a/tests/integration/goldens/eventarc/testing/constraints-3.7.txt +++ /dev/null @@ -1,13 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 -grpc-google-iam-v1==0.14.0 diff --git a/tests/integration/goldens/eventarc/testing/constraints-3.8.txt b/tests/integration/goldens/eventarc/testing/constraints-3.8.txt deleted file mode 100755 index ef1c92ffff..0000000000 --- a/tests/integration/goldens/eventarc/testing/constraints-3.8.txt +++ /dev/null @@ -1,9 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf -grpc-google-iam-v1 diff --git a/tests/integration/goldens/eventarc/testing/constraints-3.9.txt b/tests/integration/goldens/eventarc/testing/constraints-3.9.txt index ef1c92ffff..14916e95fd 100755 --- a/tests/integration/goldens/eventarc/testing/constraints-3.9.txt +++ b/tests/integration/goldens/eventarc/testing/constraints-3.9.txt @@ -1,9 +1,14 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf -grpc-google-iam-v1 +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 +grpc-google-iam-v1==0.14.0 diff --git a/tests/integration/goldens/logging/noxfile.py b/tests/integration/goldens/logging/noxfile.py index 106be18e72..8bc0a7bc8c 100755 --- a/tests/integration/goldens/logging/noxfile.py +++ b/tests/integration/goldens/logging/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/logging/setup.py b/tests/integration/goldens/logging/setup.py index cb6015c69b..2464aa281a 100755 --- a/tests/integration/goldens/logging/setup.py +++ b/tests/integration/goldens/logging/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", ] extras = { } @@ -80,8 +80,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -93,7 +91,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/logging/testing/constraints-3.7.txt b/tests/integration/goldens/logging/testing/constraints-3.7.txt deleted file mode 100755 index 5d29dea386..0000000000 --- a/tests/integration/goldens/logging/testing/constraints-3.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 diff --git a/tests/integration/goldens/logging/testing/constraints-3.8.txt b/tests/integration/goldens/logging/testing/constraints-3.8.txt deleted file mode 100755 index 93e6826f2a..0000000000 --- a/tests/integration/goldens/logging/testing/constraints-3.8.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf diff --git a/tests/integration/goldens/logging/testing/constraints-3.9.txt b/tests/integration/goldens/logging/testing/constraints-3.9.txt index 93e6826f2a..571c4f68f9 100755 --- a/tests/integration/goldens/logging/testing/constraints-3.9.txt +++ b/tests/integration/goldens/logging/testing/constraints-3.9.txt @@ -1,8 +1,13 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 diff --git a/tests/integration/goldens/logging_internal/noxfile.py b/tests/integration/goldens/logging_internal/noxfile.py index 106be18e72..8bc0a7bc8c 100755 --- a/tests/integration/goldens/logging_internal/noxfile.py +++ b/tests/integration/goldens/logging_internal/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/logging_internal/setup.py b/tests/integration/goldens/logging_internal/setup.py index cb6015c69b..2464aa281a 100755 --- a/tests/integration/goldens/logging_internal/setup.py +++ b/tests/integration/goldens/logging_internal/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", ] extras = { } @@ -80,8 +80,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -93,7 +91,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/logging_internal/testing/constraints-3.7.txt b/tests/integration/goldens/logging_internal/testing/constraints-3.7.txt deleted file mode 100755 index 5d29dea386..0000000000 --- a/tests/integration/goldens/logging_internal/testing/constraints-3.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 diff --git a/tests/integration/goldens/logging_internal/testing/constraints-3.8.txt b/tests/integration/goldens/logging_internal/testing/constraints-3.8.txt deleted file mode 100755 index 93e6826f2a..0000000000 --- a/tests/integration/goldens/logging_internal/testing/constraints-3.8.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf diff --git a/tests/integration/goldens/logging_internal/testing/constraints-3.9.txt b/tests/integration/goldens/logging_internal/testing/constraints-3.9.txt index 93e6826f2a..571c4f68f9 100755 --- a/tests/integration/goldens/logging_internal/testing/constraints-3.9.txt +++ b/tests/integration/goldens/logging_internal/testing/constraints-3.9.txt @@ -1,8 +1,13 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 diff --git a/tests/integration/goldens/redis/noxfile.py b/tests/integration/goldens/redis/noxfile.py index 490680cd3d..8af6c70603 100755 --- a/tests/integration/goldens/redis/noxfile.py +++ b/tests/integration/goldens/redis/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/redis/setup.py b/tests/integration/goldens/redis/setup.py index 026674b2d3..878aac76e0 100755 --- a/tests/integration/goldens/redis/setup.py +++ b/tests/integration/goldens/redis/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", ] extras = { "async_rest": [ @@ -84,8 +84,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -97,7 +95,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/redis/testing/constraints-3.7.txt b/tests/integration/goldens/redis/testing/constraints-3.7.txt deleted file mode 100755 index 5d29dea386..0000000000 --- a/tests/integration/goldens/redis/testing/constraints-3.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 diff --git a/tests/integration/goldens/redis/testing/constraints-3.8.txt b/tests/integration/goldens/redis/testing/constraints-3.8.txt deleted file mode 100755 index 93e6826f2a..0000000000 --- a/tests/integration/goldens/redis/testing/constraints-3.8.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf diff --git a/tests/integration/goldens/redis/testing/constraints-3.9.txt b/tests/integration/goldens/redis/testing/constraints-3.9.txt index 93e6826f2a..571c4f68f9 100755 --- a/tests/integration/goldens/redis/testing/constraints-3.9.txt +++ b/tests/integration/goldens/redis/testing/constraints-3.9.txt @@ -1,8 +1,13 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8 diff --git a/tests/integration/goldens/redis_selective/noxfile.py b/tests/integration/goldens/redis_selective/noxfile.py index 490680cd3d..8af6c70603 100755 --- a/tests/integration/goldens/redis_selective/noxfile.py +++ b/tests/integration/goldens/redis_selective/noxfile.py @@ -39,8 +39,6 @@ FORMAT_PATHS.append("samples") ALL_PYTHON = [ - "3.7", - "3.8", "3.9", "3.10", "3.11", diff --git a/tests/integration/goldens/redis_selective/setup.py b/tests/integration/goldens/redis_selective/setup.py index 026674b2d3..878aac76e0 100755 --- a/tests/integration/goldens/redis_selective/setup.py +++ b/tests/integration/goldens/redis_selective/setup.py @@ -39,7 +39,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.34.1, <3.0.0,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", + "google-api-core[grpc] >= 2.11.0, <3.0.0", # Exclude incompatible versions of `google-auth` # See https://github.com/googleapis/google-cloud-python/issues/12364 "google-auth >= 2.14.1, <3.0.0,!=2.24.0,!=2.25.0", @@ -47,7 +47,7 @@ "grpcio >= 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'", - "protobuf>=3.20.2,<7.0.0,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "protobuf >= 4.25.8, <7.0.0", ] extras = { "async_rest": [ @@ -84,8 +84,6 @@ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -97,7 +95,7 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, - python_requires=">=3.7", + python_requires=">=3.9", install_requires=dependencies, extras_require=extras, include_package_data=True, diff --git a/tests/integration/goldens/redis_selective/testing/constraints-3.7.txt b/tests/integration/goldens/redis_selective/testing/constraints-3.7.txt deleted file mode 100755 index 5d29dea386..0000000000 --- a/tests/integration/goldens/redis_selective/testing/constraints-3.7.txt +++ /dev/null @@ -1,12 +0,0 @@ -# This constraints file is used to check that lower bounds -# are correct in setup.py -# List all library dependencies and extras in this file. -# Pin the version to the lower bound. -# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", -# Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.34.1 -google-auth==2.14.1 -# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) -# Add the minimum supported version of grpcio to constraints files -proto-plus==1.22.3 -protobuf==3.20.2 diff --git a/tests/integration/goldens/redis_selective/testing/constraints-3.8.txt b/tests/integration/goldens/redis_selective/testing/constraints-3.8.txt deleted file mode 100755 index 93e6826f2a..0000000000 --- a/tests/integration/goldens/redis_selective/testing/constraints-3.8.txt +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf diff --git a/tests/integration/goldens/redis_selective/testing/constraints-3.9.txt b/tests/integration/goldens/redis_selective/testing/constraints-3.9.txt index 93e6826f2a..571c4f68f9 100755 --- a/tests/integration/goldens/redis_selective/testing/constraints-3.9.txt +++ b/tests/integration/goldens/redis_selective/testing/constraints-3.9.txt @@ -1,8 +1,13 @@ # -*- coding: utf-8 -*- -# This constraints file is required for unit tests. -# List all library dependencies and extras in this file. -google-api-core -google-auth -grpcio -proto-plus -protobuf +# This constraints file is used to check that lower bounds +# are correct in setup.py +# List all library dependencies and extras in this file, +# pinning their versions to their lower bounds. +# For example, if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0", +# then this file should have google-cloud-foo==1.14.0 +google-api-core==2.11.0 +google-auth==2.35.0 +# TODO(https://github.com/googleapis/gapic-generator-python/issues/2453) +# Add the minimum supported version of grpcio to constraints files +proto-plus==1.22.3 +protobuf==4.25.8