From 0e8223878240ce27a275586cea3240fb735520db Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 6 Nov 2025 15:01:35 +0200 Subject: [PATCH 1/4] Add Python 3.14, drop 3.8 and 3.9 --- .github/workflows/build.yml | 3 +-- CHANGES.rst | 6 ++++-- appveyor.yml | 3 +-- setup.py | 5 ++--- src/irclog2html/_version.py | 4 ++-- tox.ini | 2 +- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d0ca94d..56f54f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,12 +20,11 @@ jobs: strategy: matrix: python-version: - - "3.8" - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" - "pypy3.10" steps: diff --git a/CHANGES.rst b/CHANGES.rst index 004cf15..b7624f6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,10 +1,12 @@ Changelog ========= -4.0.1 (unreleased) +4.1.0 (unreleased) ------------------ -- Drop support for Python 3.7. +- Add support for Python 3.14. + +- Drop support for Python 3.7, 3.8, and 3.9. 4.0.0 (2024-10-17) diff --git a/appveyor.yml b/appveyor.yml index 3461342..b897ab1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,12 +4,11 @@ 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%" diff --git a/setup.py b/setup.py index a21079b..9627206 100755 --- a/setup.py +++ b/setup.py @@ -38,16 +38,15 @@ def read(filename): 'License :: OSI Approved :: GNU General Public License v2 (GPLv2)', 'License :: OSI Approved :: GNU General Public License v3 (GPLv3)', 'Operating System :: OS Independent', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', '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', ], - python_requires='>=3.8', + python_requires='>=3.10', keywords='irc log colorizer html wsgi', extras_require=dict(test=[ "zope.testing", diff --git a/src/irclog2html/_version.py b/src/irclog2html/_version.py index 7afa50b..53d9d97 100644 --- a/src/irclog2html/_version.py +++ b/src/irclog2html/_version.py @@ -1,3 +1,3 @@ -__version__ = '4.0.1.dev0' -__date__ = '2024-10-17' +__version__ = '4.1.0.dev0' +__date__ = '2025-11-06' __homepage__ = 'https://mg.pov.lt/irclog2html/' diff --git a/tox.ini b/tox.ini index 95b1cd5..04af5fa 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38, py39, py310, py311, py312, py313, pypy3, flake8 +envlist = py310, py311, py312, py313, py314, pypy3, flake8 [testenv] deps = From 065081008f40b6ee86cb61022ca2d6460775cc27 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 6 Nov 2025 15:02:27 +0200 Subject: [PATCH 2/4] Drop Appveyor, add Windows builds on GHA --- .github/workflows/build.yml | 21 +++++++++------------ appveyor.yml | 31 ------------------------------- 2 files changed, 9 insertions(+), 43 deletions(-) delete mode 100644 appveyor.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 56f54f8..9247b84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ on: jobs: build: - name: Python ${{ matrix.python-version }} - runs-on: ubuntu-latest + name: Python ${{ matrix.python-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} strategy: matrix: @@ -26,6 +26,9 @@ jobs: - "3.13" - "3.14" - "pypy3.10" + os: + - ubuntu-latest + - windows-latest steps: - name: Git clone @@ -35,22 +38,16 @@ 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: | python -m pip install -U pip python -m pip install -U setuptools wheel python -m pip install -U zope.testrunner coverage coveralls - python -m pip install -e .[test] + python -m pip install -e '.[test]' - name: Run tests run: coverage run -m zope.testrunner --test-path=src diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index b897ab1..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,31 +0,0 @@ -version: build-{build}-{branch} - -environment: - matrix: - # https://www.appveyor.com/docs/installed-software#python lists available - # versions - - 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 tox - -build: off - -test_script: - - tox -e py From b967c18920c450a3a22af817f391eb64664de112 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 6 Nov 2025 15:12:57 +0200 Subject: [PATCH 3/4] Oh pypy, you do you --- .github/workflows/build.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9247b84..8f5471d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,10 +25,17 @@ jobs: - "3.12" - "3.13" - "3.14" - - "pypy3.10" os: - ubuntu-latest - windows-latest + include: + # pypy3.10 on windows-latest fails one test, which I've briefly + # investigated and I think it's a bug in pypy -- the generator uses a + # with statement and closes the file before terminating, and the test + # uses the generator in a for loop, so it should guarantee + # termination and close the file before the cleanup code runs. + - python: "pypy3.10" + os: ubuntu-latest steps: - name: Git clone From b1895cc4285685ef519892656bdaaa67bf5555c9 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 6 Nov 2025 15:22:17 +0200 Subject: [PATCH 4/4] Whoops --- .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 8f5471d..28c6e1e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: # with statement and closes the file before terminating, and the test # uses the generator in a for loop, so it should guarantee # termination and close the file before the cleanup code runs. - - python: "pypy3.10" + - python-version: "pypy3.10" os: ubuntu-latest steps: