This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new e3719a1b07 feat: bump to Python3.9 (#23890)
e3719a1b07 is described below

commit e3719a1b076228dcfae3cdd82844bdfe48b552ec
Author: Sebastian Liebscher 
<[email protected]>
AuthorDate: Wed May 10 19:21:56 2023 +0200

    feat: bump to Python3.9 (#23890)
    
    Co-authored-by: EugeneTorap <[email protected]>
---
 .asf.yaml                                             | 12 ++++++------
 .github/workflows/docker_build_push.sh                | 13 ++++++-------
 .github/workflows/superset-applitool-cypress.yml      |  2 +-
 .github/workflows/superset-cli.yml                    |  2 +-
 .github/workflows/superset-e2e.yml                    |  2 +-
 .github/workflows/superset-helm-lint.yml              |  2 +-
 .github/workflows/superset-python-integrationtest.yml |  6 +++---
 .github/workflows/superset-python-misc.yml            |  6 +++---
 .github/workflows/superset-python-presto-hive.yml     |  4 ++--
 .github/workflows/superset-python-unittest.yml        |  2 +-
 .github/workflows/superset-translations.yml           |  2 +-
 Dockerfile                                            |  2 +-
 Makefile                                              |  6 +++---
 UPDATING.md                                           |  1 +
 docs/docs/contributing/local-backend.mdx              |  2 +-
 requirements/base.txt                                 |  2 --
 scripts/benchmark_migration.py                        |  6 +++---
 setup.cfg                                             |  2 +-
 setup.py                                              |  4 +---
 19 files changed, 37 insertions(+), 41 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index e9d16ae17e..ab980e0c3f 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -66,12 +66,12 @@ github:
           - cypress-matrix (3, chrome)
           - docker-build
           - frontend-build
-#          - pre-commit (3.9)
-#          - python-lint (3.9)
-#          - test-mysql (3.9)
-#          - test-postgres (3.9)
-#          - test-postgres (3.10)
-#          - test-sqlite (3.9)
+          - pre-commit (3.9)
+          - python-lint (3.9)
+          - test-mysql (3.9)
+          - test-postgres (3.9)
+          - test-postgres (3.10)
+          - test-sqlite (3.9)
 
       required_pull_request_reviews:
         dismiss_stale_reviews: false
diff --git a/.github/workflows/docker_build_push.sh 
b/.github/workflows/docker_build_push.sh
index b969813627..642b9b53db 100755
--- a/.github/workflows/docker_build_push.sh
+++ b/.github/workflows/docker_build_push.sh
@@ -50,7 +50,6 @@ docker build --target lean \
   -t "${REPO_NAME}:${SHA}" \
   -t "${REPO_NAME}:${REFSPEC}" \
   -t "${REPO_NAME}:${LATEST_TAG}" \
-  --build-arg PY_VER="3.8-slim"\
   --label "sha=${SHA}" \
   --label "built_at=$(date)" \
   --label "target=lean" \
@@ -58,16 +57,16 @@ docker build --target lean \
   .
 
 #
-# Build the "lean39" image
+# Build the "lean310" image
 #
 docker build --target lean \
-  -t "${REPO_NAME}:${SHA}-py39" \
-  -t "${REPO_NAME}:${REFSPEC}-py39" \
-  -t "${REPO_NAME}:${LATEST_TAG}-py39" \
-  --build-arg PY_VER="3.9-slim"\
+  -t "${REPO_NAME}:${SHA}-py310" \
+  -t "${REPO_NAME}:${REFSPEC}-py310" \
+  -t "${REPO_NAME}:${LATEST_TAG}-py310" \
+  --build-arg PY_VER="3.10-slim"\
   --label "sha=${SHA}" \
   --label "built_at=$(date)" \
-  --label "target=lean39" \
+  --label "target=lean310" \
   --label "build_actor=${GITHUB_ACTOR}" \
   .
 
diff --git a/.github/workflows/superset-applitool-cypress.yml 
b/.github/workflows/superset-applitool-cypress.yml
index 2647d7a068..7222ed17d4 100644
--- a/.github/workflows/superset-applitool-cypress.yml
+++ b/.github/workflows/superset-applitool-cypress.yml
@@ -60,7 +60,7 @@ jobs:
       - name: Setup Python
         uses: actions/setup-python@v4
         with:
-          python-version: "3.8"
+          python-version: "3.9"
       - name: OS dependencies
         uses: ./.github/actions/cached-dependencies
         with:
diff --git a/.github/workflows/superset-cli.yml 
b/.github/workflows/superset-cli.yml
index 160c60965e..129ecc117a 100644
--- a/.github/workflows/superset-cli.yml
+++ b/.github/workflows/superset-cli.yml
@@ -13,7 +13,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.9]
+        python-version: ["3.9"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
diff --git a/.github/workflows/superset-e2e.yml 
b/.github/workflows/superset-e2e.yml
index 3afdbe2cf3..e1b090a5f3 100644
--- a/.github/workflows/superset-e2e.yml
+++ b/.github/workflows/superset-e2e.yml
@@ -69,7 +69,7 @@ jobs:
         if: steps.check.outcome == 'failure'
         uses: actions/setup-python@v4
         with:
-          python-version: "3.8"
+          python-version: "3.9"
       - name: OS dependencies
         if: steps.check.outcome == 'failure'
         uses: ./.github/actions/cached-dependencies
diff --git a/.github/workflows/superset-helm-lint.yml 
b/.github/workflows/superset-helm-lint.yml
index a0eca21796..4bb888e15d 100644
--- a/.github/workflows/superset-helm-lint.yml
+++ b/.github/workflows/superset-helm-lint.yml
@@ -22,7 +22,7 @@ jobs:
 
       - uses: actions/setup-python@v4
         with:
-          python-version: 3.8
+          python-version: "3.9"
 
       - name: Set up chart-testing
         uses: ./.github/actions/chart-testing-action
diff --git a/.github/workflows/superset-python-integrationtest.yml 
b/.github/workflows/superset-python-integrationtest.yml
index 7b3da06283..40096c2eb8 100644
--- a/.github/workflows/superset-python-integrationtest.yml
+++ b/.github/workflows/superset-python-integrationtest.yml
@@ -14,7 +14,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -80,7 +80,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8, 3.9]
+        python-version: ["3.9", "3.10"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -147,7 +147,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
diff --git a/.github/workflows/superset-python-misc.yml 
b/.github/workflows/superset-python-misc.yml
index bb284a58ab..400c217ed4 100644
--- a/.github/workflows/superset-python-misc.yml
+++ b/.github/workflows/superset-python-misc.yml
@@ -14,7 +14,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     steps:
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@v3
@@ -54,7 +54,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     steps:
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@v3
@@ -95,7 +95,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     steps:
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@v3
diff --git a/.github/workflows/superset-python-presto-hive.yml 
b/.github/workflows/superset-python-presto-hive.yml
index f817b32df0..9349549848 100644
--- a/.github/workflows/superset-python-presto-hive.yml
+++ b/.github/workflows/superset-python-presto-hive.yml
@@ -14,7 +14,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -91,7 +91,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     env:
       PYTHONPATH: ${{ github.workspace }}
       SUPERSET_CONFIG: tests.integration_tests.superset_test_config
diff --git a/.github/workflows/superset-python-unittest.yml 
b/.github/workflows/superset-python-unittest.yml
index ad620d3227..3fdc315b02 100644
--- a/.github/workflows/superset-python-unittest.yml
+++ b/.github/workflows/superset-python-unittest.yml
@@ -14,7 +14,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8, 3.9]
+        python-version: ["3.9", "3.10"]
     env:
       PYTHONPATH: ${{ github.workspace }}
     steps:
diff --git a/.github/workflows/superset-translations.yml 
b/.github/workflows/superset-translations.yml
index 65641a8b67..c903b92269 100644
--- a/.github/workflows/superset-translations.yml
+++ b/.github/workflows/superset-translations.yml
@@ -35,7 +35,7 @@ jobs:
     runs-on: ubuntu-20.04
     strategy:
       matrix:
-        python-version: [3.8]
+        python-version: ["3.9"]
     steps:
       - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
         uses: actions/checkout@v3
diff --git a/Dockerfile b/Dockerfile
index aa83ff5fdb..0745294b45 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,7 +18,7 @@
 ######################################################################
 # Node stage to deal with static asset construction
 ######################################################################
-ARG PY_VER=3.8.16-slim
+ARG PY_VER=3.9.16-slim
 
 # if BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
 ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
diff --git a/Makefile b/Makefile
index fbe0fc8bfc..14e7bb17ef 100644
--- a/Makefile
+++ b/Makefile
@@ -15,8 +15,8 @@
 # limitations under the License.
 #
 
-# Python version installed; we need 3.8-3.11
-PYTHON=`command -v python3.11 || command -v python3.10 || command -v python3.9 
|| command -v python3.8`
+# Python version installed; we need 3.9-3.11
+PYTHON=`command -v python3.11 || command -v python3.10 || command -v python3.9`
 
 .PHONY: install superset venv pre-commit
 
@@ -70,7 +70,7 @@ update-js:
 
 venv:
        # Create a virtual environment and activate it (recommended)
-       if ! [ -x "${PYTHON}" ]; then echo "You need Python 3.8, 3.9, 3.10 or 
3.11 installed"; exit 1; fi
+       if ! [ -x "${PYTHON}" ]; then echo "You need Python 3.9, 3.10 or 3.11 
installed"; exit 1; fi
        test -d venv || ${PYTHON} -m venv venv # setup a python3 virtualenv
        . venv/bin/activate
 
diff --git a/UPDATING.md b/UPDATING.md
index 1d5f938515..b001ffc467 100644
--- a/UPDATING.md
+++ b/UPDATING.md
@@ -46,6 +46,7 @@ assists people when migrating to a new version.
 - [21163](https://github.com/apache/superset/pull/21163): The time grain will 
be decoupled from the time filter column and the time grain control will move 
below the X-Axis control when `GENERIC_CHART_AXES` feature flags set to `True`. 
The time grain will be applied on the time column in the column-like controls(x 
axis, dimensions) instead of the time column in the time section.
 - [21284](https://github.com/apache/superset/pull/21284): The non-functional 
`MAX_TABLE_NAMES` config key has been removed.
 - [21794](https://github.com/apache/superset/pull/21794): Deprecates the 
undocumented `PRESTO_SPLIT_VIEWS_FROM_TABLES` feature flag. Now for Presto, 
like other engines, only physical tables are treated as tables.
+- [23890](https://github.com/apache/superset/pull/23890): Removes Python 3.8 
support.
 
 ### Breaking Changes
 
diff --git a/docs/docs/contributing/local-backend.mdx 
b/docs/docs/contributing/local-backend.mdx
index 36d4586fe0..5056f16736 100644
--- a/docs/docs/contributing/local-backend.mdx
+++ b/docs/docs/contributing/local-backend.mdx
@@ -12,7 +12,7 @@ version: 1
 Make sure your machine meets the [OS 
dependencies](https://superset.apache.org/docs/installation/installing-superset-from-scratch#os-dependencies)
 before following these steps.
 You also need to install MySQL or [MariaDB](https://mariadb.com/downloads).
 
-Ensure that you are using Python version 3.8 or 3.9, then proceed with:
+Ensure that you are using Python version 3.9 or 3.10, then proceed with:
 
 ```bash
 # Create a virtual environment and activate it (recommended)
diff --git a/requirements/base.txt b/requirements/base.txt
index 3e7b872dc3..720a77d57c 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -122,8 +122,6 @@ geographiclib==1.52
     # via geopy
 geopy==2.2.0
     # via apache-superset
-graphlib-backport==1.0.3
-    # via apache-superset
 greenlet==2.0.2
     # via sqlalchemy
 gunicorn==20.1.0
diff --git a/scripts/benchmark_migration.py b/scripts/benchmark_migration.py
index baae8befec..83c06456a1 100644
--- a/scripts/benchmark_migration.py
+++ b/scripts/benchmark_migration.py
@@ -19,16 +19,16 @@ import logging
 import re
 import time
 from collections import defaultdict
+from graphlib import TopologicalSorter
 from inspect import getsource
 from pathlib import Path
 from types import ModuleType
-from typing import Dict, List, Set, Type
+from typing import Any, Dict, List, Set, Type
 
 import click
 from flask import current_app
 from flask_appbuilder import Model
 from flask_migrate import downgrade, upgrade
-from graphlib import TopologicalSorter  # pylint: disable=wrong-import-order
 from progress.bar import ChargingBar
 from sqlalchemy import create_engine, inspect
 from sqlalchemy.ext.automap import automap_base
@@ -120,7 +120,7 @@ def find_models(module: ModuleType) -> List[Type[Model]]:
     # sort topologically so we can create entities in order and
     # maintain relationships (eg, create a database before creating
     # a slice)
-    sorter = TopologicalSorter()
+    sorter: TopologicalSorter[Any] = TopologicalSorter()
     for model in models:
         inspector = inspect(model)
         dependent_tables: List[str] = []
diff --git a/setup.cfg b/setup.cfg
index 970fd4ca82..41db2332ab 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -30,7 +30,7 @@ combine_as_imports = true
 include_trailing_comma = true
 line_length = 88
 known_first_party = superset
-known_third_party 
=alembic,apispec,backoff,cachelib,celery,click,colorama,cron_descriptor,croniter,cryptography,dateutil,deprecation,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,graphlib,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,nh3,numpy,pandas,parameterized,parsedatetime,pgsanity,pkg_resources
 [...]
+known_third_party 
=alembic,apispec,backoff,cachelib,celery,click,colorama,cron_descriptor,croniter,cryptography,dateutil,deprecation,flask,flask_appbuilder,flask_babel,flask_caching,flask_compress,flask_jwt_extended,flask_login,flask_migrate,flask_sqlalchemy,flask_talisman,flask_testing,flask_wtf,freezegun,geohash,geopy,holidays,humanize,isodate,jinja2,jwt,markdown,markupsafe,marshmallow,marshmallow_enum,msgpack,nh3,numpy,pandas,parameterized,parsedatetime,pgsanity,pkg_resources,polyline
 [...]
 multi_line_output = 3
 order_by_type = false
 
diff --git a/setup.py b/setup.py
index e20c1eb07e..bc99c26959 100644
--- a/setup.py
+++ b/setup.py
@@ -92,7 +92,6 @@ setup(
         "flask-wtf>=1.0.1, <1.1",
         "func_timeout",
         "geopy",
-        "graphlib-backport",
         "gunicorn>=20.1.0; sys_platform != 'win32'",
         "hashids>=1.3.1, <2",
         "holidays>=0.23, <0.24",
@@ -186,13 +185,12 @@ setup(
         "vertica": ["sqlalchemy-vertica-python>=0.5.9, < 0.6"],
         "netezza": ["nzalchemy>=11.0.2"],
     },
-    python_requires="~=3.8",
+    python_requires="~=3.9",
     author="Apache Software Foundation",
     author_email="[email protected]",
     url="https://superset.apache.org/";,
     download_url="https://www.apache.org/dist/superset/"; + version_string,
     classifiers=[
-        "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",

Reply via email to