diff --git a/.changes/unreleased/Under the Hood-20241016-144056.yaml b/.changes/unreleased/Under the Hood-20241016-144056.yaml new file mode 100644 index 00000000000..454724607cc --- /dev/null +++ b/.changes/unreleased/Under the Hood-20241016-144056.yaml @@ -0,0 +1,6 @@ +kind: Under the Hood +body: Remove support and testing for Python 3.8, which is now EOL. +time: 2024-10-16T14:40:56.451972-04:00 +custom: + Author: gshank peterallenwebb + Issue: "10861" diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9ce9cc432ad..32806be4e16 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.9' - name: Install python dependencies run: | @@ -74,7 +74,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: [ "3.9", "3.10", "3.11"] env: TOXENV: "unit" @@ -139,7 +139,7 @@ jobs: - name: generate include id: generate-include run: | - INCLUDE=('"python-version":"3.8","os":"windows-latest"' '"python-version":"3.8","os":"macos-12"' ) + INCLUDE=('"python-version":"3.9","os":"windows-latest"' '"python-version":"3.9","os":"macos-12"' ) INCLUDE_GROUPS="[" for include in ${INCLUDE[@]}; do for group in $(seq 1 ${{ env.PYTHON_INTEGRATION_TEST_WORKERS }}); do @@ -161,7 +161,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: [ "3.9", "3.10", "3.11"] os: [ubuntu-20.04] split-group: ${{ fromJson(needs.integration-metadata.outputs.split-groups) }} include: ${{ fromJson(needs.integration-metadata.outputs.include) }} @@ -256,7 +256,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.9' - name: Install python dependencies run: | diff --git a/.github/workflows/schema-check.yml b/.github/workflows/schema-check.yml index 7756b8ca765..8e3cd6fbe99 100644 --- a/.github/workflows/schema-check.yml +++ b/.github/workflows/schema-check.yml @@ -39,7 +39,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.9 - name: Checkout dbt repo uses: actions/checkout@v4 diff --git a/.github/workflows/structured-logging-schema-check.yml b/.github/workflows/structured-logging-schema-check.yml index 895ec63e2e1..0f5810f681c 100644 --- a/.github/workflows/structured-logging-schema-check.yml +++ b/.github/workflows/structured-logging-schema-check.yml @@ -76,7 +76,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: "3.8" + python-version: "3.9" - name: Install python dependencies run: | diff --git a/.github/workflows/test-repeater.yml b/.github/workflows/test-repeater.yml index 315133336e8..c10088d0ae0 100644 --- a/.github/workflows/test-repeater.yml +++ b/.github/workflows/test-repeater.yml @@ -27,7 +27,6 @@ on: description: 'Version of Python to Test Against' type: choice options: - - '3.8' - '3.9' - '3.10' - '3.11' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2c01d584893..27685b1d941 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ exclude: ^(core/dbt/docs/build/|core/dbt/events/types_pb2.py) -# Force all unspecified python hooks to run python 3.8 +# Force all unspecified python hooks to run python 3.9 default_language_version: python: python3 diff --git a/Dockerfile.test b/Dockerfile.test index 46effbf3c47..d6cb29023cb 100644 --- a/Dockerfile.test +++ b/Dockerfile.test @@ -30,19 +30,9 @@ RUN apt-get update \ unixodbc-dev \ && add-apt-repository ppa:deadsnakes/ppa \ && apt-get install -y \ - python \ - python-dev \ + python-is-python3 \ + python-dev-is-python3 \ python3-pip \ - python3.6 \ - python3.6-dev \ - python3-pip \ - python3.6-venv \ - python3.7 \ - python3.7-dev \ - python3.7-venv \ - python3.8 \ - python3.8-dev \ - python3.8-venv \ python3.9 \ python3.9-dev \ python3.9-venv \ diff --git a/core/setup.py b/core/setup.py index 1adb5f67b64..8d1218c79d5 100644 --- a/core/setup.py +++ b/core/setup.py @@ -2,9 +2,9 @@ import os import sys -if sys.version_info < (3, 7, 2): +if sys.version_info < (3, 9): print("Error: dbt does not support this version of Python.") - print("Please upgrade to Python 3.7.2 or higher.") + print("Please upgrade to Python 3.9 or higher.") sys.exit(1) @@ -79,11 +79,9 @@ "Operating System :: Microsoft :: Windows", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", ], - python_requires=">=3.7.2", + python_requires=">=3.9", )