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 <34158215+ananding...@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` | [](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` | [](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` | [](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` | [](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` | [](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` | [](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` | [](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")