From e34dfc0c1219e81cedc9285c1f62ec3127fa1707 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Wed, 8 Oct 2025 20:26:21 +0300 Subject: [PATCH 1/3] Python 3.14 is out --- .github/workflows/build.yml | 1 + CHANGES.rst | 3 +++ appveyor.yml | 1 + setup.py | 1 + src/check_python_versions/versions.py | 2 +- tox.ini | 2 +- 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 146114e..22602e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,6 +26,7 @@ jobs: - "3.11" - "3.12" - "3.13" + - "3.14" - "pypy3.10" steps: diff --git a/CHANGES.rst b/CHANGES.rst index 4b2de77..c0bb598 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,9 @@ Changelog 0.23.0 (unreleased) ------------------- +- Add support for Python 3.14: treat it as a released version, run CI tests on + 3.14. + - New option ``--allow-non-packages`` so you can automate tox.ini or GitHub workflow updates in projects that are not Python packages. diff --git a/appveyor.yml b/appveyor.yml index ccdc1d5..bc19f3f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,6 +10,7 @@ environment: - PYTHON: "C:\\Python311" - PYTHON: "C:\\Python312" - PYTHON: "C:\\Python313" + - PYTHON: "C:\\Python314" init: - "echo %PYTHON%" diff --git a/setup.py b/setup.py index 029063e..a04dbdd 100755 --- a/setup.py +++ b/setup.py @@ -57,6 +57,7 @@ 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', ], diff --git a/src/check_python_versions/versions.py b/src/check_python_versions/versions.py index a5f2cf7..7fdebab 100644 --- a/src/check_python_versions/versions.py +++ b/src/check_python_versions/versions.py @@ -11,7 +11,7 @@ MAX_PYTHON_1_VERSION = 6 # i.e. 1.6 MAX_PYTHON_2_VERSION = 7 # i.e. 2.7 -CURRENT_PYTHON_3_VERSION = 13 # i.e. 3.13 +CURRENT_PYTHON_3_VERSION = 14 # i.e. 3.14 MAX_MINOR_FOR_MAJOR = { 1: MAX_PYTHON_1_VERSION, diff --git a/tox.ini b/tox.ini index 748e1d1..33d2366 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38,py39,py310,py311,py312,py313,pypy3,flake8,mypy,isort,coverage +envlist = py38,py39,py310,py311,py312,py313,py314,pypy3,flake8,mypy,isort,coverage [testenv] deps = From 3ad25f29913888d0fa65fbf70d1dbdd73e7ce0c7 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Tue, 14 Oct 2025 09:00:53 +0300 Subject: [PATCH 2/3] Let's try GitHub Actions for Windows testing Because Appveyor doesn't work and I don't want to spend time investigating why. --- .github/workflows/build.yml | 16 ++++++---------- appveyor.yml | 34 ---------------------------------- 2 files changed, 6 insertions(+), 44 deletions(-) delete mode 100644 appveyor.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 22602e8..e54c874 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ on: jobs: build: name: Python ${{ matrix.python-version }} - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: @@ -28,6 +28,9 @@ jobs: - "3.13" - "3.14" - "pypy3.10" + os: + - ubuntu-latest + - windows-latest steps: - name: Git clone @@ -37,15 +40,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: "${{ matrix.python-version }}" - - - name: Pip cache - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('setup.py') }} - restore-keys: | - ${{ runner.os }}-pip-${{ matrix.python-version }}- - ${{ runner.os }}-pip- + cache: pip + cache-dependency-path: setup.py - name: Install dependencies run: | diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index bc19f3f..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: build-{build}-{branch} - -environment: - matrix: - # https://www.appveyor.com/docs/installed-software#python lists available - # versions - - PYTHON: "C:\\Python38" - - PYTHON: "C:\\Python39" - - PYTHON: "C:\\Python310" - - PYTHON: "C:\\Python311" - - PYTHON: "C:\\Python312" - - PYTHON: "C:\\Python313" - - PYTHON: "C:\\Python314" - -init: - - "echo %PYTHON%" - -install: - - ps: | - if (-not (Test-Path $env:PYTHON)) { - curl -o install_python.ps1 https://raw.githubusercontent.com/matthew-brett/multibuild/11a389d78892cf90addac8f69433d5e22bfa422a/install_python.ps1 - .\install_python.ps1 - } - - ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" } - - "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - python --version - - pip install -U virtualenv # upgrade pip in tox's virtualenvs - - pip install setuptools # the test suite needs the system python to have setuptools - - pip install tox - -build: off - -test_script: - - tox -e py From 2d36892e1517de134e0e9bb0b918a54076f0105c Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Tue, 14 Oct 2025 09:02:40 +0300 Subject: [PATCH 3/3] Naming is important --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e54c874..ce9bb43 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ on: jobs: build: - name: Python ${{ matrix.python-version }} + name: Python ${{ matrix.python-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: