From 1a401a8bcfed32c6c0f11a8bcf045e06ba290eb3 Mon Sep 17 00:00:00 2001 From: Andrew Port Date: Wed, 26 Aug 2026 19:32:20 -0400 Subject: [PATCH 1/2] Add Python 3.14 to CI test matrix Also update checkout and setup-python actions to current versions; setup-python@v2 predates Python 3.14 support. Co-Authored-By: Claude Fable 5 --- .github/workflows/github-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index e4876c9..03b6bed 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -12,13 +12,13 @@ jobs: strategy: matrix: os: [ubuntu-24.04, macos-15, windows-2025] - python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] + python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13", "3.14"] steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 # configure python - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} From c8df5906079ea05e4caa13b6108fbde72fe26690 Mon Sep 17 00:00:00 2001 From: Andrew Port Date: Wed, 26 Aug 2026 20:01:46 -0400 Subject: [PATCH 2/2] Apply CodeRabbit review suggestions from PR #249 - Advertise Python 3.14 support in PyPI classifiers - Restrict workflow GITHUB_TOKEN to read-only contents - Disable checkout credential persistence in CI Co-Authored-By: Claude Fable 5 --- .github/workflows/github-ci.yml | 5 +++++ setup.py | 1 + 2 files changed, 6 insertions(+) diff --git a/.github/workflows/github-ci.yml b/.github/workflows/github-ci.yml index 03b6bed..e20dfc0 100644 --- a/.github/workflows/github-ci.yml +++ b/.github/workflows/github-ci.yml @@ -5,6 +5,9 @@ on: pull_request: workflow_dispatch: +permissions: + contents: read + jobs: build: runs-on: ${{ matrix.os }} @@ -16,6 +19,8 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 + with: + persist-credentials: false # configure python - uses: actions/setup-python@v5 diff --git a/setup.py b/setup.py index 1840c42..52f5fee 100644 --- a/setup.py +++ b/setup.py @@ -46,6 +46,7 @@ def read(relative_path): "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Multimedia :: Graphics :: Editors :: Vector-Based", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Image Recognition",