Skip to content

chore(python): Build wheels for python 3.14 #3419

chore(python): Build wheels for python 3.14

chore(python): Build wheels for python 3.14 #3419

Workflow file for this run

name: Rust
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint-test-all-features:
name: Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- uses: prefix-dev/setup-pixi@v0.8.1
with:
activate-environment: true
cache: true
cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
manifest-path: build/pixi.toml
- name: Tweak environment to find GDAL
run: |
echo "PKG_CONFIG_PATH=$(pwd)/build/.pixi/envs/default/lib/pkgconfig" >> "$GITHUB_ENV"
echo "LD_LIBRARY_PATH=$(pwd)/build/.pixi/envs/default/lib" >> "$GITHUB_ENV"
- name: Clippy
run: cargo clippy --all-features --tests -- -D warnings
- name: Check
run: cargo check --all-features
- name: Test
run: cargo test --all-features
fmt:
name: Fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2025-05-14
components: rustfmt
- name: Fmt
run: cargo +nightly-2025-05-14 fmt -- --check --unstable-features --config imports_granularity=Module,group_imports=StdExternalCrate
docs-no-warnings:
name: Lint and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
# TODO: switch back to pixi environment
- name: Install GEOS
run: |
sudo apt-get update
sudo apt-get install -y libgeos-dev
# Note: in the future expand to all crates in the workspace
- name: Test that docs build without warnings
run: cargo doc --all-features --document-private-items
env:
RUSTDOCFLAGS: "-D warnings"
# This part of the old test suite from `geoarrow` used external dependencies,
# especially GEOS, GDAL, and PROJ. Come back to this once we use these
# dependencies from inside the refactored geoarrow-* crates.
# check-features-with-external-dependencies:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# args:
# - ""
# - "-F csv"
# - "-F flatgeobuf"
# - "-F flatgeobuf_async"
# - "-F ipc_compression"
# - "-F polylabel"
# - "-F postgis"
# - "-F rayon"
# - "-F gdal -F gdal/bindgen"
# - "-F geos"
# - "-F proj"
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: "recursive"
# - uses: dtolnay/rust-toolchain@stable
# - uses: Swatinem/rust-cache@v2
# - uses: prefix-dev/setup-pixi@v0.8.1
# with:
# activate-environment: true
# cache: true
# cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
# manifest-path: build/pixi.toml
# - name: Tweak environment to find GDAL
# run: |
# echo "PKG_CONFIG_PATH=$(pwd)/build/.pixi/envs/default/lib/pkgconfig" >> "$GITHUB_ENV"
# echo "LD_LIBRARY_PATH=$(pwd)/build/.pixi/envs/default/lib" >> "$GITHUB_ENV"
# - name: Test
# run: cargo check ${{ matrix.args }}
# We don't build benchmarks on CI because they're quite slow to compile
# build-benchmarks:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: "recursive"
# - uses: dtolnay/rust-toolchain@stable
# - uses: Swatinem/rust-cache@v2
# - uses: prefix-dev/setup-pixi@v0.8.1
# with:
# activate-environment: true
# cache: true
# cache-write: ${{ github.event_name == 'push' && github.ref_name == 'main' }}
# manifest-path: build/pixi.toml
# - name: Tweak environment to find GDAL
# run: |
# echo "PKG_CONFIG_PATH=$(pwd)/build/.pixi/envs/default/lib/pkgconfig" >> "$GITHUB_ENV"
# echo "LD_LIBRARY_PATH=$(pwd)/build/.pixi/envs/default/lib" >> "$GITHUB_ENV"
# - name: Build benchmarks with no features
# run: cargo bench --no-run
# - name: Build benchmarks with all features
# run: cargo bench --no-run --all-features