Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/actions/setup-env/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Set up project environment
description: >-
Install uv, pin the requested Python version, and sync the project's dev
environment with all extras. Shared by the CI jobs in run-tests.yml and
docs.yml so the setup sequence is defined once.

inputs:
python-version:
description: Python version to install and pin for uv
required: true

runs:
using: composite
steps:
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ inputs.python-version }}
- name: Install the project (editable, dev deps, all extras)
run: uv sync --dev --all-extras
shell: bash
6 changes: 2 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up project environment
uses: ./.github/actions/setup-env
with:
python-version: "3.11"
- name: Install dependencies
run: uv sync --dev --all-extras
- name: Install pandoc (required by nbsphinx)
run: sudo apt-get update && sudo apt-get install -y pandoc
- name: Configure GitHub Pages
Expand Down
35 changes: 13 additions & 22 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v7
- name: Set up project environment
uses: ./.github/actions/setup-env
with:
python-version: "3.13"
- name: Install the project (editable)
run: uv sync --dev --all-extras
- name: Lint with ruff
run: uv run ruff check .

Expand All @@ -45,27 +43,25 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v7
- name: Set up project environment
uses: ./.github/actions/setup-env
with:
python-version: "3.13"
- name: Install the project (editable)
run: uv sync --dev --all-extras
- name: Type-check with mypy
run: uv run mypy src/process_improve

test:
strategy:
fail-fast: false
matrix:
# Adjust for min and max supported Python versions
python-version: ["3.13"]
# The min (3.10) and max (3.13) supported Python versions run on all
# three operating systems; the versions in between run on ubuntu only.
# This keeps 8 jobs instead of the full 12-job product while still
# validating both Python extremes off Linux.
python-version: ["3.10", "3.13"]
os: [ubuntu-latest, windows-latest, macos-latest]
experimental: [false]
include:
- python-version: "3.10"
os: ubuntu-latest
experimental: false
- python-version: "3.11"
os: ubuntu-latest
experimental: false
Expand All @@ -91,18 +87,15 @@ jobs:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v7
- name: Set up project environment
uses: ./.github/actions/setup-env
with:
python-version: ${{ matrix.python-version }}
# Test building & distribution
- name: Test building the distributions
run: uv build
- name: Check if the built package can be installed and imported
run: uv run --isolated --with . --no-project -- python -c "import process_improve"
# Editable install for testing
- name: Install the project (editable)
run: uv sync --dev --all-extras
# This is where the actual unit and integration tests start
- name: Test with pytest
run: uv run pytest --cov-report=xml
Expand All @@ -122,12 +115,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v7
- name: Set up project environment
uses: ./.github/actions/setup-env
with:
python-version: "3.13"
- name: Install the project (editable)
run: uv sync --dev --all-extras
- name: Test with pytest under python -O
# Strip the default --cov / --pdb / -n auto / --exitfirst options;
# for -O detection we want the full failure surface, not the first one.
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ authors:
repository-code: "https://github.com/kgdunn/process-improve"
url: "https://kgdunn.github.io/process-improve/"
license: MIT
version: 1.52.3
date-released: "2026-07-10"
version: 1.52.4
date-released: "2026-07-11"
keywords:
- chemometrics
- multivariate analysis
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "process-improve"
version = "1.52.3"
version = "1.52.4"
description = 'Designed Experiments; Latent Variables (PCA, PLS, multivariate methods with missing data); Process Monitoring; Batch data analysis.'
readme = "README.md"
license = "MIT"
Expand Down
Loading