Merge: release 0.29.0 #665
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: welleng-tests | |
| on: | |
| push: | |
| branches: [ 'main', 'dev' ] | |
| pull_request: | |
| branches: [ 'main', 'dev' ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12'] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v8.2.0 | |
| with: | |
| enable-cache: true | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install APT dependencies | |
| run: | | |
| sudo apt-get update -qq -y | |
| sudo apt-get install -qq -y build-essential libspatialindex-dev | |
| - name: Lint with ruff | |
| # Config lives in pyproject [tool.ruff]: E/W/F at line-length 88; legacy | |
| # files carry an explicit per-file baseline (burn-down list) so this gate | |
| # holds NEW code to the full standard without a mass legacy refactor. | |
| run: uvx ruff check welleng/ tests/ | |
| - name: Doc gate — new public API must be documented and in the Sphinx build | |
| # Every public function/class/dataclass field ADDED vs the base must have a | |
| # docstring (or, for a field, an explanatory comment) and live in a module | |
| # some .rst automodules. Added 2026-07-27 (TA0): new public surface landed | |
| # several times in the 0.27 cycle and the docs only caught up when someone | |
| # asked. Needs the base ref, so fetch it. | |
| run: | | |
| git fetch --no-tags --depth=1 origin main || true | |
| uv run --no-project python scripts/doc_gate.py origin/main | |
| - name: Test a minimal install | |
| run: | | |
| uv run --isolated --no-dev -p ${{ matrix.python-version }} python tests/test_minimal.py | |
| - name: Install welleng with all extras and run tests | |
| run: | | |
| uv sync --extra all | |
| uv run pytest tests -n auto |