diff --git a/.github/workflows/update_python_dependencies.yml b/.github/workflows/update_python_dependencies.yml
index a91aff39f29a961df21e697cbba35f5fc08de064..0ab52e97b9f09600b38dbfd625e89c1722609a5e 100644
--- a/.github/workflows/update_python_dependencies.yml
+++ b/.github/workflows/update_python_dependencies.yml
@@ -56,7 +56,6 @@ jobs:
         uses: ./.github/actions/setup-environment-action
         with:
           python-version: |
-            3.8
             3.9
             3.10
             3.11
diff --git a/CHANGES.md b/CHANGES.md
index f873455cd66e30baeb9fd80b4a03d8556e8035c6..1a9d2045cbf613df5299a7f5729f1b9388d41e72 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -85,6 +85,7 @@
 ## Deprecations
 
 * Removed support for Flink 1.15 and 1.16
+* Removed support for Python 3.8
 * X behavior is deprecated and will be removed in X versions ([#X](https://github.com/apache/beam/issues/X)).
 
 ## Bugfixes
diff --git a/build.gradle.kts b/build.gradle.kts
index 38b58b6979eeb4f554872b84bfc1eeb5c55b4f08..d96e77a4c78ca330b1b9d29f2750688903572d88 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -501,23 +501,11 @@ tasks.register("pythonFormatterPreCommit") {
   dependsOn("sdks:python:test-suites:tox:pycommon:formatter")
 }
 
-tasks.register("python38PostCommit") {
-  dependsOn(":sdks:python:test-suites:dataflow:py38:postCommitIT")
-  dependsOn(":sdks:python:test-suites:direct:py38:postCommitIT")
-  dependsOn(":sdks:python:test-suites:direct:py38:hdfsIntegrationTest")
-  dependsOn(":sdks:python:test-suites:direct:py38:azureIntegrationTest")
-  dependsOn(":sdks:python:test-suites:portable:py38:postCommitPy38")
-  // TODO: https://github.com/apache/beam/issues/22651
-  // The default container uses Python 3.8. The goal here is to
-  // duild Docker images for TensorRT tests during run time for python versions
-  // other than 3.8 and add these tests in other python postcommit suites.
-  dependsOn(":sdks:python:test-suites:dataflow:py38:inferencePostCommitIT")
-  dependsOn(":sdks:python:test-suites:direct:py38:inferencePostCommitIT")
-}
-
 tasks.register("python39PostCommit") {
   dependsOn(":sdks:python:test-suites:dataflow:py39:postCommitIT")
   dependsOn(":sdks:python:test-suites:direct:py39:postCommitIT")
+  dependsOn(":sdks:python:test-suites:direct:py39:hdfsIntegrationTest")
+  dependsOn(":sdks:python:test-suites:direct:py39:azureIntegrationTest")
   dependsOn(":sdks:python:test-suites:portable:py39:postCommitPy39")
   // TODO (https://github.com/apache/beam/issues/23966)
   // Move this to Python 3.10 test suite once tfx-bsl has python 3.10 wheel.
@@ -528,6 +516,11 @@ tasks.register("python310PostCommit") {
   dependsOn(":sdks:python:test-suites:dataflow:py310:postCommitIT")
   dependsOn(":sdks:python:test-suites:direct:py310:postCommitIT")
   dependsOn(":sdks:python:test-suites:portable:py310:postCommitPy310")
+  // TODO: https://github.com/apache/beam/issues/22651
+  // The default container uses Python 3.10. The goal here is to
+  // duild Docker images for TensorRT tests during run time for python versions
+  // other than 3.10 and add these tests in other python postcommit suites.
+  dependsOn(":sdks:python:test-suites:dataflow:py310:inferencePostCommitIT")
 }
 
 tasks.register("python311PostCommit") {
diff --git a/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py b/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py
index 20cae582f320dee422087422e611547bc1fd9594..97996bd6cbb2c8519f06f262a5156d5184da2e47 100644
--- a/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py
+++ b/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py
@@ -82,7 +82,7 @@ _FNAPI_ENVIRONMENT_MAJOR_VERSION = '8'
 
 _LOGGER = logging.getLogger(__name__)
 
-_PYTHON_VERSIONS_SUPPORTED_BY_DATAFLOW = ['3.8', '3.9', '3.10', '3.11', '3.12']
+_PYTHON_VERSIONS_SUPPORTED_BY_DATAFLOW = ['3.9', '3.10', '3.11', '3.12']
 
 
 class Environment(object):
diff --git a/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py b/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py
index 022136aae9a2c43300be3f9bbd9db06ee9347b7b..6587e619a5007686eebddc0da84a8aeb95eb0bad 100644
--- a/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py
+++ b/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py
@@ -1003,7 +1003,21 @@ class UtilTest(unittest.TestCase):
       'apache_beam.runners.dataflow.internal.apiclient.'
       'beam_version.__version__',
       '2.2.0')
-  def test_interpreter_version_check_passes_py38(self):
+  def test_interpreter_version_check_fails_py38(self):
+    pipeline_options = PipelineOptions([])
+    self.assertRaises(
+        Exception,
+        apiclient._verify_interpreter_version_is_supported,
+        pipeline_options)
+
+  @mock.patch(
+      'apache_beam.runners.dataflow.internal.apiclient.sys.version_info',
+      (3, 9, 6))
+  @mock.patch(
+      'apache_beam.runners.dataflow.internal.apiclient.'
+      'beam_version.__version__',
+      '2.2.0')
+  def test_interpreter_version_check_passes_py39(self):
     pipeline_options = PipelineOptions([])
     apiclient._verify_interpreter_version_is_supported(pipeline_options)
 
diff --git a/sdks/python/container/build.gradle b/sdks/python/container/build.gradle
index f07b6f743fa400d1b77116224e7d57dcc256d337..14c08a3a539b4fe54d17e322b53b4ccb5f2d4952 100644
--- a/sdks/python/container/build.gradle
+++ b/sdks/python/container/build.gradle
@@ -20,7 +20,7 @@ plugins { id 'org.apache.beam.module' }
 applyGoNature()
 
 description = "Apache Beam :: SDKs :: Python :: Container"
-int min_python_version=8
+int min_python_version=9
 int max_python_version=12
 
 configurations {
diff --git a/sdks/python/container/py38/base_image_requirements.txt b/sdks/python/container/py38/base_image_requirements.txt
deleted file mode 100644
index 0a67a3666d25192a5a961432ecf88d64670425bb..0000000000000000000000000000000000000000
--- a/sdks/python/container/py38/base_image_requirements.txt
+++ /dev/null
@@ -1,172 +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 py38 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 interpreters for all versions supported by Beam, see:
-# https://s.apache.org/beam-python-dev-wiki
-# Reach out to a committer if you need help.
-
-annotated-types==0.7.0
-async-timeout==4.0.3
-attrs==24.2.0
-backports.tarfile==1.2.0
-beautifulsoup4==4.12.3
-bs4==0.0.2
-build==1.2.2
-cachetools==5.5.0
-certifi==2024.8.30
-cffi==1.17.1
-charset-normalizer==3.3.2
-click==8.1.7
-cloudpickle==2.2.1
-cramjam==2.8.4
-crcmod==1.7
-cryptography==43.0.1
-Cython==3.0.11
-Deprecated==1.2.14
-deprecation==2.1.0
-dill==0.3.1.1
-dnspython==2.6.1
-docker==7.1.0
-docopt==0.6.2
-docstring_parser==0.16
-exceptiongroup==1.2.2
-execnet==2.1.1
-fastavro==1.9.7
-fasteners==0.19
-freezegun==1.5.1
-future==1.0.0
-google-api-core==2.20.0
-google-api-python-client==2.147.0
-google-apitools==0.5.31
-google-auth==2.35.0
-google-auth-httplib2==0.2.0
-google-cloud-aiplatform==1.69.0
-google-cloud-bigquery==3.26.0
-google-cloud-bigquery-storage==2.26.0
-google-cloud-bigtable==2.26.0
-google-cloud-core==2.4.1
-google-cloud-datastore==2.20.1
-google-cloud-dlp==3.23.0
-google-cloud-language==2.14.0
-google-cloud-profiler==4.1.0
-google-cloud-pubsub==2.25.2
-google-cloud-pubsublite==1.11.1
-google-cloud-recommendations-ai==0.10.12
-google-cloud-resource-manager==1.12.5
-google-cloud-spanner==3.49.1
-google-cloud-storage==2.18.2
-google-cloud-videointelligence==2.13.5
-google-cloud-vision==3.7.4
-google-crc32c==1.5.0
-google-resumable-media==2.7.2
-googleapis-common-protos==1.65.0
-greenlet==3.1.1
-grpc-google-iam-v1==0.13.1
-grpc-interceptor==0.15.4
-grpcio==1.65.5
-grpcio-status==1.62.3
-guppy3==3.1.4.post1
-hdfs==2.7.3
-httplib2==0.22.0
-hypothesis==6.112.3
-idna==3.10
-importlib_metadata==8.4.0
-importlib_resources==6.4.5
-iniconfig==2.0.0
-jaraco.classes==3.4.0
-jaraco.context==6.0.1
-jaraco.functools==4.1.0
-jeepney==0.8.0
-Jinja2==3.1.4
-joblib==1.4.2
-jsonpickle==3.3.0
-jsonschema==4.23.0
-jsonschema-specifications==2023.12.1
-keyring==25.4.1
-keyrings.google-artifactregistry-auth==1.1.2
-MarkupSafe==2.1.5
-mmh3==5.0.1
-mock==5.1.0
-more-itertools==10.5.0
-nltk==3.9.1
-nose==1.3.7
-numpy==1.24.4
-oauth2client==4.1.3
-objsize==0.7.0
-opentelemetry-api==1.27.0
-opentelemetry-sdk==1.27.0
-opentelemetry-semantic-conventions==0.48b0
-orjson==3.10.7
-overrides==7.7.0
-packaging==24.1
-pandas==2.0.3
-parameterized==0.9.0
-pkgutil_resolve_name==1.3.10
-pluggy==1.5.0
-proto-plus==1.24.0
-protobuf==4.25.5
-psycopg2-binary==2.9.9
-pyarrow==16.1.0
-pyarrow-hotfix==0.6
-pyasn1==0.6.1
-pyasn1_modules==0.4.1
-pycparser==2.22
-pydantic==2.9.2
-pydantic_core==2.23.4
-pydot==1.4.2
-PyHamcrest==2.1.0
-pymongo==4.10.1
-PyMySQL==1.1.1
-pyparsing==3.1.4
-pyproject_hooks==1.2.0
-pytest==7.4.4
-pytest-timeout==2.3.1
-pytest-xdist==3.6.1
-python-dateutil==2.9.0.post0
-python-snappy==0.7.3
-pytz==2024.2
-PyYAML==6.0.2
-redis==5.1.1
-referencing==0.35.1
-regex==2024.9.11
-requests==2.32.3
-requests-mock==1.12.1
-rpds-py==0.20.0
-rsa==4.9
-scikit-learn==1.3.2
-scipy==1.10.1
-SecretStorage==3.3.3
-shapely==2.0.6
-six==1.16.0
-sortedcontainers==2.4.0
-soupsieve==2.6
-SQLAlchemy==2.0.35
-sqlparse==0.5.1
-tenacity==8.5.0
-testcontainers==3.7.1
-threadpoolctl==3.5.0
-tomli==2.0.2
-tqdm==4.66.5
-typing_extensions==4.12.2
-tzdata==2024.2
-uritemplate==4.1.1
-urllib3==2.2.3
-wrapt==1.16.0
-zipp==3.20.2
-zstandard==0.23.0
diff --git a/sdks/python/container/py38/build.gradle b/sdks/python/container/py38/build.gradle
deleted file mode 100644
index 304895a8371812645a032718fda683e7c9764a95..0000000000000000000000000000000000000000
--- a/sdks/python/container/py38/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.8'
-
-apply from: "../common.gradle"
diff --git a/sdks/python/test-suites/dataflow/common.gradle b/sdks/python/test-suites/dataflow/common.gradle
index 6bca904c1a64ed1627dd6f4f48b919cbe2d0d889..845791e9c10f00fda9256c86f1df2c7727d0d82f 100644
--- a/sdks/python/test-suites/dataflow/common.gradle
+++ b/sdks/python/test-suites/dataflow/common.gradle
@@ -543,8 +543,8 @@ task mockAPITests {
 }
 
 // add all RunInference E2E tests that run on DataflowRunner
-// As of now, this test suite is enable in py38 suite as the base NVIDIA image used for Tensor RT
-// contains Python 3.8.
+// As of now, this test suite is enable in py310 suite as the base NVIDIA image used for Tensor RT
+// contains Python 3.10.
 // TODO: https://github.com/apache/beam/issues/22651
 project.tasks.register("inferencePostCommitIT") {
   dependsOn = [
diff --git a/sdks/python/test-suites/dataflow/py38/build.gradle b/sdks/python/test-suites/dataflow/py38/build.gradle
deleted file mode 100644
index b3c3a5bfb8a678aaad287931ae134caa54cdaf8c..0000000000000000000000000000000000000000
--- a/sdks/python/test-suites/dataflow/py38/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.8'
-apply from: "../common.gradle"
diff --git a/sdks/python/test-suites/direct/py38/build.gradle b/sdks/python/test-suites/direct/py38/build.gradle
deleted file mode 100644
index edf86a7bf5a8e8b56398f2724ffb0cd68aa61527..0000000000000000000000000000000000000000
--- a/sdks/python/test-suites/direct/py38/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.8'
-apply from: '../common.gradle'
diff --git a/sdks/python/test-suites/portable/py38/build.gradle b/sdks/python/test-suites/portable/py38/build.gradle
deleted file mode 100644
index e15443fa935f473d7788f63e7d20196cac0e86b5..0000000000000000000000000000000000000000
--- a/sdks/python/test-suites/portable/py38/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.8 virtualenv and task names.
-pythonVersion = '3.8'
-apply from: "../common.gradle"
diff --git a/sdks/python/test-suites/tox/py38/build.gradle b/sdks/python/test-suites/tox/py38/build.gradle
deleted file mode 100644
index 2ca82d3d92682fc01ecaeb26c69433b3be2e8de5..0000000000000000000000000000000000000000
--- a/sdks/python/test-suites/tox/py38/build.gradle
+++ /dev/null
@@ -1,224 +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.8
- */
-
-plugins { id 'org.apache.beam.module' }
-applyPythonNature()
-
-// Required to setup a Python 3 virtualenv and task names.
-pythonVersion = '3.8'
-
-def posargs = project.findProperty("posargs") ?: ""
-
-apply from: "../common.gradle"
-
-toxTask "testPy38CloudCoverage", "py38-cloudcoverage", "${posargs}"
-test.dependsOn "testPy38CloudCoverage"
-project.tasks.register("preCommitPyCoverage") {
-      dependsOn = ["testPy38CloudCoverage"]
-}
-
-// Dep Postcommit runs test suites that evaluate compatibility of particular
-// dependencies. It is exercised on a single Python version.
-//
-// Should still leave at least one version in PreCommit unless the marked tests
-// are also exercised by existing PreCommit
-// e.g. pyarrow and pandas also run on PreCommit Dataframe and Coverage
-project.tasks.register("postCommitPyDep") {}
-
-// Create a test task for supported major versions of pyarrow
-// We should have a test for the lowest supported version and
-// For versions that we would like to prioritize for testing,
-// for example versions released in a timeframe of last 1-2 years.
-
-toxTask "testPy38pyarrow-3", "py38-pyarrow-3", "${posargs}"
-test.dependsOn "testPy38pyarrow-3"
-postCommitPyDep.dependsOn "testPy38pyarrow-3"
-
-toxTask "testPy38pyarrow-9", "py38-pyarrow-9", "${posargs}"
-test.dependsOn "testPy38pyarrow-9"
-postCommitPyDep.dependsOn "testPy38pyarrow-9"
-
-toxTask "testPy38pyarrow-10", "py38-pyarrow-10", "${posargs}"
-test.dependsOn "testPy38pyarrow-10"
-postCommitPyDep.dependsOn "testPy38pyarrow-10"
-
-toxTask "testPy38pyarrow-11", "py38-pyarrow-11", "${posargs}"
-test.dependsOn "testPy38pyarrow-11"
-postCommitPyDep.dependsOn "testPy38pyarrow-11"
-
-toxTask "testPy38pyarrow-12", "py38-pyarrow-12", "${posargs}"
-test.dependsOn "testPy38pyarrow-12"
-postCommitPyDep.dependsOn "testPy38pyarrow-12"
-
-toxTask "testPy38pyarrow-13", "py38-pyarrow-13", "${posargs}"
-test.dependsOn "testPy38pyarrow-13"
-postCommitPyDep.dependsOn "testPy38pyarrow-13"
-
-toxTask "testPy38pyarrow-14", "py38-pyarrow-14", "${posargs}"
-test.dependsOn "testPy38pyarrow-14"
-postCommitPyDep.dependsOn "testPy38pyarrow-14"
-
-toxTask "testPy38pyarrow-15", "py38-pyarrow-15", "${posargs}"
-test.dependsOn "testPy38pyarrow-15"
-postCommitPyDep.dependsOn "testPy38pyarrow-15"
-
-toxTask "testPy38pyarrow-16", "py38-pyarrow-16", "${posargs}"
-test.dependsOn "testPy38pyarrow-16"
-postCommitPyDep.dependsOn "testPy38pyarrow-16"
-
-// Create a test task for each supported minor version of pandas
-toxTask "testPy38pandas-14", "py38-pandas-14", "${posargs}"
-test.dependsOn "testPy38pandas-14"
-postCommitPyDep.dependsOn "testPy38pandas-14"
-
-toxTask "testPy38pandas-15", "py38-pandas-15", "${posargs}"
-test.dependsOn "testPy38pandas-15"
-postCommitPyDep.dependsOn "testPy38pandas-15"
-
-toxTask "testPy38pandas-20", "py38-pandas-20", "${posargs}"
-test.dependsOn "testPy38pandas-20"
-postCommitPyDep.dependsOn "testPy38pandas-20"
-
-// TODO(https://github.com/apache/beam/issues/31192): Add below suites
-// after dependency compat tests suite switches to Python 3.9 or we add
-// Python 2.2 support.
-
-// toxTask "testPy39pandas-21", "py39-pandas-21", "${posargs}"
-// test.dependsOn "testPy39pandas-21"
-// postCommitPyDep.dependsOn "testPy39pandas-21"
-
-// toxTask "testPy39pandas-22", "py39-pandas-22", "${posargs}"
-// test.dependsOn "testPy39pandas-22"
-// postCommitPyDep.dependsOn "testPy39pandas-22"
-
-// TODO(https://github.com/apache/beam/issues/30908): Revise what are we testing
-
-// Create a test task for each minor version of pytorch
-toxTask "testPy38pytorch-19", "py38-pytorch-19", "${posargs}"
-test.dependsOn "testPy38pytorch-19"
-postCommitPyDep.dependsOn "testPy38pytorch-19"
-
-toxTask "testPy38pytorch-110", "py38-pytorch-110", "${posargs}"
-test.dependsOn "testPy38pytorch-110"
-postCommitPyDep.dependsOn "testPy38pytorch-110"
-
-toxTask "testPy38pytorch-111", "py38-pytorch-111", "${posargs}"
-test.dependsOn "testPy38pytorch-111"
-postCommitPyDep.dependsOn "testPy38pytorch-111"
-
-toxTask "testPy38pytorch-112", "py38-pytorch-112", "${posargs}"
-test.dependsOn "testPy38pytorch-112"
-postCommitPyDep.dependsOn "testPy38pytorch-112"
-
-toxTask "testPy38pytorch-113", "py38-pytorch-113", "${posargs}"
-test.dependsOn "testPy38pytorch-113"
-postCommitPyDep.dependsOn "testPy38pytorch-113"
-
-// run on precommit
-toxTask "testPy38pytorch-200", "py38-pytorch-200", "${posargs}"
-test.dependsOn "testPy38pytorch-200"
-postCommitPyDep.dependsOn "testPy38pytorch-200"
-
-toxTask "testPy38tft-113", "py38-tft-113", "${posargs}"
-test.dependsOn "testPy38tft-113"
-postCommitPyDep.dependsOn "testPy38tft-113"
-
-// TODO(https://github.com/apache/beam/issues/25796) - uncomment onnx tox task once onnx supports protobuf 4.x.x
-// Create a test task for each minor version of onnx
-// toxTask "testPy38onnx-113", "py38-onnx-113", "${posargs}"
-// test.dependsOn "testPy38onnx-113"
-// postCommitPyDep.dependsOn "testPy38onnx-113"
-
-// Create a test task for each minor version of tensorflow
-toxTask "testPy38tensorflow-212", "py38-tensorflow-212", "${posargs}"
-test.dependsOn "testPy38tensorflow-212"
-postCommitPyDep.dependsOn "testPy38tensorflow-212"
-
-// Create a test task for each minor version of transformers
-toxTask "testPy38transformers-428", "py38-transformers-428", "${posargs}"
-test.dependsOn "testPy38transformers-428"
-postCommitPyDep.dependsOn "testPy38transformers-428"
-
-toxTask "testPy38transformers-429", "py38-transformers-429", "${posargs}"
-test.dependsOn "testPy38transformers-429"
-postCommitPyDep.dependsOn "testPy38transformers-429"
-
-toxTask "testPy38transformers-430", "py38-transformers-430", "${posargs}"
-test.dependsOn "testPy38transformers-430"
-postCommitPyDep.dependsOn "testPy38transformers-430"
-
-toxTask "testPy38embeddingsMLTransform", "py38-embeddings", "${posargs}"
-test.dependsOn "testPy38embeddingsMLTransform"
-postCommitPyDep.dependsOn "testPy38embeddingsMLTransform"
-
-// Part of MLTransform embeddings test suite but requires tensorflow hub, which we need to test on
-// mutliple versions so keeping this suite separate.
-toxTask "testPy38TensorflowHubEmbeddings-014", "py38-TFHubEmbeddings-014", "${posargs}"
-test.dependsOn "testPy38TensorflowHubEmbeddings-014"
-postCommitPyDep.dependsOn "testPy38TensorflowHubEmbeddings-014"
-
-toxTask "testPy38TensorflowHubEmbeddings-015", "py38-TFHubEmbeddings-015", "${posargs}"
-test.dependsOn "testPy38TensorflowHubEmbeddings-015"
-postCommitPyDep.dependsOn "testPy38TensorflowHubEmbeddings-015"
-
-toxTask "whitespacelint", "whitespacelint", "${posargs}"
-
-task archiveFilesToLint(type: Zip) {
-  archiveFileName = "files-to-whitespacelint.zip"
-  destinationDirectory = file("$buildDir/dist")
-
-  from ("$rootProject.projectDir") {
-    include "**/*.md"
-    include "**/build.gradle"
-    include '**/build.gradle.kts'
-    exclude '**/build/**' // intermediate build directory
-    exclude 'website/www/site/themes/docsy/**' // fork to google/docsy
-    exclude "**/node_modules/*"
-    exclude "**/.gogradle/*"
-  }
-}
-
-task unpackFilesToLint(type: Copy) {
-  from zipTree("$buildDir/dist/files-to-whitespacelint.zip")
-  into "$buildDir/files-to-whitespacelint"
-}
-
-whitespacelint.dependsOn archiveFilesToLint, unpackFilesToLint
-unpackFilesToLint.dependsOn archiveFilesToLint
-archiveFilesToLint.dependsOn cleanPython
-
-toxTask "jest", "jest", "${posargs}"
-
-toxTask "eslint", "eslint", "${posargs}"
-
-task copyTsSource(type: Copy) {
-  from ("$rootProject.projectDir") {
-    include "sdks/python/apache_beam/runners/interactive/extensions/**/*"
-    exclude "sdks/python/apache_beam/runners/interactive/extensions/**/lib/*"
-    exclude "sdks/python/apache_beam/runners/interactive/extensions/**/node_modules/*"
-  }
-  into "$buildDir/ts"
-}
-
-jest.dependsOn copyTsSource
-eslint.dependsOn copyTsSource
-copyTsSource.dependsOn cleanPython