From 7e28b3672947c7d89c0761484c5c24cb91b07eb2 Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Mon, 26 Oct 2026 17:14:05 -0700 Subject: [PATCH] ci: narrow Python support to 3.12-3.14 (#356) ComfyUI recommends 3.13, names 3.12 as the fallback and 3.14 as working (its README); PromptManager supports exactly those. requires-python is >=3.12, the test matrix and the required checks drop 3.11, and bandit runs on 3.12. --- .github/branch-protection.json | 3 --- .github/workflows/code-quality.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- README.md | 4 ++-- pyproject.toml | 2 +- tests/test_packaging.py | 4 ++-- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/branch-protection.json b/.github/branch-protection.json index 9bb478dd..47797f48 100644 --- a/.github/branch-protection.json +++ b/.github/branch-protection.json @@ -2,15 +2,12 @@ "required_status_checks": { "strict": true, "contexts": [ - "py3.11 on ubuntu-latest", "py3.12 on ubuntu-latest", "py3.13 on ubuntu-latest", "py3.14 on ubuntu-latest", - "py3.11 on windows-latest", "py3.12 on windows-latest", "py3.13 on windows-latest", "py3.14 on windows-latest", - "py3.11 on macos-latest", "py3.12 on macos-latest", "py3.13 on macos-latest", "py3.14 on macos-latest", diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 81c404a3..4b9a9ca8 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -26,10 +26,10 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up Python 3.11 + - name: Set up Python 3.12 uses: actions/setup-python@v7 with: - python-version: "3.11" + python-version: "3.12" - name: Install bandit run: pip install bandit[toml] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f8a3488d..b4965c79 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ env: # Measured 2026-10-26 on runs 40257217681 (3be0ada), 40240706568 (fb9134f), 40228167328 (f9835aa): # py matrix, slowest py3.10 on windows-latest: 12m43s / 15m54s / 14m53s -> 27 min # (ubuntu 5m27s-6m27s, macos 6m14s-8m30s, windows 11m42s-15m54s) -# 3.10 left the matrix and 3.14 joined it in #356; re-measure after three green main runs. +# 3.10 and 3.11 left the matrix and 3.14 joined it in #356; re-measure after three green main runs. # real ComfyUI compatibility: 13m32s / 8m55s / 11m46s -> 24 min # coverage gate (85%): 7m26s / 7m22s / 7m54s -> 15 min # perf budget 30s / 29s / 27s, black and flake8 39s / 37s / 39s, @@ -40,7 +40,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.11", "3.12", "3.13", "3.14"] + python-version: ["3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v7 diff --git a/README.md b/README.md index 73fafd4a..787972c0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ComfyUI Prompt Manager ![License](https://img.shields.io/badge/license-MIT-blue.svg) -![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg) +![Python](https://img.shields.io/badge/python-3.12%2B-blue.svg) ![ComfyUI](https://img.shields.io/badge/ComfyUI-compatible-green.svg) ![Tests](https://github.com/ComfyAssets/ComfyUI_PromptManager/workflows/Tests/badge.svg) ![Code Quality](https://github.com/ComfyAssets/ComfyUI_PromptManager/workflows/Code%20Quality/badge.svg) @@ -929,7 +929,7 @@ node --test tests/js/*.test.js # frontend pure modules python -m coverage run -m tests.run_suite && python -m coverage combine && python -m coverage report ``` -CI runs the suite on Linux, Windows and macOS for Python 3.11 to 3.14 with an 85% coverage gate. `python -m unittest discover -s tests` still works; see `TESTING.md` ("Time limits and hangs") for the watchdog. Tests that delete a database file first check that nothing in the process still holds it open (`tests/open_handles.py`), so a connection leak fails on Linux the way it would on Windows. +CI runs the suite on Linux, Windows and macOS for Python 3.12 to 3.14 with an 85% coverage gate. `python -m unittest discover -s tests` still works; see `TESTING.md` ("Time limits and hangs") for the watchdog. Tests that delete a database file first check that nothing in the process still holds it open (`tests/open_handles.py`), so a connection leak fails on Linux the way it would on Windows. ### Code Style diff --git a/pyproject.toml b/pyproject.toml index 69d21cf3..c6b89a6f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "promptmanager" description = "A powerful ComfyUI custom node that extends the standard text encoder with persistent prompt storage, advanced search capabilities, and an automatic image gallery system using SQLite." version = "3.3.1" license = {file = "LICENSE"} -requires-python = ">=3.11" +requires-python = ">=3.12" dependencies = ["watchdog>=2.1.0", "Pillow>=8.0.0"] [build-system] diff --git a/tests/test_packaging.py b/tests/test_packaging.py index 7ea5e3ae..5ecd4b5e 100644 --- a/tests/test_packaging.py +++ b/tests/test_packaging.py @@ -47,8 +47,8 @@ class PyprojectContract(unittest.TestCase): } self.assertEqual(deps, wanted) - def test_requires_python_floor_is_3_11(self): - self.assertEqual(_pyproject()["project"]["requires-python"], ">=3.11") + def test_requires_python_floor_is_3_12(self): + self.assertEqual(_pyproject()["project"]["requires-python"], ">=3.12") def test_build_system_is_declared(self): self.assertIsNotNone(_pyproject().get("build-system"))