Skip to content

Stabilization: modernize deps and fix the instabilities that surfaced #39

Stabilization: modernize deps and fix the instabilities that surfaced

Stabilization: modernize deps and fix the instabilities that surfaced #39

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: Python package
on:
push:
branches: [ "master", "develop"]
pull_request:
branches: [ "master" ]
jobs:
build:
name: Test (${{ matrix.os }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
# Linux carries the full Python sweep; Windows and macOS are added as a
# single spot-check each via `include` (an include entry that would
# overwrite `os` becomes a new job rather than extending existing ones).
# Those two exist to catch platform divergence rather than version
# divergence -- word size (`int` is int32 on Windows) and differences in
# the compiled solver -- which one Python version exercises just as well
# as five. A square os x python matrix would triple the job count to buy
# very little.
matrix:
os: [ubuntu-latest]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
include:
- { os: windows-latest, python-version: "3.12" }
- { os: macos-latest, python-version: "3.12" }
steps:
- uses: actions/checkout@v4
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}
version: "0.11.8"
- name: Install the project
run: uv sync --all-extras --dev
- name: Lint with ruff
uses: astral-sh/ruff-action@v3
- name: Run tests
run: uv run pytest