From fbbb1a6699bf00b663f1729fbf650bcd92cd8aaf Mon Sep 17 00:00:00 2001 From: technocore Date: Fri, 31 Jul 2026 23:13:28 +0000 Subject: [PATCH 1/4] fix(ci): bump checkout and setup-python actions to Node 24 runtimes (closes #79) --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/release.yml | 14 +++++++------- .github/workflows/static.yml | 4 ++-- .github/workflows/tag-release.yml | 14 +++++++------- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 129f334..b3de33a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,7 @@ jobs: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 # --- SETUP --- - name: Install Rust toolchain @@ -32,7 +32,7 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} @@ -102,13 +102,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install Rust toolchain (for potential extension build) uses: dtolnay/rust-toolchain@stable - name: Set up Python 3.11 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.11" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e22be40..e9525fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,14 +27,14 @@ jobs: version_changed: ${{ steps.bump.outputs.version_changed }} steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: # Fetch depth 0 needed for full history access for version bump logic fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.12" @@ -135,7 +135,7 @@ jobs: python-version: ["3.9", "3.10", "3.11", "3.12"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: v${{ needs.version-bump.outputs.new_version }} - name: Setup QEMU for ARM builds 🖥️ @@ -171,13 +171,13 @@ jobs: python-version: ["3.9", "3.10", "3.11", "3.12"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: ref: v${{ needs.version-bump.outputs.new_version }} - uses: dtolnay/rust-toolchain@stable - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} @@ -209,7 +209,7 @@ jobs: if: needs.version-bump.outputs.version_changed == 'true' steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Download all wheels and sdist uses: actions/download-artifact@v4 @@ -224,7 +224,7 @@ jobs: uses: astral-sh/setup-uv@v3 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 4c2e3fd..06204a4 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Checkout latest version tag (post-release) if: github.event_name == 'workflow_run' @@ -51,7 +51,7 @@ jobs: uses: dtolnay/rust-toolchain@stable - name: Set up Python 3.11 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.11" diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 836503b..f5a4bf8 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -16,7 +16,7 @@ jobs: linux-wheels: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup QEMU for ARM builds uses: docker/setup-qemu-action@v3 @@ -39,9 +39,9 @@ jobs: windows-wheels: runs-on: windows-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} - run: pip install maturin @@ -55,9 +55,9 @@ jobs: macos-wheels: runs-on: macos-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@stable - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} - run: pip install maturin @@ -74,7 +74,7 @@ jobs: permissions: id-token: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Download all wheels uses: actions/download-artifact@v4 @@ -88,7 +88,7 @@ jobs: uses: astral-sh/setup-uv@v3 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} From b78f06267af3f9e4ecf14e27b2c59ad8c2f6dcf9 Mon Sep 17 00:00:00 2001 From: technocore Date: Fri, 31 Jul 2026 23:15:05 +0000 Subject: [PATCH 2/4] chore(ci): update commented action references to Node 24 versions --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e9525fd..362fe63 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -237,13 +237,13 @@ jobs: # steps: # - name: Checkout repository - # uses: actions/checkout@v4 + # uses: actions/checkout@v5 # with: # # Fetch the latest commit which contains the version bump and tag # ref: main # - name: Set up Python - # uses: actions/setup-python@v5 + # uses: actions/setup-python@v6 # with: # python-version: "3.12" @@ -295,9 +295,9 @@ jobs: # contents: write # steps: # - name: Checkout repository - # uses: actions/checkout@v4 + # uses: actions/checkout@v5 # - name: Set up Python - # uses: actions/setup-python@v5 + # uses: actions/setup-python@v6 # with: # python-version: "3.12" # - name: Install uv and tools From 5c65c7cec68b2cb3387bc2665e3f6391255dd5bd Mon Sep 17 00:00:00 2001 From: technocore Date: Fri, 31 Jul 2026 23:32:07 +0000 Subject: [PATCH 3/4] fix(ci): bump remaining Node 20 actions to Node 24 runtimes actions/upload-artifact@v4, actions/download-artifact@v4, astral-sh/setup-uv@v3, docker/setup-qemu-action@v3, actions/configure-pages@v5, actions/deploy-pages@v4 and actions/upload-pages-artifact@v3 all run on the deprecated Node 20 runtime. Bump each to its first Node 24 major (verified via action.yml: upload-artifact v6, download-artifact v7, setup-uv v7, setup-qemu-action v4, configure-pages v6, deploy-pages v5, upload-pages-artifact v5). --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/release.yml | 14 +++++++------- .github/workflows/static.yml | 8 ++++---- .github/workflows/tag-release.yml | 12 ++++++------ 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b3de33a..64dd8c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv and tools - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 - name: Install tox and plugins # Install tox and the tox-gh-actions plugin into the base environment @@ -90,7 +90,7 @@ jobs: echo "Benchmark JSON generated: benchmark-results.json" - name: 📦 Upload Benchmark Artifact if: matrix.python-version == '3.12' && env.RUN_BENCHMARKS == 'true' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: benchmark-results path: benchmark-results.json @@ -113,7 +113,7 @@ jobs: python-version: "3.11" - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 - name: Install docs dependencies run: | @@ -134,7 +134,7 @@ jobs: echo "Documentation build warnings detected"; exit 1; fi - name: Upload built docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: site-docs path: docs/build/html diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 362fe63..f39c181 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -140,7 +140,7 @@ jobs: ref: v${{ needs.version-bump.outputs.new_version }} - name: Setup QEMU for ARM builds 🖥️ # Enables cross-compilation for aarch64 (ARM) systems like AWS Graviton - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 with: platforms: all @@ -153,7 +153,7 @@ jobs: manylinux: auto # Use the best manylinux tag available - name: Upload Linux Artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: linux-wheels-py${{ matrix.python-version }} path: target/wheels @@ -194,7 +194,7 @@ jobs: run: maturin build --release --sdist - name: Upload OS Artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: ${{ matrix.os }}-wheel-py${{ matrix.python-version }} path: target/wheels @@ -212,7 +212,7 @@ jobs: - uses: actions/checkout@v5 - name: Download all wheels and sdist - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: dist # Downloads all artifacts from the two build jobs @@ -221,7 +221,7 @@ jobs: run: find dist -type f \( -name "*.whl" -o -name "*.tar.gz" \) -exec mv {} dist/ \; - name: Install uv and tools - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 - name: Set up Python uses: actions/setup-python@v6 @@ -301,7 +301,7 @@ jobs: # with: # python-version: "3.12" # - name: Install uv and tools - # uses: astral-sh/setup-uv@v3 + # uses: astral-sh/setup-uv@v7 # - name: Sync dependencies (dev + extras) # run: | # uv sync --all-extras --dev @@ -323,7 +323,7 @@ jobs: # # Optional: Upload the badge as an artifact so you can download it from the CI run # - name: Upload Coverage Badge Artifact - # uses: actions/upload-artifact@v4 + # uses: actions/upload-artifact@v6 # with: # name: coverage-badge # path: | diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 06204a4..4d5ec10 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -56,7 +56,7 @@ jobs: python-version: "3.11" - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 - name: Install docs dependencies run: | @@ -93,13 +93,13 @@ jobs: make docs - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v5 with: path: "docs/build/html" - name: Setup Pages - uses: actions/configure-pages@v5 + uses: actions/configure-pages@v6 - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index f5a4bf8..029e738 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/checkout@v5 - name: Setup QEMU for ARM builds - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@v4 with: platforms: all @@ -31,7 +31,7 @@ jobs: manylinux: auto - name: Upload Linux Artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: linux-wheels path: target/wheels @@ -47,7 +47,7 @@ jobs: - run: pip install maturin - name: Build wheels run: maturin build --release - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: windows-wheels path: target/wheels @@ -63,7 +63,7 @@ jobs: - run: pip install maturin - name: Build wheels run: maturin build --release - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: macos-wheels path: target/wheels @@ -77,7 +77,7 @@ jobs: - uses: actions/checkout@v5 - name: Download all wheels - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: dist @@ -85,7 +85,7 @@ jobs: run: find dist -type f -name "*.whl" -exec mv {} dist/ \; - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v7 - name: Set up Python uses: actions/setup-python@v6 From 20f4e7c5bd7145a66d78eb70adc7c68557e763d1 Mon Sep 17 00:00:00 2001 From: technocore Date: Fri, 31 Jul 2026 23:55:18 +0000 Subject: [PATCH 4/4] fix(ci): restore ruff classic rule set after ruff 0.16 default expansion Ruff 0.16.0 (2026-07-23) expanded the default enabled rule set from 59 to 413 rules. The lint env uses unpinned ruff>=0.4.0 (tox.ini), so CI now flags 46 pre-existing violations (UP006/UP045/UP035/BLE001/I001/RUF013/ RUF022/C408) in python/eo_processor code identical to main. Pin the classic E4/E7/E9/F defaults in pyproject.toml, as recommended in the ruff 0.16 migration notes, until the codebase is migrated deliberately. --- pyproject.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 588b07e..8fe7e9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,3 +78,12 @@ dev = [ authors = ["Ben Smith"] license = "MIT" repository = "https://github.com/Bnjam/eo-processor" + +[tool.ruff] +line-length = 100 +extend-exclude = ["target", ".venv"] + +[tool.ruff.lint] +# Ruff 0.16 expanded the default rule set (59 -> 413 rules). Pin the classic +# defaults the project's CI was green with until the codebase is migrated. +select = ["E4", "E7", "E9", "F"]