Add python_requires field to grpcio-* packages (#27495)
- Update the run_tests.py and distrib tests
- Update the Dockerfiles
diff --git a/setup.py b/setup.py
index 4d34c43..1a72c5c 100644
--- a/setup.py
+++ b/setup.py
@@ -536,6 +536,7 @@
packages=list(PACKAGES),
package_dir=PACKAGE_DIRECTORIES,
package_data=PACKAGE_DATA,
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
extras_require=EXTRAS_REQUIRES,
setup_requires=SETUP_REQUIRES,
diff --git a/src/python/grpcio_admin/setup.py b/src/python/grpcio_admin/setup.py
index 08f2a6e..2d966cd 100644
--- a/src/python/grpcio_admin/setup.py
+++ b/src/python/grpcio_admin/setup.py
@@ -55,5 +55,6 @@
url='https://grpc.io',
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES)
diff --git a/src/python/grpcio_channelz/setup.py b/src/python/grpcio_channelz/setup.py
index fc0f157..cec1ea2 100644
--- a/src/python/grpcio_channelz/setup.py
+++ b/src/python/grpcio_channelz/setup.py
@@ -98,6 +98,7 @@
url='https://grpc.io',
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS)
diff --git a/src/python/grpcio_csds/setup.py b/src/python/grpcio_csds/setup.py
index e0eb60a..c89c6b9 100644
--- a/src/python/grpcio_csds/setup.py
+++ b/src/python/grpcio_csds/setup.py
@@ -56,5 +56,6 @@
url='https://grpc.io',
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES)
diff --git a/src/python/grpcio_health_checking/setup.py b/src/python/grpcio_health_checking/setup.py
index 4570e5c..7491bd4 100644
--- a/src/python/grpcio_health_checking/setup.py
+++ b/src/python/grpcio_health_checking/setup.py
@@ -96,6 +96,7 @@
classifiers=CLASSIFIERS,
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS)
diff --git a/src/python/grpcio_reflection/setup.py b/src/python/grpcio_reflection/setup.py
index 991bf38..f90a3cc 100644
--- a/src/python/grpcio_reflection/setup.py
+++ b/src/python/grpcio_reflection/setup.py
@@ -97,6 +97,7 @@
url='https://grpc.io',
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
cmdclass=COMMAND_CLASS)
diff --git a/src/python/grpcio_status/setup.py b/src/python/grpcio_status/setup.py
index da9414c..23bd11c 100644
--- a/src/python/grpcio_status/setup.py
+++ b/src/python/grpcio_status/setup.py
@@ -94,5 +94,6 @@
classifiers=CLASSIFIERS,
package_dir=PACKAGE_DIRECTORIES,
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
cmdclass=COMMAND_CLASS)
diff --git a/tools/distrib/python/grpcio_tools/setup.py b/tools/distrib/python/grpcio_tools/setup.py
index 07a3092..6b842f5 100644
--- a/tools/distrib/python/grpcio_tools/setup.py
+++ b/tools/distrib/python/grpcio_tools/setup.py
@@ -288,6 +288,7 @@
classifiers=CLASSIFIERS,
ext_modules=extension_modules(),
packages=setuptools.find_packages('.'),
+ python_requires='>=3.6',
install_requires=[
'protobuf>=3.5.0.post1, < 4.0dev',
'grpcio>={version}'.format(version=grpc_version.VERSION),
diff --git a/tools/distrib/python/xds_protos/setup.py b/tools/distrib/python/xds_protos/setup.py
index 3acb218..4f6fbf9 100644
--- a/tools/distrib/python/xds_protos/setup.py
+++ b/tools/distrib/python/xds_protos/setup.py
@@ -47,6 +47,7 @@
author_email='grpc-io@googlegroups.com',
url='https://grpc.io',
license='Apache License 2.0',
+ python_requires='>=3.6',
install_requires=INSTALL_REQUIRES,
setup_requires=SETUP_REQUIRES,
classifiers=CLASSIFIERS)
diff --git a/tools/dockerfile/distribtest/python_dev_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/python_dev_buster_x64/Dockerfile
similarity index 97%
rename from tools/dockerfile/distribtest/python_dev_jessie_x64/Dockerfile
rename to tools/dockerfile/distribtest/python_dev_buster_x64/Dockerfile
index e4ee142..13cf328 100644
--- a/tools/dockerfile/distribtest/python_dev_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_dev_buster_x64/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM debian:jessie
+FROM debian:buster
RUN apt-get update && apt-get install -y python3 python3-pip
RUN pip3 install virtualenv==16.7.9
diff --git a/tools/dockerfile/distribtest/python_dev_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/python_dev_buster_x86/Dockerfile
similarity index 97%
rename from tools/dockerfile/distribtest/python_dev_jessie_x86/Dockerfile
rename to tools/dockerfile/distribtest/python_dev_buster_x86/Dockerfile
index b59e4b4..77fadd5 100644
--- a/tools/dockerfile/distribtest/python_dev_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/python_dev_buster_x86/Dockerfile
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM i386/debian:jessie
+FROM i386/debian:buster
RUN apt-get update && apt-get install -y python3 python3-pip
diff --git a/tools/dockerfile/distribtest/python_dev_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/python_dev_fedora34_x64/Dockerfile
similarity index 94%
rename from tools/dockerfile/distribtest/python_dev_fedora23_x64/Dockerfile
rename to tools/dockerfile/distribtest/python_dev_fedora34_x64/Dockerfile
index cfa3d93..26df8e8 100644
--- a/tools/dockerfile/distribtest/python_dev_fedora23_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_dev_fedora34_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015 gRPC authors.
+# Copyright 2021 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-FROM fedora:23
+FROM fedora:34
RUN yum clean all && yum update -y && yum install -y python3 python3-pip
RUN pip3 install virtualenv==16.7.9
diff --git a/tools/run_tests/artifacts/distribtest_targets.py b/tools/run_tests/artifacts/distribtest_targets.py
index ad46605..6980e60 100644
--- a/tools/run_tests/artifacts/distribtest_targets.py
+++ b/tools/run_tests/artifacts/distribtest_targets.py
@@ -353,10 +353,10 @@
PythonDistribTest('linux', 'x64', 'ubuntu1804'),
PythonDistribTest('linux', 'aarch64', 'python38_buster'),
PythonDistribTest('linux', 'x64', 'alpine3.7', source=True),
- PythonDistribTest('linux', 'x64', 'jessie', source=True),
- PythonDistribTest('linux', 'x86', 'jessie', source=True),
+ PythonDistribTest('linux', 'x64', 'buster', source=True),
+ PythonDistribTest('linux', 'x86', 'buster', source=True),
PythonDistribTest('linux', 'x64', 'centos7', source=True),
- PythonDistribTest('linux', 'x64', 'fedora23', source=True),
+ PythonDistribTest('linux', 'x64', 'fedora34', source=True),
PythonDistribTest('linux', 'x64', 'arch', source=True),
PythonDistribTest('linux', 'x64', 'ubuntu1804', source=True),
# Ruby
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index a944bef..2be68c8 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -675,9 +675,7 @@
def _python_manager_name(self):
"""Choose the docker image to use based on python version."""
- if self.args.compiler in [
- 'python2.7', 'python3.5', 'python3.6', 'python3.7', 'python3.8'
- ]:
+ if self.args.compiler in ['python3.6', 'python3.7', 'python3.8']:
return 'stretch_' + self.args.compiler[len('python'):]
elif self.args.compiler == 'python_alpine':
return 'alpine'
@@ -729,16 +727,6 @@
builder_prefix_arguments,
venv_relative_python, toolchain, runner,
test_command, args.iomgr_platform)
- python27_config = _python_config_generator(name='py27',
- major='2',
- minor='7',
- bits=bits,
- config_vars=config_vars)
- python35_config = _python_config_generator(name='py35',
- major='3',
- minor='5',
- bits=bits,
- config_vars=config_vars)
python36_config = _python_config_generator(name='py36',
major='3',
minor='6',
@@ -791,14 +779,9 @@
return (python38_config,)
else:
return (
- python35_config,
python37_config,
python38_config,
)
- elif args.compiler == 'python2.7':
- return (python27_config,)
- elif args.compiler == 'python3.5':
- return (python35_config,)
elif args.compiler == 'python3.6':
return (python36_config,)
elif args.compiler == 'python3.7':
@@ -815,8 +798,6 @@
return (python38_config,)
elif args.compiler == 'all_the_cpythons':
return (
- python27_config,
- python35_config,
python36_config,
python37_config,
python38_config,