From 1f14f96d3e23df7bed2311e17b3dae12329ad86b Mon Sep 17 00:00:00 2001 From: Sean Hammond Date: Tue, 11 Jun 2024 17:39:29 +0100 Subject: [PATCH] Upgrade Python patch versions and add 3.12 --- .cookiecutter/cookiecutter.json | 2 +- .github/workflows/ci.yml | 12 ++++++------ .python-version | 7 ++++--- Makefile | 18 ++++++++++++++---- README.md | 2 +- bin/make_python | 2 +- tox.ini | 2 +- 7 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.cookiecutter/cookiecutter.json b/.cookiecutter/cookiecutter.json index 969c9c5..df518b0 100644 --- a/.cookiecutter/cookiecutter.json +++ b/.cookiecutter/cookiecutter.json @@ -10,7 +10,7 @@ "package_name": "tox_recreate", "slug": "tox-recreate", "short_description": "Recreate tox virtual environments when setup.cfg changes.", - "python_versions": "3.11.9 3.10.6, 3.9.13, 3.8.13", + "python_versions": "3.12.4, 3.11.9, 3.10.14, 3.9.19, 3.8.19", "github_owner": "hypothesis", "copyright_holder": "Hypothesis", "public": "yes", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5259395..b52afbe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - name: Install Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - run: python -m pip install 'tox<4' - run: tox -e checkformatting Lint: @@ -32,7 +32,7 @@ jobs: - name: Install Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - run: python -m pip install 'tox<4' - run: tox -e lint Typecheck: @@ -42,14 +42,14 @@ jobs: - name: Install Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - run: python -m pip install 'tox<4' - run: tox -e typecheck Tests: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.11', '3.10', '3.9', '3.8'] + python-version: ['3.12', '3.11', '3.10', '3.9', '3.8'] name: Unit tests with Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v3 @@ -74,7 +74,7 @@ jobs: - name: Install Python uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - name: Download coverage files uses: actions/download-artifact@v3 with: @@ -85,7 +85,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.11', '3.10', '3.9', '3.8'] + python-version: ['3.12', '3.11', '3.10', '3.9', '3.8'] name: Functional tests with Python ${{ matrix.python-version }} steps: - uses: actions/checkout@v3 diff --git a/.python-version b/.python-version index b5d48da..29afc11 100644 --- a/.python-version +++ b/.python-version @@ -1,4 +1,5 @@ +3.12.4 3.11.9 -3.10.6 -3.9.13 -3.8.13 +3.10.14 +3.9.19 +3.8.19 diff --git a/Makefile b/Makefile index dc20ba6..6f2f850 100644 --- a/Makefile +++ b/Makefile @@ -34,10 +34,15 @@ checkformatting: python @pyenv exec tox -qe checkformatting .PHONY: test -$(call help,make test,"run the unit tests in Python 3.11") +$(call help,make test,"run the unit tests in Python 3.12") test: python @pyenv exec tox -qe tests +.PHONY: test-py311 +$(call help,make test-py311,"run the unit tests in Python 3.11") +test-py311: python + @pyenv exec tox -qe py311-tests + .PHONY: test-py310 $(call help,make test-py310,"run the unit tests in Python 3.10") test-py310: python @@ -56,13 +61,18 @@ test-py38: python .PHONY: coverage $(call help,make coverage,"run the tests and print the coverage report") coverage: python - @pyenv exec tox --parallel -qe 'tests,py{310,39,38}-tests,coverage' + @pyenv exec tox --parallel -qe 'tests,py{311,310,39,38}-tests,coverage' .PHONY: functests -$(call help,make functests,"run the functional tests in Python 3.11") +$(call help,make functests,"run the functional tests in Python 3.12") functests: python @pyenv exec tox -qe functests +.PHONY: functests-py311 +$(call help,make functests-py311,"run the functional tests in Python 3.11") +functests-py311: python + @pyenv exec tox -qe py311-functests + .PHONY: functests-py310 $(call help,make functests-py310,"run the functional tests in Python 3.10") functests-py310: python @@ -82,7 +92,7 @@ functests-py38: python $(call help,make sure,"make sure that the formatting$(comma) linting and tests all pass") sure: python sure: - @pyenv exec tox --parallel -qe 'checkformatting,lint,typecheck,tests,py{310,39,38}-tests,coverage,functests,py{310,39,38}-functests' + @pyenv exec tox --parallel -qe 'checkformatting,lint,typecheck,tests,py{311,310,39,38}-tests,coverage,functests,py{311,310,39,38}-functests' .PHONY: template $(call help,make template,"update from the latest cookiecutter template") diff --git a/README.md b/README.md index a3b3494..5f220c7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ - + diff --git a/bin/make_python b/bin/make_python index 9746c8d..a2266ab 100755 --- a/bin/make_python +++ b/bin/make_python @@ -8,7 +8,7 @@ if [ -n "${CI+x}" ]; then exit; fi pyenv_root=$(pyenv root) -for python_version in 3.11.9 3.10.6 3.9.13 3.8.13; do +for python_version in 3.12.4 3.11.9 3.10.14 3.9.19 3.8.19; do bin_dir=$pyenv_root/versions/$python_version/bin if [ ! -f "$bin_dir"/tox ]; then pyenv install --skip-existing "$python_version" diff --git a/tox.ini b/tox.ini index 5629d43..21d2202 100644 --- a/tox.ini +++ b/tox.ini @@ -46,7 +46,7 @@ deps = typecheck: mypy pluggy depends = - coverage: tests,py{310,39,38}-tests + coverage: tests,py{311,310,39,38}-tests commands = dev: {posargs:ipython --classic --no-banner --no-confirm-exit} format: black src tests bin