From f9c340d783d3ec961ec49bfa5fefc38ed32f67f0 Mon Sep 17 00:00:00 2001 From: Mike Alfare <13974384+mikealfare@users.noreply.github.com> Date: Wed, 31 May 2023 11:22:54 -0400 Subject: [PATCH] Drop support for py37 (#742) * drop support for py37 * drop support for py37 * drop support for py37 (cherry picked from commit 863c2f833c92c3edabb6a3504985294e56fd29d0) --- .../Breaking Changes-20230530-174051.yaml | 6 ++++++ .github/scripts/integration-test-matrix.js | 2 +- .github/workflows/main.yml | 4 ++-- CONTRIBUTING.md | 2 +- dev-requirements.txt | 21 ++++++++----------- setup.py | 5 ++--- tox.ini | 8 +++---- 7 files changed, 25 insertions(+), 23 deletions(-) create mode 100644 .changes/unreleased/Breaking Changes-20230530-174051.yaml diff --git a/.changes/unreleased/Breaking Changes-20230530-174051.yaml b/.changes/unreleased/Breaking Changes-20230530-174051.yaml new file mode 100644 index 000000000..c4d90db97 --- /dev/null +++ b/.changes/unreleased/Breaking Changes-20230530-174051.yaml @@ -0,0 +1,6 @@ +kind: Breaking Changes +body: Drop support for python 3.7 +time: 2023-05-30T17:40:51.510639-04:00 +custom: + Author: mikealfare + Issue: dbt-labs/dbt-core/7082 diff --git a/.github/scripts/integration-test-matrix.js b/.github/scripts/integration-test-matrix.js index 58acf364d..bf7fd2ef7 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 = ["bigquery"]; // if PR, generate matrix based on files changed and PR labels diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 74659c7ff..d2669b2d9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -71,7 +71,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 e0c905b39..e9432d363 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -67,7 +67,7 @@ $EDITOR test.env There are a few methods for running tests locally. #### `tox` -`tox` takes care of managing Python virtualenvs and installing dependencies in order to run tests. You can also run tests in parallel, for example you can run unit tests for Python 3.7, Python 3.8, Python 3.9, and `flake8` checks in parallel with `tox -p`. Also, you can run unit tests for specific python versions with `tox -e py37`. The configuration of these tests are located in `tox.ini`. +`tox` takes care of managing Python virtualenvs and installing dependencies in order to run tests. You can also run tests in parallel, for example you can run unit tests for Python 3.8, Python 3.9, and `flake8` checks in parallel with `tox -p`. Also, you can run unit tests for specific python versions with `tox -e py38`. The configuration of these tests are located in `tox.ini`. #### `pytest` Finally, you can also run a specific test or group of tests using `pytest` directly. With a Python virtualenv active and dev dependencies installed you can do things like: diff --git a/dev-requirements.txt b/dev-requirements.txt index 14c485f2c..425e71ada 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -5,28 +5,25 @@ git+https://github.com/dbt-labs/dbt-core.git@1.5.latest#egg=dbt-tests-adapter&su # if version 1.x or greater -> pin to major version # if version 0.x -> pin to minor -black~=23.1 +black~=23.3 bumpversion~=0.6.0 click~=8.1 -flake8~=5.0;python_version=="3.7" -flake8~=6.0;python_version>="3.8" +flake8~=6.0 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" -pre-commit~=3.2;python_version>="3.8" +mypy==1.2.0 # patch updates have historically introduced breaking changes +pip-tools~=6.13 +pre-commit~=3.2 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 -tox~=3.0;python_version=="3.7" -tox~=4.4;python_version>="3.8" -types-pytz~=2023.2 +pytz~=2023.3 +tox~=4.4 +types-pytz~=2023.3 types-requests~=2.28 types-protobuf~=4.22 twine~=4.0 diff --git a/setup.py b/setup.py index 70b35d5a4..e45c283fa 100644 --- a/setup.py +++ b/setup.py @@ -2,9 +2,9 @@ import sys # require python 3.7 or newer -if sys.version_info < (3, 7): +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) try: @@ -87,7 +87,6 @@ def _dbt_core_version(plugin_version: str) -> str: "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", diff --git a/tox.ini b/tox.ini index 4d552ab44..efa18083d 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}-{bigquery}] +[testenv:{integration,py38,py39,py310,py311,py}-{bigquery}] description = adapter plugin integration testing skip_install = true passenv = @@ -28,7 +28,7 @@ deps = -rdev-requirements.txt -e. -[testenv:{python-tests,py37,py38,py39,py310,py311,py}] +[testenv:{python-tests,py38,py39,py310,py311,py}] description = python integration testing skip_install = true passenv =