diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 129f334..64dd8c7 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,12 +32,12 @@ 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 }} - 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 @@ -102,18 +102,18 @@ 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" - 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 e22be40..f39c181 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,12 +135,12 @@ 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 🖥️ # 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 @@ -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 }} @@ -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 @@ -209,10 +209,10 @@ 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 + uses: actions/download-artifact@v7 with: path: dist # Downloads all artifacts from the two build jobs @@ -221,10 +221,10 @@ 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@v5 + uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} @@ -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,13 +295,13 @@ 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 - # 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 4c2e3fd..4d5ec10 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,12 +51,12 @@ 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" - 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 836503b..029e738 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -16,10 +16,10 @@ 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 + 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 @@ -39,15 +39,15 @@ 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 - name: Build wheels run: maturin build --release - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: windows-wheels path: target/wheels @@ -55,15 +55,15 @@ 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 - name: Build wheels run: maturin build --release - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: macos-wheels path: target/wheels @@ -74,10 +74,10 @@ jobs: permissions: id-token: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Download all wheels - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: dist @@ -85,10 +85,10 @@ 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@v5 + uses: actions/setup-python@v6 with: python-version: ${{ env.PYTHON_VERSION }} 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"]