You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by tv...@apache.org on 2022/04/21 15:07:47 UTC
[beam] branch master updated: [BEAM-13657] Sunset python 3.6 (#17252)
This is an automated email from the ASF dual-hosted git repository.
tvalentyn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 378338c1940 [BEAM-13657] Sunset python 3.6 (#17252)
378338c1940 is described below
commit 378338c1940109aba2fa9277d7c4079ed5d6168f
Author: Anand Inguva <34...@users.noreply.github.com>
AuthorDate: Thu Apr 21 15:07:40 2022 +0000
[BEAM-13657] Sunset python 3.6 (#17252)
---
.github/workflows/build_wheels.yml | 8 +-
.github/workflows/python_tests.yml | 5 +-
.test-infra/jenkins/PythonTestProperties.groovy | 1 -
.test-infra/jenkins/README.md | 3 +-
.../job_PostCommit_PortableJar_Flink.groovy | 1 -
.../jenkins/job_PreCommit_Portable_Python.groovy | 2 +-
build.gradle.kts | 11 +-
.../org/apache/beam/gradle/BeamModulePlugin.groovy | 1 -
sdks/python/container/build.gradle | 3 -
.../container/py36/base_image_requirements.txt | 159 ---------------------
sdks/python/container/py36/build.gradle | 28 ----
sdks/python/container/run_validatescontainer.sh | 2 -
sdks/python/setup.py | 3 +-
sdks/python/test-suites/dataflow/py36/build.gradle | 24 ----
sdks/python/test-suites/direct/py36/build.gradle | 24 ----
sdks/python/test-suites/gradle.properties | 2 +-
sdks/python/test-suites/portable/py36/build.gradle | 26 ----
sdks/python/test-suites/tox/py36/build.gradle | 32 -----
sdks/python/tox.ini | 14 +-
settings.gradle.kts | 5 -
20 files changed, 18 insertions(+), 336 deletions(-)
diff --git a/.github/workflows/build_wheels.yml b/.github/workflows/build_wheels.yml
index a3ff21bb668..f2066b14e18 100644
--- a/.github/workflows/build_wheels.yml
+++ b/.github/workflows/build_wheels.yml
@@ -207,13 +207,13 @@ jobs:
strategy:
matrix:
os_python: [
- {"os": "ubuntu-latest", "python": "cp36-* cp37-* cp38-* cp39-*"},
- {"os": "macos-latest", "python": "cp36-* cp37-* cp38-* cp39-*"},
- {"os": "windows-latest", "python": "cp36-* cp37-* cp38-* cp39-*"},
+ {"os": "ubuntu-latest", "python": "cp37-* cp38-* cp39-*"},
+ {"os": "macos-latest", "python": "cp37-* cp38-* cp39-*"},
+ {"os": "windows-latest", "python": "cp37-* cp38-* cp39-*"},
]
arch: [auto]
include:
- - os_python: {"os": "ubuntu-latest", "python": "cp36-* cp37-* cp38-* cp39-*"}
+ - os_python: {"os": "ubuntu-latest", "python": "cp37-* cp38-* cp39-*"}
arch: aarch64
steps:
- name: Download python source distribution from artifacts
diff --git a/.github/workflows/python_tests.yml b/.github/workflows/python_tests.yml
index dc6905e2410..e0eea31b379 100644
--- a/.github/workflows/python_tests.yml
+++ b/.github/workflows/python_tests.yml
@@ -97,7 +97,6 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
params: [
- {"py_ver": "3.6", "tox_env": "py36"},
{"py_ver": "3.7", "tox_env": "py37"},
{"py_ver": "3.8", "tox_env": "py38"},
{"py_ver": "3.9", "tox_env": "py39"},
@@ -136,7 +135,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
- python: [3.6, 3.7, 3.8, 3.9]
+ python: [3.7, 3.8, 3.9]
steps:
- name: Checkout code
uses: actions/checkout@v2
@@ -164,7 +163,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
- python: [3.6, 3.7, 3.8, 3.9]
+ python: [3.7, 3.8, 3.9]
steps:
- name: Checkout code
uses: actions/checkout@v2
diff --git a/.test-infra/jenkins/PythonTestProperties.groovy b/.test-infra/jenkins/PythonTestProperties.groovy
index e61cffad47d..06e32ff4881 100644
--- a/.test-infra/jenkins/PythonTestProperties.groovy
+++ b/.test-infra/jenkins/PythonTestProperties.groovy
@@ -20,7 +20,6 @@ class PythonTestProperties {
// Indicates all supported Python versions.
// This must be sorted in ascending order.
final static List<String> ALL_SUPPORTED_VERSIONS = [
- '3.6',
'3.7',
'3.8',
'3.9'
diff --git a/.test-infra/jenkins/README.md b/.test-infra/jenkins/README.md
index e878743ba12..ab59c0c34f6 100644
--- a/.test-infra/jenkins/README.md
+++ b/.test-infra/jenkins/README.md
@@ -118,7 +118,6 @@ Beam Jenkins overview page: [link](https://ci-beam.apache.org/)
| beam_PostCommit_Python_Chicago_Taxi_Example_Flink | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python_Chicago_Taxi_Flink/), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python_Chicago_Taxi_Flink_PR/) | `Run Chicago Taxi on Flink` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python_Chicago_Taxi_Flink/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python_Chicago_Taxi_Flink) |
| beam_PostCommit_Python_MongoDBIO_IT | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python_MongoDBIO_IT), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python_MongoDBIO_IT_PR/) | `Run Python MongoDBIO_IT` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python_MongoDBIO_IT/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python_MongoDBIO_IT) |
| beam_PostCommit_Python_VR_Spark | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python_VR_Spark/), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python_VR_Spark/) | `Run Python Spark ValidatesRunner` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python_VR_Spark/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python_VR_Spark) |
-| beam_PostCommit_Python36 | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python36), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python36_PR/) | `Run Python 3.6 PostCommit` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python36/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python36) |
| beam_PostCommit_Python37 | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python37), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python37_PR/) | `Run Python 3.7 PostCommit` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python37/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python37) |
| beam_PostCommit_Python38 | [cron](https://ci-beam.apache.org/job/beam_PostCommit_Python38), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_Python38_PR/) | `Run Python 3.8 PostCommit` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_Python38/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_Python38) |
| beam_PostCommit_SQL | [cron](https://ci-beam.apache.org/job/beam_PostCommit_SQL/), [phrase](https://ci-beam.apache.org/job/beam_PostCommit_SQL_PR/) | `Run SQL PostCommit` | [![Build Status](https://ci-beam.apache.org/job/beam_PostCommit_SQL/badge/icon)](https://ci-beam.apache.org/job/beam_PostCommit_SQL) |
@@ -253,4 +252,4 @@ Beam Jenkins overview page: [link](https://ci-beam.apache.org/)
retest this please
```
-* Last update (mm/dd/yyyy): 25/01/2022
+* Last update (mm/dd/yyyy): 04/04/2022
diff --git a/.test-infra/jenkins/job_PostCommit_PortableJar_Flink.groovy b/.test-infra/jenkins/job_PostCommit_PortableJar_Flink.groovy
index 856b7bf1e4d..1332b61ccb0 100644
--- a/.test-infra/jenkins/job_PostCommit_PortableJar_Flink.groovy
+++ b/.test-infra/jenkins/job_PostCommit_PortableJar_Flink.groovy
@@ -31,7 +31,6 @@ PostcommitJobBuilder.postCommitJob('beam_PostCommit_PortableJar_Flink',
steps {
gradle {
rootBuildScriptDir(commonJobProperties.checkoutDir)
- tasks(':sdks:python:test-suites:portable:py36:testPipelineJarFlinkRunner')
tasks(':sdks:python:test-suites:portable:py37:testPipelineJarFlinkRunner')
commonJobProperties.setGradleSwitches(delegate)
}
diff --git a/.test-infra/jenkins/job_PreCommit_Portable_Python.groovy b/.test-infra/jenkins/job_PreCommit_Portable_Python.groovy
index d9fd7dc003e..c11e6848167 100644
--- a/.test-infra/jenkins/job_PreCommit_Portable_Python.groovy
+++ b/.test-infra/jenkins/job_PreCommit_Portable_Python.groovy
@@ -43,7 +43,7 @@ builder.build {
steps {
gradle {
rootBuildScriptDir(commonJobProperties.checkoutDir)
- tasks(':sdks:python:test-suites:portable:py36:preCommitPy36')
+ tasks(':sdks:python:test-suites:portable:py37:preCommitPy37')
commonJobProperties.setGradleSwitches(delegate)
}
gradle {
diff --git a/build.gradle.kts b/build.gradle.kts
index b874a9f8722..7b31c9db20c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -269,7 +269,6 @@ tasks.register("playgroundPreCommit") {
tasks.register("pythonPreCommit") {
dependsOn(":sdks:python:test-suites:tox:pycommon:preCommitPyCommon")
- dependsOn(":sdks:python:test-suites:tox:py36:preCommitPy36")
dependsOn(":sdks:python:test-suites:tox:py37:preCommitPy37")
dependsOn(":sdks:python:test-suites:tox:py38:preCommitPy38")
dependsOn(":sdks:python:test-suites:tox:py39:preCommitPy39")
@@ -282,7 +281,6 @@ tasks.register("pythonDocsPreCommit") {
}
tasks.register("pythonDockerBuildPreCommit") {
- dependsOn(":sdks:python:container:py36:docker")
dependsOn(":sdks:python:container:py37:docker")
dependsOn(":sdks:python:container:py38:docker")
dependsOn(":sdks:python:container:py39:docker")
@@ -297,12 +295,6 @@ tasks.register("pythonFormatterPreCommit") {
dependsOn("sdks:python:test-suites:tox:py38:formatter")
}
-tasks.register("python36PostCommit") {
- dependsOn(":sdks:python:test-suites:dataflow:py36:postCommitIT")
- dependsOn(":sdks:python:test-suites:direct:py36:postCommitIT")
- dependsOn(":sdks:python:test-suites:portable:py36:postCommitPy36")
-}
-
tasks.register("python37PostCommit") {
dependsOn(":sdks:python:test-suites:dataflow:py37:postCommitIT")
dependsOn(":sdks:python:test-suites:direct:py37:postCommitIT")
@@ -330,12 +322,11 @@ tasks.register("python39PostCommit") {
}
tasks.register("portablePythonPreCommit") {
- dependsOn(":sdks:python:test-suites:portable:py36:preCommitPy36")
+ dependsOn(":sdks:python:test-suites:portable:py37:preCommitPy37")
dependsOn(":sdks:python:test-suites:portable:py39:preCommitPy39")
}
tasks.register("pythonSparkPostCommit") {
- dependsOn(":sdks:python:test-suites:portable:py36:sparkValidatesRunner")
dependsOn(":sdks:python:test-suites:portable:py37:sparkValidatesRunner")
dependsOn(":sdks:python:test-suites:portable:py38:sparkValidatesRunner")
dependsOn(":sdks:python:test-suites:portable:py39:sparkValidatesRunner")
diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
index b2fd743f37f..795f15bc227 100644
--- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
+++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy
@@ -2628,7 +2628,6 @@ class BeamModulePlugin implements Plugin<Project> {
mustRunAfter = [
":runners:flink:${project.ext.latestFlinkVersion}:job-server:shadowJar",
':runners:spark:2:job-server:shadowJar',
- ':sdks:python:container:py36:docker',
':sdks:python:container:py37:docker',
':sdks:python:container:py38:docker',
':sdks:python:container:py39:docker',
diff --git a/sdks/python/container/build.gradle b/sdks/python/container/build.gradle
index 3d147ab7578..4b7f0300a15 100644
--- a/sdks/python/container/build.gradle
+++ b/sdks/python/container/build.gradle
@@ -36,21 +36,18 @@ goBuild {
}
tasks.register("buildAll") {
- dependsOn ':sdks:python:container:py36:docker'
dependsOn ':sdks:python:container:py37:docker'
dependsOn ':sdks:python:container:py38:docker'
dependsOn ':sdks:python:container:py39:docker'
}
tasks.register("pushAll") {
- dependsOn ':sdks:python:container:py36:dockerPush'
dependsOn ':sdks:python:container:py37:dockerPush'
dependsOn ':sdks:python:container:py38:dockerPush'
dependsOn ':sdks:python:container:py39:dockerPush'
}
tasks.register("generatePythonRequirementsAll") {
- dependsOn ':sdks:python:container:py36:generatePythonRequirements'
dependsOn ':sdks:python:container:py37:generatePythonRequirements'
dependsOn ':sdks:python:container:py38:generatePythonRequirements'
dependsOn ':sdks:python:container:py39:generatePythonRequirements'
diff --git a/sdks/python/container/py36/base_image_requirements.txt b/sdks/python/container/py36/base_image_requirements.txt
deleted file mode 100644
index 6407dfadf9f..00000000000
--- a/sdks/python/container/py36/base_image_requirements.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Autogenerated requirements file for Apache Beam py36 container image.
-# Run ./gradlew :sdks:python:container:generatePythonRequirementsAll to update.
-# Do not edit manually, adjust ../base_image_requirements_manual.txt or
-# Apache Beam's setup.py instead, and regenerate the list.
-# You will need Python intepreters for all versions supported by Beam, see:
-# https://s.apache.org/beam-python-dev-wiki
-# Reach out to a committer if you need help.
-
-absl-py==0.15.0
-astunparse==1.6.3
-atomicwrites==1.4.0
-attrs==21.4.0
-beautifulsoup4==4.10.0
-bs4==0.0.1
-cached-property==1.5.2
-cachetools==4.2.4
-certifi==2021.10.8
-cffi==1.15.0
-charset-normalizer==2.0.12
-clang==5.0
-click==8.0.4
-cloudpickle==2.0.0
-crcmod==1.7
-cryptography==36.0.2
-Cython==0.29.28
-dataclasses==0.8
-deprecation==2.1.0
-dill==0.3.1.1
-docker==5.0.3
-docopt==0.6.2
-execnet==1.9.0
-fastavro==1.4.7
-fasteners==0.17.3
-flatbuffers==1.12
-freezegun==1.2.1
-future==0.18.2
-gast==0.4.0
-google-api-core==1.31.5
-google-api-python-client==2.41.0
-google-apitools==0.5.31
-google-auth==1.35.0
-google-auth-httplib2==0.1.0
-google-auth-oauthlib==0.4.6
-google-cloud-bigquery==2.34.2
-google-cloud-bigquery-storage==2.13.0
-google-cloud-bigtable==1.7.0
-google-cloud-core==1.7.2
-google-cloud-datastore==1.15.3
-google-cloud-dlp==3.6.2
-google-cloud-language==1.3.0
-google-cloud-profiler==3.0.7
-google-cloud-pubsub==2.11.0
-google-cloud-pubsublite==1.4.1
-google-cloud-recommendations-ai==0.2.0
-google-cloud-spanner==1.19.1
-google-cloud-videointelligence==1.16.1
-google-cloud-vision==1.0.0
-google-crc32c==1.3.0
-google-pasta==0.2.0
-google-python-cloud-debugger==2.18
-google-resumable-media==2.3.2
-googleapis-common-protos==1.56.0
-greenlet==1.1.2
-grpc-google-iam-v1==0.12.3
-grpcio==1.44.0
-grpcio-gcp==0.2.2
-grpcio-status==1.44.0
-guppy3==3.1.2
-h5py==3.1.0
-hdfs==2.6.0
-httplib2==0.19.1
-idna==3.3
-importlib-metadata==4.8.3
-importlib-resources==5.4.0
-joblib==1.1.0
-keras==2.6.0
-Keras-Preprocessing==1.1.2
-Markdown==3.3.6
-mmh3==3.0.0
-mock==2.0.0
-more-itertools==8.12.0
-nltk==3.6.7
-nose==1.3.7
-numpy==1.19.5
-oauth2client==4.1.3
-oauthlib==3.2.0
-opt-einsum==3.3.0
-orjson==3.6.1
-overrides==6.1.0
-packaging==21.3
-pandas==1.1.5
-parameterized==0.7.5
-pbr==5.8.1
-pluggy==0.13.1
-proto-plus==1.20.3
-protobuf==3.19.4
-psycopg2-binary==2.9.3
-py==1.11.0
-pyarrow==6.0.1
-pyasn1==0.4.8
-pyasn1-modules==0.2.8
-pycparser==2.21
-pydot==1.4.2
-PyHamcrest==1.10.1
-pymongo==3.12.3
-PyMySQL==1.0.2
-pyparsing==2.4.7
-pytest==4.6.11
-pytest-forked==1.4.0
-pytest-timeout==1.4.2
-pytest-xdist==1.34.0
-python-dateutil==2.8.2
-python-snappy==0.6.1
-pytz==2022.1
-PyYAML==6.0
-regex==2022.3.15
-requests==2.27.1
-requests-mock==1.9.3
-requests-oauthlib==1.3.1
-rsa==4.8
-scikit-learn==0.24.2
-scipy==1.5.4
-six==1.15.0
-soupsieve==2.3.1
-SQLAlchemy==1.4.32
-tenacity==5.1.5
-tensorboard==2.6.0
-tensorboard-data-server==0.6.1
-tensorboard-plugin-wit==1.8.1
-tensorflow==2.6.2
-tensorflow-estimator==2.6.0
-termcolor==1.1.0
-testcontainers==3.4.2
-threadpoolctl==3.1.0
-tqdm==4.63.0
-typing-extensions==3.7.4.3
-typing-utils==0.1.0
-uritemplate==4.1.1
-urllib3==1.26.9
-wcwidth==0.2.5
-websocket-client==1.3.1
-Werkzeug==2.0.3
-wrapt==1.12.1
-zipp==3.6.0
diff --git a/sdks/python/container/py36/build.gradle b/sdks/python/container/py36/build.gradle
deleted file mode 100644
index 20fe8755bf5..00000000000
--- a/sdks/python/container/py36/build.gradle
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * License); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-plugins {
- id 'base'
- id 'org.apache.beam.module'
-}
-applyDockerNature()
-applyPythonNature()
-
-pythonVersion = '3.6'
-
-apply from: "../common.gradle"
diff --git a/sdks/python/container/run_validatescontainer.sh b/sdks/python/container/run_validatescontainer.sh
index 1ab9c569069..9ef9313ec15 100755
--- a/sdks/python/container/run_validatescontainer.sh
+++ b/sdks/python/container/run_validatescontainer.sh
@@ -24,8 +24,6 @@
# REGION -> Region name to use for Dataflow
#
# Execute from the root of the repository:
-# test Python3.6 container:
-# ./gradlew :sdks:python:test-suites:dataflow:py36:validatesContainer
# test Python3.7 container:
# ./gradlew :sdks:python:test-suites:dataflow:py37:validatesContainer
# test Python3.8 container:
diff --git a/sdks/python/setup.py b/sdks/python/setup.py
index 9168f1b0271..f8ecc1c299c 100644
--- a/sdks/python/setup.py
+++ b/sdks/python/setup.py
@@ -255,7 +255,7 @@ def get_portability_package_data():
return files
-python_requires = '>=3.6'
+python_requires = '>=3.7'
if sys.version_info.major == 3 and sys.version_info.minor >= 10:
warnings.warn(
@@ -329,7 +329,6 @@ if __name__ == '__main__':
'Intended Audience :: End Users/Desktop',
'License :: OSI Approved :: Apache Software License',
'Operating System :: POSIX :: Linux',
- 'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
diff --git a/sdks/python/test-suites/dataflow/py36/build.gradle b/sdks/python/test-suites/dataflow/py36/build.gradle
deleted file mode 100644
index 9518e3d22e4..00000000000
--- a/sdks/python/test-suites/dataflow/py36/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * License); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-applyPythonNature()
-
-// Required to setup a Python 3 virtualenv and task names.
-pythonVersion = '3.6'
-apply from : "../common.gradle"
diff --git a/sdks/python/test-suites/direct/py36/build.gradle b/sdks/python/test-suites/direct/py36/build.gradle
deleted file mode 100644
index fa9bc330594..00000000000
--- a/sdks/python/test-suites/direct/py36/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * License); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-plugins { id 'org.apache.beam.module' }
-applyPythonNature()
-
-// Required to setup a Python 3 virtualenv and task names.
-pythonVersion = '3.6'
-apply from: '../common.gradle'
diff --git a/sdks/python/test-suites/gradle.properties b/sdks/python/test-suites/gradle.properties
index cb0851b9e1a..cf167b22abe 100644
--- a/sdks/python/test-suites/gradle.properties
+++ b/sdks/python/test-suites/gradle.properties
@@ -26,7 +26,7 @@ dataflow_mongodbio_it_task_py_versions=3.7
dataflow_chicago_taxi_example_task_py_versions=3.7
dataflow_validates_runner_batch_tests=3.7,3.9
dataflow_validates_runner_streaming_tests=3.7,3.8,3.9
-dataflow_validates_container_tests=3.6,3.7,3.8,3.9
+dataflow_validates_container_tests=3.7,3.8,3.9
# TODO: Enable following tests after making sure we have enough capacity.
dataflow_validates_runner_batch_tests_V2=3.9
dataflow_validates_runner_streaming_tests_V2=3.9
diff --git a/sdks/python/test-suites/portable/py36/build.gradle b/sdks/python/test-suites/portable/py36/build.gradle
deleted file mode 100644
index 4c7b31eb2cd..00000000000
--- a/sdks/python/test-suites/portable/py36/build.gradle
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * License); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-apply plugin: org.apache.beam.gradle.BeamModulePlugin
-applyPythonNature()
-
-addPortableWordCountTasks()
-
-// Required to setup a Python 3.6 virtualenv and task names.
-pythonVersion = '3.6'
-apply from: "../common.gradle"
diff --git a/sdks/python/test-suites/tox/py36/build.gradle b/sdks/python/test-suites/tox/py36/build.gradle
deleted file mode 100644
index 12ab1dc3aad..00000000000
--- a/sdks/python/test-suites/tox/py36/build.gradle
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * License); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Unit tests for Python 3.6
- */
-
-plugins { id 'org.apache.beam.module' }
-applyPythonNature()
-
-// Required to setup a Python 3 virtualenv and task names.
-pythonVersion = '3.6'
-
-apply from: "../common.gradle"
-
-// TODO(BEAM-8954): Remove this once tox uses isolated builds.
-testPy36Cython.mustRunAfter testPython36, testPy36Cloud
diff --git a/sdks/python/tox.ini b/sdks/python/tox.ini
index 332e766d85b..8db1162d151 100644
--- a/sdks/python/tox.ini
+++ b/sdks/python/tox.ini
@@ -17,7 +17,7 @@
[tox]
# new environments will be excluded by default unless explicitly added to envlist.
-envlist = py36,py37,py38,py39,py36-{cloud,cython},py37-{cloud,cython,lint,mypy},py38-{cloud,cython,docs,cloudcoverage},py39-{cloud,cython},whitespacelint
+envlist = py37,py38,py39,py37-{cloud,cython,lint,mypy},py38-{cloud,cython,docs,cloudcoverage},py39-{cloud,cython},whitespacelint
toxworkdir = {toxinidir}/target/{env:ENV_NAME:.tox}
[pycodestyle]
@@ -62,19 +62,19 @@ commands_post =
bash {toxinidir}/scripts/run_tox_cleanup.sh
commands = false {envname} is misconfigured
-[testenv:py{36,37,38,39}]
+[testenv:py{37,38,39}]
commands =
python apache_beam/examples/complete/autocomplete_test.py
{toxinidir}/scripts/run_pytest.sh {envname} "{posargs}"
-[testenv:py{36,37,38,39}-win]
+[testenv:py{37,38,39}-win]
commands =
python apache_beam/examples/complete/autocomplete_test.py
bash {toxinidir}/scripts/run_pytest.sh {envname} "{posargs}"
install_command = {envbindir}/python.exe {envbindir}/pip.exe install --retries 10 {opts} {packages}
list_dependencies_command = {envbindir}/python.exe {envbindir}/pip.exe freeze
-[testenv:py{36,37,38,39}-cython]
+[testenv:py{37,38,39}-cython]
# cython tests are only expected to work in linux (2.x and 3.x)
# If we want to add other platforms in the future, it should be:
# `platform = linux2|darwin|...`
@@ -87,7 +87,7 @@ commands =
python apache_beam/examples/complete/autocomplete_test.py
{toxinidir}/scripts/run_pytest.sh {envname} "{posargs}"
-[testenv:py{36,37,38,39}-cloud]
+[testenv:py{37,38,39}-cloud]
extras = test,gcp,interactive,dataframe,aws,azure
commands =
{toxinidir}/scripts/run_pytest.sh {envname} "{posargs}"
@@ -233,7 +233,7 @@ extras = test
commands =
{toxinidir}/scripts/pytest_validates_runner.sh {envname} {toxinidir}/apache_beam/runners/portability/spark_runner_test.py {posargs}
-[testenv:py{36,37,38,39}-pyarrow-{0,1,2,3,4,5,6,7}]
+[testenv:py{37,38,39}-pyarrow-{0,1,2,3,4,5,6,7}]
deps =
0: pyarrow>=0.15.1,<0.18.0
1: pyarrow>=1,<2
@@ -253,7 +253,7 @@ commands =
# selecting tests with -m (BEAM-12985)
pytest -o junit_suite_name={envname} --junitxml=pytest_{envname}.xml -n 6 -m uses_pyarrow {posargs}
-[testenv:py{36,37,38,39}-pandas-{11,12,13,14}]
+[testenv:py{37,38,39}-pandas-{11,12,13,14}]
deps =
11: pandas>=1.1.0,<1.2.0
12: pandas>=1.2.0,<1.3.0
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 3827b5c1282..305d0af786f 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -209,27 +209,22 @@ include(":sdks:java:testing:watermarks")
include(":sdks:python")
include(":sdks:python:apache_beam:testing:load_tests")
include(":sdks:python:container")
-include(":sdks:python:container:py36")
include(":sdks:python:container:py37")
include(":sdks:python:container:py38")
include(":sdks:python:container:py39")
include(":sdks:python:test-suites:dataflow")
-include(":sdks:python:test-suites:dataflow:py36")
include(":sdks:python:test-suites:dataflow:py37")
include(":sdks:python:test-suites:dataflow:py38")
include(":sdks:python:test-suites:dataflow:py39")
include(":sdks:python:test-suites:direct")
-include(":sdks:python:test-suites:direct:py36")
include(":sdks:python:test-suites:direct:py37")
include(":sdks:python:test-suites:direct:py38")
include(":sdks:python:test-suites:direct:py39")
include(":sdks:python:test-suites:direct:xlang")
-include(":sdks:python:test-suites:portable:py36")
include(":sdks:python:test-suites:portable:py37")
include(":sdks:python:test-suites:portable:py38")
include(":sdks:python:test-suites:portable:py39")
include(":sdks:python:test-suites:tox:pycommon")
-include(":sdks:python:test-suites:tox:py36")
include(":sdks:python:test-suites:tox:py37")
include(":sdks:python:test-suites:tox:py38")
include(":sdks:python:test-suites:tox:py39")