From 36e5416e74e41004a477692bf85c83fa116c58fa Mon Sep 17 00:00:00 2001 From: John Issac Date: Sun, 19 Jul 2026 22:58:39 +0100 Subject: [PATCH] Add Python 3.14 support on Windows pythonnet 3.0.x does not support Python 3.14, which capped Windows at 3.13. Split the requirement with environment markers: pythonnet 3.0.5 for Python 3.9, pythonnet 3.1.0 (adds 3.14, drops 3.9) for 3.10+. Remove the Windows-specific cap in pythoncheck and extend CI to 3.14. Co-Authored-By: Claude Fable 5 --- .github/workflows/generate-windows-packages-debug.yml | 2 +- .github/workflows/generate-windows-packages.yml | 2 +- .github/workflows/simple-program-windows.yml | 2 +- .github/workflows/system-monitor-windows.yml | 2 +- library/pythoncheck.py | 5 +---- requirements.txt | 3 ++- 6 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/generate-windows-packages-debug.yml b/.github/workflows/generate-windows-packages-debug.yml index 0bcaf5842..28d06a64f 100644 --- a/.github/workflows/generate-windows-packages-debug.yml +++ b/.github/workflows/generate-windows-packages-debug.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Install dependencies run: | diff --git a/.github/workflows/generate-windows-packages.yml b/.github/workflows/generate-windows-packages.yml index c9c7e1016..b715f156a 100644 --- a/.github/workflows/generate-windows-packages.yml +++ b/.github/workflows/generate-windows-packages.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Install dependencies run: | diff --git a/.github/workflows/simple-program-windows.yml b/.github/workflows/simple-program-windows.yml index ab861ce69..dc0e04a3c 100644 --- a/.github/workflows/simple-program-windows.yml +++ b/.github/workflows/simple-program-windows.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/system-monitor-windows.yml b/.github/workflows/system-monitor-windows.yml index 4f65d1e55..084736ece 100644 --- a/.github/workflows/system-monitor-windows.yml +++ b/.github/workflows/system-monitor-windows.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] theme: [ "3.5inchTheme2" ] steps: diff --git a/library/pythoncheck.py b/library/pythoncheck.py index a820738e0..453839971 100644 --- a/library/pythoncheck.py +++ b/library/pythoncheck.py @@ -24,10 +24,7 @@ # Oldest / newest version supported MIN_PYTHON = (3, 9) -# For Windows: max Python 3.13 until PythonNet support for 3.14 -MAX_PYTHON_WINDOWS = (3, 13) -MAX_PYTHON_OTHERS = (3, 14) -MAX_PYTHON = MAX_PYTHON_WINDOWS if sys.platform == "win32" else MAX_PYTHON_OTHERS +MAX_PYTHON = (3, 14) def check_python_version(): diff --git a/requirements.txt b/requirements.txt index 4ec6abb85..963a85ecb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -39,5 +39,6 @@ pyamdgpuinfo~=2.1.6; sys_platform=="linux" and python_version <= "3.12" pyadl~=0.1; sys_platform=="win32" # Following packages are for LibreHardwareMonitor integration on Windows -pythonnet~=3.0.5; sys_platform=="win32" +pythonnet~=3.0.5; sys_platform=="win32" and python_version < "3.10" # For Python 3.9, only pythonnet 3.0.x is supported +pythonnet~=3.1.0; sys_platform=="win32" and python_version >= "3.10" # For Python 3.10+, pythonnet 3.1.x adds Python 3.14 support pywin32>=311; sys_platform=="win32"