From 46d54fb5465a16ac29e26d937c3adaf9791956cb Mon Sep 17 00:00:00 2001 From: shaia Date: Fri, 5 Dec 2025 14:26:08 +0200 Subject: [PATCH 1/2] chore: drop Python 3.8 support, add Python 3.13 Python 3.8 reached end-of-life in October 2024. Update minimum version to 3.9 and add 3.13 classifier for latest Python support. --- README.md | 4 ++-- pyproject.toml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 437f180..d18612b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Python bindings for high-performance CFD simulation library using CPython C-API ## Features - **High Performance**: Direct bindings to optimized C library -- **Stable ABI**: Compatible across Python 3.8+ versions +- **Stable ABI**: Compatible across Python 3.9+ versions - **Static Linking**: Self-contained wheels with no external dependencies - **Dynamic Solver Discovery**: New solvers automatically available - **Multiple Output Formats**: VTK and CSV export support @@ -241,7 +241,7 @@ cfd_python.OUTPUT_CSV_STATISTICS # Global statistics (CSV) ## Requirements -- Python 3.8+ +- Python 3.9+ - [uv](https://docs.astral.sh/uv/) (recommended) or pip For building from source: diff --git a/pyproject.toml b/pyproject.toml index 1961565..13b0e4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ license = {text = "MIT"} authors = [ {name = "CFD Team"}, ] -requires-python = ">=3.8" +requires-python = ">=3.9" keywords = ["cfd", "fluid-dynamics", "simulation", "numerical-methods", "physics"] classifiers = [ "Development Status :: 4 - Beta", @@ -22,11 +22,11 @@ classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", - "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 :: C", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Physics", @@ -60,7 +60,7 @@ viz = [ [tool.scikit-build] minimum-version = "0.4" build-dir = "build/{wheel_tag}" -wheel.py-api = "cp38" +wheel.py-api = "cp39" [tool.scikit-build.cmake.define] CMAKE_BUILD_TYPE = "Release" @@ -75,7 +75,7 @@ testpaths = ["tests"] python_files = ["test_*.py"] [tool.ruff] -target-version = "py38" +target-version = "py39" line-length = 100 exclude = [ "build", From f9856174cb762bf0556f0ec8e5014b07c17b3ab3 Mon Sep 17 00:00:00 2001 From: shaia Date: Fri, 5 Dec 2025 14:31:19 +0200 Subject: [PATCH 2/2] chore: update CI to Python 3.9+, add pytest-cov - Update build workflow to use Python 3.9 (min supported) - Test matrix now covers Python 3.9 and 3.13 (min and max) - Add pytest-cov to test dependencies --- .github/workflows/build-wheels.yml | 6 +++--- pyproject.toml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index fa338e1..71e18bb 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -27,10 +27,10 @@ jobs: path: cfd fetch-depth: 0 - - name: Set up Python 3.8 + - name: Set up Python 3.9 uses: actions/setup-python@v5 with: - python-version: "3.8" + python-version: "3.9" - name: Install build dependencies run: | @@ -98,7 +98,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python: ["3.8", "3.12"] + python: ["3.9", "3.13"] steps: - name: Set up Python ${{ matrix.python }} diff --git a/pyproject.toml b/pyproject.toml index 13b0e4d..ea43724 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ dependencies = [] test = [ "pytest>=7.0", "pytest-benchmark", + "pytest-cov", "numpy", ] docs = [