[Python Version] Drop support for Python 3.7 (#34450)

### NOTE
* We shouldn't merge this PR until GCP cloud functions drops support for Python 3.7 ([Currently scheduled for GCF](https://cloud.google.com/functions/docs/runtime-support#python))

As part of supporting Python 3.12, we're now officially drop support for Python 3.7.

This PR:

* Changed supported Python version from 3.7 to 3.8 in README.
* Replaced distribution test image from `debian:buster` to `debian:bullseye` since the default Python version in buster is 3.7.

<!--

If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the appropriate
lang label.

-->

Closes #34450

PiperOrigin-RevId: 622899511
pull/35579/head
Xuan Wang 8 months ago committed by Copybara-Service
parent 6cbc7ad63d
commit 73b0ac2067
  1. 3
      setup.py
  2. 2
      src/python/grpcio/README.rst
  3. 2
      src/python/grpcio_admin/setup.py
  4. 2
      src/python/grpcio_channelz/README.rst
  5. 6
      src/python/grpcio_channelz/setup.py
  6. 2
      src/python/grpcio_csds/setup.py
  7. 2
      src/python/grpcio_health_checking/README.rst
  8. 6
      src/python/grpcio_health_checking/setup.py
  9. 2
      src/python/grpcio_observability/setup.py
  10. 2
      src/python/grpcio_reflection/README.rst
  11. 6
      src/python/grpcio_reflection/setup.py
  12. 2
      src/python/grpcio_status/README.rst
  13. 6
      src/python/grpcio_status/setup.py
  14. 2
      src/python/grpcio_testing/README.rst
  15. 16
      test/distrib/gcf/python/run.sh
  16. 8
      tools/bazelify_tests/dockerimage_current_versions.bzl
  17. 25
      tools/bazelify_tests/test/BUILD
  18. 4
      tools/bazelify_tests/test/build_artifact_python_linux_x64_cp312.sh
  19. 4
      tools/bazelify_tests/test/build_artifact_python_linux_x64_cp39.sh
  20. 2
      tools/distrib/python/grpcio_tools/setup.py
  21. 2
      tools/distrib/python/xds_protos/setup.py
  22. 1
      tools/dockerfile/distribtest/python_bullseye_x64.current_version
  23. 2
      tools/dockerfile/distribtest/python_bullseye_x64/Dockerfile
  24. 1
      tools/dockerfile/distribtest/python_bullseye_x86.current_version
  25. 2
      tools/dockerfile/distribtest/python_bullseye_x86/Dockerfile
  26. 1
      tools/dockerfile/distribtest/python_buster_x64.current_version
  27. 1
      tools/dockerfile/distribtest/python_buster_x86.current_version
  28. 1
      tools/dockerfile/distribtest/python_dev_bullseye_x64.current_version
  29. 2
      tools/dockerfile/distribtest/python_dev_bullseye_x64/Dockerfile
  30. 1
      tools/dockerfile/distribtest/python_dev_bullseye_x86.current_version
  31. 2
      tools/dockerfile/distribtest/python_dev_bullseye_x86/Dockerfile
  32. 1
      tools/dockerfile/distribtest/python_dev_buster_x64.current_version
  33. 1
      tools/dockerfile/distribtest/python_dev_buster_x86.current_version
  34. 41
      tools/run_tests/artifacts/artifact_targets.py
  35. 12
      tools/run_tests/artifacts/build_artifact_python.bat
  36. 8
      tools/run_tests/artifacts/distribtest_targets.py
  37. 2
      tools/run_tests/helper_scripts/run_python.sh
  38. 12
      tools/run_tests/run_tests.py

@ -101,7 +101,6 @@ CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"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",
@ -597,7 +596,7 @@ setuptools.setup(
packages=list(PACKAGES),
package_dir=PACKAGE_DIRECTORIES,
package_data=PACKAGE_DATA,
python_requires=">=3.7",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRES,
setup_requires=SETUP_REQUIRES,

@ -10,7 +10,7 @@ Package for gRPC Python.
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Installation
------------

@ -56,7 +56,7 @@ setuptools.setup(
url="https://grpc.io",
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
)

@ -5,7 +5,7 @@ Channelz is a live debug tool in gRPC Python.
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Dependencies
------------

@ -48,10 +48,6 @@ CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@ -101,7 +97,7 @@ setuptools.setup(
url="https://grpc.io",
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS,

@ -57,7 +57,7 @@ setuptools.setup(
url="https://grpc.io",
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
)

@ -5,7 +5,7 @@ Reference package for GRPC Python health checking.
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Dependencies
------------

@ -47,10 +47,6 @@ CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@ -100,7 +96,7 @@ setuptools.setup(
classifiers=CLASSIFIERS,
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS,

@ -286,7 +286,7 @@ setuptools.setup(
classifiers=CLASSIFIERS,
ext_modules=extension_modules(),
packages=list(PACKAGES),
python_requires=">=3.7",
python_requires=">=3.8",
install_requires=[
"grpcio=={version}".format(version=grpc_version.VERSION),
"setuptools>=59.6.0",

@ -5,7 +5,7 @@ Reference package for reflection in GRPC Python.
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Dependencies
------------

@ -48,10 +48,6 @@ CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@ -101,7 +97,7 @@ setuptools.setup(
url="https://grpc.io",
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS,

@ -5,7 +5,7 @@ Reference package for GRPC Python status proto mapping.
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Dependencies
------------

@ -47,10 +47,6 @@ CLASSIFIERS = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@ -97,7 +93,7 @@ setuptools.setup(
classifiers=CLASSIFIERS,
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages("."),
python_requires=">=3.6",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
cmdclass=COMMAND_CLASS,
)

@ -5,7 +5,7 @@ Testing utilities for gRPC Python
Supported Python Versions
-------------------------
Python >= 3.7
Python >= 3.8
Dependencies
------------

@ -34,12 +34,16 @@ while read -r RUNTIME; do
ARTIFACT=$(find "${ARTIFACT_DIRECTORY}" -regex '.*grpcio-[0-9\.]+.+-cp'"${BARE_VERSION}"'-cp'"${BARE_VERSION}"'m?-manylinux.+x86_64\.whl' | sort -r | head -n 1)
ARTIFACT_BASENAME=$(basename "${ARTIFACT}")
# Upload artifact to GCS so GCF can access it.
# A 1 day retention policy is active on this bucket.
gsutil cp "${ARTIFACT}" "gs://${BUCKET_NAME}/${RUN_ID}/${ARTIFACT_BASENAME}"
echo "Testing runtime ${RUNTIME} with artifact ${ARTIFACT_BASENAME}"
./run_single.sh "${RUNTIME}" "https://storage.googleapis.com/${BUCKET_NAME}/${RUN_ID}/${ARTIFACT_BASENAME}" || FAILED_RUNTIMES="${FAILED_RUNTIMES} ${RUNTIME}"
if [ "$ARTIFACT_BASENAME" != "" ]; then
# Upload artifact to GCS so GCF can access it.
# A 1 day retention policy is active on this bucket.
gsutil cp "${ARTIFACT}" "gs://${BUCKET_NAME}/${RUN_ID}/${ARTIFACT_BASENAME}"
echo "Testing runtime ${RUNTIME} with artifact ${ARTIFACT_BASENAME}"
./run_single.sh "${RUNTIME}" "https://storage.googleapis.com/${BUCKET_NAME}/${RUN_ID}/${ARTIFACT_BASENAME}" || FAILED_RUNTIMES="${FAILED_RUNTIMES} ${RUNTIME}"
else
echo "Skip testing ${RUNTIME} because we no longer support this version"
fi
done<<<"${RUNTIMES}"
if [ "$FAILED_RUNTIMES" != "" ]

@ -38,13 +38,13 @@ DOCKERIMAGE_CURRENT_VERSIONS = {
"tools/dockerfile/distribtest/php7_debian10_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/php7_debian10_x64@sha256:e760a60f2dce2dada571d9b07447a9f99ffeeb366a309dbbb5dc0a43991c22dc",
"tools/dockerfile/distribtest/python_alpine_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_alpine_x64@sha256:699ac7b86199406fa27e88f30a1c623ef34ac33f6d9330fd13a6f6457ee4e19f",
"tools/dockerfile/distribtest/python_arch_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_arch_x64@sha256:2c1adadeb010e107132cf5137f32a2d18727796631245b110cc74f69c07502e1",
"tools/dockerfile/distribtest/python_buster_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_buster_x64@sha256:e501dc8e2f4ab9cd4382974759a879a27c065c8fed5327f538764298fc5c4972",
"tools/dockerfile/distribtest/python_buster_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_buster_x86@sha256:185fbb174525d67b6146f4d233c804c589b0b57d783bb1bf95bc47cfe792754e",
"tools/dockerfile/distribtest/python_bullseye_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_bullseye_x64@sha256:3dd069d9624f9c2a3b398f4017de7d020481e02be9a9f3895b50f6ea3e6f724d",
"tools/dockerfile/distribtest/python_bullseye_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_bullseye_x86@sha256:3bf999ddafc0c7e7c45aeafbbecaf8dfba808e0bcff6f02240d6f5c63066dea8",
"tools/dockerfile/distribtest/python_centos7_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_centos7_x64@sha256:39afaa687cb8516eef1621ed789326fdde2014fd3c81d11a1ded72f2d5285fe1",
"tools/dockerfile/distribtest/python_dev_alpine3.7_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_alpine3.7_x64@sha256:7c08f67211a49eb72ad08c29de5c64a914c066d9c1670b712e717571b8d5c7e2",
"tools/dockerfile/distribtest/python_dev_arch_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_arch_x64@sha256:29f179ef2083ee6addd57e90f58781fdc1cb5dc3dd3e228da1af38785b921f35",
"tools/dockerfile/distribtest/python_dev_buster_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_buster_x64@sha256:e30d6efdeac24e5136cc169d503a239df22147bfb121d27feb1f87d58a8fe64e",
"tools/dockerfile/distribtest/python_dev_buster_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_buster_x86@sha256:179146fd5d5cc15846c6bf0284c2e261f383caf944559d2d9f7a5af0e0f7152d",
"tools/dockerfile/distribtest/python_dev_bullseye_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x64@sha256:c14d39ef2d7e4b8267c805aeee754c85286cc7ac9ad9fb553b1bf61b9e95e7af",
"tools/dockerfile/distribtest/python_dev_bullseye_x86.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x86@sha256:e152acde58bcdee5c4c97532c00087f2e7ba6a19508d8d22e90abd6dcd3ba669",
"tools/dockerfile/distribtest/python_dev_centos7_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_centos7_x64@sha256:e6e9a1b23a0a543050db91e17d621aa899bad04308adaf961c11fa88ba941a95",
"tools/dockerfile/distribtest/python_dev_fedora36_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_fedora36_x64@sha256:d10ea0c54ecaa861b67942b4adc69178585cd071c9d0c8997fa274a362beea55",
"tools/dockerfile/distribtest/python_dev_ubuntu2004_x64.current_version": "docker://us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_ubuntu2004_x64@sha256:91f0d88c43ec52ecd63f99acb424c88ff9a67fa046fae207a75e99bee37eef11",

@ -14,8 +14,8 @@
load("//bazel:grpc_build_system.bzl", "grpc_package")
load("//tools/bazelify_tests:build_defs.bzl", "grpc_build_artifact_task", "grpc_run_cpp_distribtest_test", "grpc_run_distribtest_test", "grpc_run_simple_command_test", "grpc_run_tests_harness_test")
load(":portability_tests.bzl", "generate_run_tests_portability_tests")
load(":bazel_distribtests.bzl", "generate_bazel_distribtests")
load(":portability_tests.bzl", "generate_run_tests_portability_tests")
load(":strict_tests.bzl", "generate_strict_tests")
licenses(["notice"])
@ -269,14 +269,15 @@ grpc_build_artifact_task(
# Python artifact build tasks
grpc_build_artifact_task(
name = "artifact_python_linux_x64_manylinux2014_cp311",
build_script = "build_artifact_python_linux_x64_cp311.sh",
name = "artifact_python_linux_x64_manylinux2014_cp312",
build_script = "build_artifact_python_linux_x64_cp312.sh",
docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
)
# Building 39 here since default Python version in testing image is 3.9.
grpc_build_artifact_task(
name = "artifact_python_linux_x64_manylinux2014_cp37",
build_script = "build_artifact_python_linux_x64_cp37.sh",
name = "artifact_python_linux_x64_manylinux2014_cp39",
build_script = "build_artifact_python_linux_x64_cp39.sh",
docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
)
@ -286,8 +287,8 @@ grpc_build_artifact_task(
name = "package_python_linux",
# TODO(jtattermusch): add more python artifacts once they are migrated from artifact_targets.py
artifact_deps = [
"artifact_python_linux_x64_manylinux2014_cp311",
"artifact_python_linux_x64_manylinux2014_cp37",
"artifact_python_linux_x64_manylinux2014_cp312",
"artifact_python_linux_x64_manylinux2014_cp39",
],
build_script = "build_package_python_linux.sh",
docker_image_version = "tools/dockerfile/grpc_artifact_python_manylinux2014_x64.current_version",
@ -393,18 +394,18 @@ test_suite(
# Python distribtests
grpc_run_distribtest_test(
name = "distribtest_python_linux_x64_buster",
name = "distribtest_python_linux_x64_bullseye",
artifact_deps = [
"package_python_linux",
],
build_script = "run_distribtest_python_linux.sh",
docker_image_version = "tools/dockerfile/distribtest/python_buster_x64.current_version",
docker_image_version = "tools/dockerfile/distribtest/python_bullseye_x64.current_version",
)
test_suite(
name = "python_distribtests_linux",
tests = [
":distribtest_python_linux_x64_buster",
":distribtest_python_linux_x64_bullseye",
],
)
@ -420,8 +421,8 @@ test_suite(
":artifact_protoc_linux_aarch64_build_test",
":artifact_protoc_linux_x64_build_test",
":artifact_protoc_linux_x86_build_test",
":artifact_python_linux_x64_manylinux2014_cp311_build_test",
":artifact_python_linux_x64_manylinux2014_cp37_build_test",
":artifact_python_linux_x64_manylinux2014_cp312_build_test",
":artifact_python_linux_x64_manylinux2014_cp38_build_test",
":package_csharp_linux_build_test",
":package_python_linux_build_test",
],

@ -17,8 +17,8 @@ set -ex
# env variable values extracted from PythonArtifact in tools/run_tests/artifacts/artifact_targets.py
# TODO(jtattermusch): find a better way of configuring the python artifact build (the current approach mostly serves as a demonstration)
export PYTHON=/opt/python/cp311-cp311/bin/python
export PIP=/opt/python/cp311-cp311/bin/pip
export PYTHON=/opt/python/cp312-cp312/bin/python
export PIP=/opt/python/cp312-cp312/bin/pip
export GRPC_SKIP_PIP_CYTHON_UPGRADE=TRUE
export GRPC_RUN_AUDITWHEEL_REPAIR=TRUE
export GRPC_BUILD_GRPCIO_TOOLS_DEPENDENTS=TRUE

@ -17,8 +17,8 @@ set -ex
# env variable values extracted from PythonArtifact in tools/run_tests/artifacts/artifact_targets.py
# TODO(jtattermusch): find a better way of configuring the python artifact build (the current approach mostly serves as a demonstration)
export PYTHON=/opt/python/cp37-cp37m/bin/python
export PIP=/opt/python/cp37-cp37m/bin/pip
export PYTHON=/opt/python/cp39-cp39/bin/python
export PIP=/opt/python/cp39-cp39/bin/pip
export GRPC_SKIP_PIP_CYTHON_UPGRADE=TRUE
export GRPC_RUN_AUDITWHEEL_REPAIR=TRUE
export GRPC_BUILD_GRPCIO_TOOLS_DEPENDENTS=TRUE

@ -327,7 +327,7 @@ setuptools.setup(
classifiers=CLASSIFIERS,
ext_modules=extension_modules(),
packages=setuptools.find_packages("."),
python_requires=">=3.7",
python_requires=">=3.8",
install_requires=[
"protobuf>=4.21.6,<5.0dev",
"grpcio>={version}".format(version=grpc_version.VERSION),

@ -55,7 +55,7 @@ setuptools.setup(
author_email="grpc-io@googlegroups.com",
url="https://grpc.io",
license="Apache License 2.0",
python_requires=">=3.7",
python_requires=">=3.8",
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
classifiers=CLASSIFIERS,

@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_bullseye_x64:38233270df023245a398dfa3460302eed4d0d5ca@sha256:3dd069d9624f9c2a3b398f4017de7d020481e02be9a9f3895b50f6ea3e6f724d

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM debian:buster
FROM debian:bullseye
RUN apt-get update && apt-get install -y python3 python3-pip
RUN python3 -m pip install virtualenv==16.7.9

@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_bullseye_x86:f4c57dce9d3d95f2062555abdc6b0fc9df86f6d9@sha256:3bf999ddafc0c7e7c45aeafbbecaf8dfba808e0bcff6f02240d6f5c63066dea8

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM i386/debian:buster
FROM i386/debian:bullseye
RUN apt-get update && apt-get install -y python3 python3-pip

@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_buster_x64:e5ed17c49c3b3ea2476c09c249ee99615e2a2744@sha256:e501dc8e2f4ab9cd4382974759a879a27c065c8fed5327f538764298fc5c4972

@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_buster_x86:c6c77a4a3d0f571e7b96269f193eb5b6bc68b40d@sha256:185fbb174525d67b6146f4d233c804c589b0b57d783bb1bf95bc47cfe792754e

@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x64:2ba38f738117f4ddbbb2930e0cf99025214cfeb8@sha256:c14d39ef2d7e4b8267c805aeee754c85286cc7ac9ad9fb553b1bf61b9e95e7af

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM debian:buster
FROM debian:bullseye
RUN apt-get update && apt-get install -y python3 python3-pip
RUN python3 -m pip install virtualenv==16.7.9

@ -0,0 +1 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_bullseye_x86:475606cf6ceee84f7088f1d5d950f0f262173399@sha256:e152acde58bcdee5c4c97532c00087f2e7ba6a19508d8d22e90abd6dcd3ba669

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
FROM i386/debian:buster
FROM i386/debian:bullseye
RUN apt-get update && apt-get install -y python3 python3-pip

@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_buster_x64:f72da78097dfc18225ef0da25da07a5c220bdd47@sha256:e30d6efdeac24e5136cc169d503a239df22147bfb121d27feb1f87d58a8fe64e

@ -1 +0,0 @@
us-docker.pkg.dev/grpc-testing/testing-images-public/python_dev_buster_x86:9966610e9ebd738965baa64ba7230385e088db5b@sha256:179146fd5d5cc15846c6bf0284c2e261f383caf944559d2d9f7a5af0e0f7152d

@ -397,29 +397,20 @@ def targets():
ProtocArtifact("macos", "x64", presubmit=True),
ProtocArtifact("windows", "x64", presubmit=True),
ProtocArtifact("windows", "x86", presubmit=True),
PythonArtifact(
"manylinux2014", "x64", "cp37-cp37m", presubmit=True
),
PythonArtifact("manylinux2014", "x64", "cp38-cp38", presubmit=True),
PythonArtifact("manylinux2014", "x64", "cp39-cp39"),
PythonArtifact("manylinux2014", "x64", "cp39-cp39", presubmit=True),
PythonArtifact("manylinux2014", "x64", "cp310-cp310"),
PythonArtifact("manylinux2014", "x64", "cp311-cp311"),
PythonArtifact(
"manylinux2014", "x64", "cp312-cp312", presubmit=True
),
PythonArtifact(
"manylinux2014", "x86", "cp37-cp37m", presubmit=True
),
PythonArtifact("manylinux2014", "x86", "cp38-cp38", presubmit=True),
PythonArtifact("manylinux2014", "x86", "cp39-cp39"),
PythonArtifact("manylinux2014", "x86", "cp39-cp39", presubmit=True),
PythonArtifact("manylinux2014", "x86", "cp310-cp310"),
PythonArtifact("manylinux2014", "x86", "cp311-cp311"),
PythonArtifact(
"manylinux2014", "x86", "cp312-cp312", presubmit=True
),
PythonArtifact(
"manylinux2014", "aarch64", "cp37-cp37m", presubmit=True
),
PythonArtifact(
"manylinux2014", "aarch64", "cp38-cp38", presubmit=True
),
@ -429,50 +420,38 @@ def targets():
PythonArtifact(
"manylinux2014", "aarch64", "cp312-cp312", presubmit=True
),
PythonArtifact(
"linux_extra", "armv7", "cp37-cp37m", presubmit=True
),
PythonArtifact("linux_extra", "armv7", "cp38-cp38"),
PythonArtifact("linux_extra", "armv7", "cp38-cp38", presubmit=True),
PythonArtifact("linux_extra", "armv7", "cp39-cp39"),
PythonArtifact("linux_extra", "armv7", "cp310-cp310"),
PythonArtifact("linux_extra", "armv7", "cp311-cp311"),
PythonArtifact(
"linux_extra", "armv7", "cp312-cp312", presubmit=True
),
PythonArtifact("musllinux_1_1", "x64", "cp38-cp38", presubmit=True),
PythonArtifact("musllinux_1_1", "x64", "cp39-cp39"),
PythonArtifact("musllinux_1_1", "x64", "cp310-cp310"),
PythonArtifact("musllinux_1_1", "x64", "cp311-cp311"),
PythonArtifact(
"musllinux_1_1", "x64", "cp312-cp312", presubmit=True
),
PythonArtifact(
"musllinux_1_1", "x64", "cp37-cp37m", presubmit=True
),
PythonArtifact("musllinux_1_1", "x64", "cp38-cp38"),
PythonArtifact("musllinux_1_1", "x64", "cp39-cp39"),
PythonArtifact("musllinux_1_1", "x86", "cp38-cp38", presubmit=True),
PythonArtifact("musllinux_1_1", "x86", "cp39-cp39"),
PythonArtifact("musllinux_1_1", "x86", "cp310-cp310"),
PythonArtifact("musllinux_1_1", "x86", "cp311-cp311"),
PythonArtifact(
"musllinux_1_1", "x86", "cp312-cp312", presubmit=True
),
PythonArtifact(
"musllinux_1_1", "x86", "cp37-cp37m", presubmit=True
),
PythonArtifact("musllinux_1_1", "x86", "cp38-cp38"),
PythonArtifact("musllinux_1_1", "x86", "cp39-cp39"),
PythonArtifact("macos", "x64", "python3.7", presubmit=True),
PythonArtifact("macos", "x64", "python3.8"),
PythonArtifact("macos", "x64", "python3.8", presubmit=True),
PythonArtifact("macos", "x64", "python3.9"),
PythonArtifact("macos", "x64", "python3.10"),
PythonArtifact("macos", "x64", "python3.11"),
PythonArtifact("macos", "x64", "python3.12", presubmit=True),
PythonArtifact("windows", "x86", "Python37_32bit", presubmit=True),
PythonArtifact("windows", "x86", "Python38_32bit"),
PythonArtifact("windows", "x86", "Python38_32bit", presubmit=True),
PythonArtifact("windows", "x86", "Python39_32bit"),
PythonArtifact("windows", "x86", "Python310_32bit"),
PythonArtifact("windows", "x86", "Python311_32bit"),
PythonArtifact("windows", "x86", "Python312_32bit", presubmit=True),
PythonArtifact("windows", "x64", "Python37", presubmit=True),
PythonArtifact("windows", "x64", "Python38"),
PythonArtifact("windows", "x64", "Python38", presubmit=True),
PythonArtifact("windows", "x64", "Python39"),
PythonArtifact("windows", "x64", "Python310"),
PythonArtifact("windows", "x64", "Python311"),

@ -19,19 +19,7 @@ set PATH=C:\%1;C:\%1\scripts;%PATH%
set PATH=C:\msys64\mingw%2\bin;C:\tools\msys64\mingw%2\bin;%PATH%
:end_mingw64_installation
@rem check if building for Python3.7 in windows
set IS_PYTHON_37=false
If "%1" == "Python37_32bit" set IS_PYTHON_37=true
If "%1" == "Python37" set IS_PYTHON_37=true
@rem Python3.7 in windows doesn't support high version of setuptools
if "%IS_PYTHON_37%" == "true" (
python -m pip install --upgrade six
python -m pip install --upgrade setuptools==59.6.0
) else (
python -m pip install --upgrade pip six setuptools wheel
)
python -m pip install --upgrade "cython<3.0.0rc1"
python -m pip install -rrequirements.txt --user

@ -443,8 +443,8 @@ def targets():
CSharpDistribTest("windows", "x86", presubmit=True),
CSharpDistribTest("windows", "x64", presubmit=True),
# Python
PythonDistribTest("linux", "x64", "buster", presubmit=True),
PythonDistribTest("linux", "x86", "buster", presubmit=True),
PythonDistribTest("linux", "x64", "bullseye", presubmit=True),
PythonDistribTest("linux", "x86", "bullseye", presubmit=True),
PythonDistribTest("linux", "x64", "fedora36"),
PythonDistribTest("linux", "x64", "arch"),
PythonDistribTest("linux", "x64", "alpine"),
@ -456,10 +456,10 @@ def targets():
"linux", "x64", "alpine3.7", source=True, presubmit=True
),
PythonDistribTest(
"linux", "x64", "buster", source=True, presubmit=True
"linux", "x64", "bullseye", source=True, presubmit=True
),
PythonDistribTest(
"linux", "x86", "buster", source=True, presubmit=True
"linux", "x86", "bullseye", source=True, presubmit=True
),
PythonDistribTest("linux", "x64", "fedora36", source=True),
PythonDistribTest("linux", "x64", "arch", source=True),

@ -19,7 +19,7 @@ set -ex
cd "$(dirname "$0")/../../.."
# TODO(jtattermusch): is the $(pwd) prefix actually useful?
PYTHON="$(pwd)/${1:-py37/bin/python}"
PYTHON="$(pwd)/${1:-py38/bin/python}"
ROOT=$(pwd)

@ -799,13 +799,6 @@ class PythonLanguage(object):
# TODO: Supported version range should be defined by a single
# source of truth.
python37_config = _python_config_generator(
name="py37",
major="3",
minor="7",
bits=bits,
config_vars=config_vars,
)
python38_config = _python_config_generator(
name="py38",
major="3",
@ -864,11 +857,9 @@ class PythonLanguage(object):
else:
# Default set tested on master. Test oldest and newest.
return (
python37_config,
python38_config,
python312_config,
)
elif args.compiler == "python3.7":
return (python37_config,)
elif args.compiler == "python3.8":
return (python38_config,)
elif args.compiler == "python3.9":
@ -887,7 +878,6 @@ class PythonLanguage(object):
return (python39_config,)
elif args.compiler == "all_the_cpythons":
return (
python37_config,
python38_config,
python39_config,
python310_config,

Loading…
Cancel
Save