From 9e61d5b96f35398608202ccb603068ced1b4fb97 Mon Sep 17 00:00:00 2001 From: colin-rogers-dbt <111200756+colin-rogers-dbt@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:45:03 -0700 Subject: [PATCH] backport 637 to 1.5.latest (#669) * Dropped support for Python 3.7 (#637) * update RELEASE_BRANCH env * drop support for python 3.7 * add changelog entry (cherry picked from commit f0af9162a01f8894023b5c34be492f420925919f) * remove dup classifiers entry --------- Co-authored-by: Matthew McKnight <91097623+McKnight-42@users.noreply.github.com> --- .../unreleased/Under the Hood-20230530-161341.yaml | 6 ++++++ .github/scripts/integration-test-matrix.js | 2 +- .github/workflows/main.yml | 4 ++-- CONTRIBUTING.md | 2 +- dev-requirements.txt | 12 +++++------- setup.py | 9 ++++----- tox.ini | 6 +++--- 7 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 .changes/unreleased/Under the Hood-20230530-161341.yaml diff --git a/.changes/unreleased/Under the Hood-20230530-161341.yaml b/.changes/unreleased/Under the Hood-20230530-161341.yaml new file mode 100644 index 000000000..31acaf121 --- /dev/null +++ b/.changes/unreleased/Under the Hood-20230530-161341.yaml @@ -0,0 +1,6 @@ +kind: Under the Hood +body: remove support for python 3.7 +time: 2023-05-30T16:13:41.217839-05:00 +custom: + Author: McKnight-42 + Issue: "638" diff --git a/.github/scripts/integration-test-matrix.js b/.github/scripts/integration-test-matrix.js index b1c290fbf..5cc39722e 100644 --- a/.github/scripts/integration-test-matrix.js +++ b/.github/scripts/integration-test-matrix.js @@ -1,6 +1,6 @@ module.exports = ({ context }) => { const defaultPythonVersion = "3.8"; - const supportedPythonVersions = ["3.7", "3.8", "3.9", "3.10", "3.11"]; + const supportedPythonVersions = ["3.8", "3.9", "3.10", "3.11"]; const supportedAdapters = ["snowflake"]; // if PR, generate matrix based on files changed and PR labels diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8c067fdab..d1a808cdc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -72,7 +72,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] env: TOXENV: "unit" @@ -174,7 +174,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - name: Set up Python ${{ matrix.python-version }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d8cb81d83..45e0054c5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,7 +79,7 @@ WARNING: The parameters in your `test.env` file must link to a valid Snowflake a There are a few methods for running tests locally. #### `tox` -`tox` automatically runs unit tests against several Python versions using its own virtualenvs. Run `tox -p` to run unit tests for Python 3.7, Python 3.8, Python 3.9, Python 3.10, and `flake8` in parallel. Run `tox -e py37` to invoke tests on Python version 3.7 only (use py37, py38, py39, or py310). Tox recipes are found in `tox.ini`. +`tox` automatically runs unit tests against several Python versions using its own virtualenvs. Run `tox -p` to run unit tests for Python 3.8, Python 3.9, Python 3.10, and `flake8` in parallel. Run `tox -e py38` to invoke tests on Python version 3.8 only (use py38, py39, or py310). Tox recipes are found in `tox.ini`. #### `pytest` You may run a specific test or group of tests using `pytest` directly. Activate a Python virtualenv active with dev dependencies installed. Then, run tests like so: diff --git a/dev-requirements.txt b/dev-requirements.txt index 457e9d7df..769c7df06 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -8,25 +8,23 @@ git+https://github.com/dbt-labs/dbt-core.git@1.5.latest#egg=dbt-tests-adapter&su black~=23.1 bumpversion~=0.6.0 click~=8.1 -flake8~=5.0;python_version=="3.7" flake8~=6.0;python_version>="3.8" flaky~=3.7 freezegun~=1.2 ipdb~=0.13.13 -mypy==1.1.1 # patch updates have historically introduced breaking changes -pip-tools~=6.12 -pre-commit~=2.21;python_version=="3.7" +mypy==1.3.0 # patch updates have historically introduced breaking changes +pip-tools~=6.13 pre-commit~=3.2;python_version>="3.8" pre-commit-hooks~=4.4 -pytest~=7.2 +pytest~=7.3 pytest-csv~=3.0 pytest-dotenv~=0.5.2 pytest-logbook~=1.2 pytest-xdist~=3.2 -pytz~=2023.2 +pytz~=2023.3 tox~=3.0;python_version=="3.7" tox~=4.4;python_version>="3.8" -types-pytz~=2023.2 +types-pytz~=2023.3 types-requests~=2.28 twine~=4.0 wheel~=0.40 diff --git a/setup.py b/setup.py index b9b8e8d72..e805a878d 100644 --- a/setup.py +++ b/setup.py @@ -3,10 +3,10 @@ import sys import re -# require python 3.7 or newer -if sys.version_info < (3, 7): +# require python 3.8 or newer +if sys.version_info < (3, 8): print("Error: dbt does not support this version of Python.") - print("Please upgrade to Python 3.7 or higher.") + print("Please upgrade to Python 3.8 or higher.") sys.exit(1) @@ -77,11 +77,10 @@ def _get_dbt_core_version(): "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", + python_requires=">=3.8", ) diff --git a/tox.ini b/tox.ini index 36d8c4baa..2c02bb569 100644 --- a/tox.ini +++ b/tox.ini @@ -1,8 +1,8 @@ [tox] skipsdist = True -envlist = py37,py38,py39,py310,py311 +envlist = py38,py39,py310,py311 -[testenv:{unit,py37,py38,py39,py310,py311,py}] +[testenv:{unit,py38,py39,py310,py311,py}] description = unit testing skip_install = true passenv = @@ -13,7 +13,7 @@ deps = -rdev-requirements.txt -e. -[testenv:{integration,py37,py38,py39,py310,py311,py}-{snowflake}] +[testenv:{integration,py38,py39,py310,py311,py}-{snowflake}] description = adapter plugin integration testing skip_install = true passenv =