Skip to content
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
acac475
use dependency groups
yann1cks Feb 16, 2026
bb54aab
update ruff config
yann1cks Feb 16, 2026
e8984a8
upgrade minimal setuptools
yann1cks Feb 16, 2026
f7734e3
use sphinx linkcode
yann1cks Feb 16, 2026
c7b3072
seperate github actions
yann1cks Feb 16, 2026
6fc1b43
use system python in ci
yann1cks Feb 16, 2026
77f3f50
Fix setup python
yann1cks Feb 16, 2026
30d64b3
add pre-release test suite
yann1cks Feb 16, 2026
7d73487
add pytext matrix
yann1cks Feb 16, 2026
0ef1c88
make docs editable
yann1cks Feb 16, 2026
97d3832
add pytest
yann1cks Feb 16, 2026
efcdc24
fix numpy equal
yann1cks Feb 16, 2026
271aa6c
update pandas deps
yann1cks Feb 16, 2026
3eec57e
resolve dep problems
yann1cks Feb 16, 2026
5871776
fix statsmodels errors
yann1cks Feb 16, 2026
248b7c9
use matrix to test dependency combinations
yann1cks Feb 16, 2026
221b26d
fix doc artifacts
yann1cks Feb 16, 2026
6b19ed9
reduce test-core python versions
yann1cks Feb 16, 2026
3ff3d40
fix matrix
yann1cks Feb 16, 2026
1bcd643
fix matrix again
yann1cks Feb 16, 2026
90b6b40
fix again
yann1cks Feb 16, 2026
592846b
fix windows multiline error
yann1cks Feb 16, 2026
a07bf0d
downgrade statsmodels
yann1cks Feb 16, 2026
a1c6386
Bump to pandas 2.1.0 in really-old-versions + rmeove macos-latest
raphaelvallat Feb 22, 2026
a471fea
Bump really old versions and update dependency doc
raphaelvallat Feb 22, 2026
7a69d59
Fix Tcl tk error
raphaelvallat Feb 22, 2026
72964a5
fix violinplot
raphaelvallat Feb 22, 2026
2fc3708
fix CI error LogReg
raphaelvallat Feb 22, 2026
70762dd
Add workflow_dispatch
raphaelvallat Feb 22, 2026
497cdd7
Update pandas to 2.2.0 in old-versions
raphaelvallat Feb 22, 2026
da61100
Install numpy first to fix statsmodels issue
raphaelvallat Feb 22, 2026
a0ee712
bump minimal version to statsmodels 0.14.1 (attempt to fix windows)
raphaelvallat Feb 22, 2026
3bfdb7d
fix statsmodels compat with pandas 2.1.0, bump minimal version to 2.1.1
raphaelvallat Feb 22, 2026
054a805
Update contributing.rst file
raphaelvallat Feb 22, 2026
075676b
Add minimal version in pyproject.toml
raphaelvallat Feb 22, 2026
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
38 changes: 38 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Coverage
on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
coverage:
runs-on: ubuntu-latest
env:
FORCE_COLOR: true
UV_SYSTEM_PYTHON: 1
steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version-file: "pyproject.toml"

- name: Set up uv
uses: astral-sh/setup-uv@v7

- name: Install dependencies
run: |
uv pip install --group=test . "scikit-learn<1.8.0"

- name: Run tests with coverage
run: |
pytest --cov --cov-report=xml --verbose

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
fail_ci_if_error: true
38 changes: 38 additions & 0 deletions .github/workflows/doc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Documentation
on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
docs:
runs-on: ubuntu-latest
env:
FORCE_COLOR: true
UV_SYSTEM_PYTHON: 1
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version-file: "pyproject.toml"

- name: Set up uv
uses: astral-sh/setup-uv@v7

- name: Install dependencies
run: |
uv pip install --group=docs --editable .

- name: Build documentation
run: |
make -C docs clean
make -C docs html

- name: Upload documentation artifacts
uses: actions/upload-artifact@v6
with:
name: docs-artifact
path: docs/build/html
119 changes: 119 additions & 0 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: PyTest

on:
push:
branches: [main]
pull_request:
branches: [main]

env:
FORCE_COLOR: 1
UV_SYSTEM_PYTHON: 1

jobs:
test-core:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.12", "3.14"]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Set up uv
uses: astral-sh/setup-uv@v7

- name: Install dependencies
run: |
uv pip install --group=test . "scikit-learn<1.8.0"

- name: Test with pytest
run: uv run pytest --verbose

# Test against different dependency versions
test-dependency-combinations:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest]
deps:
# Minimal supported versions and increasing gradually
- python-version: "3.10"
scipy: "scipy==1.8.0"
numpy: "numpy==1.22.4"
pandas: "pandas==2.1.1"
statsmodels: "statsmodels==0.14.1"
scikit-learn: "scikit-learn==1.2.2"
label: "really-old-versions"

- python-version: "3.11"
scipy: "scipy==1.9.3"
numpy: "numpy==1.25.2"
pandas: "pandas==2.2.0"
statsmodels: "statsmodels==0.14.3"
scikit-learn: "scikit-learn==1.4.2"
label: "old-versions"

- python-version: "3.12"
scipy: "scipy==1.14.1"
numpy: "numpy==2.1.3"
pandas: "pandas==2.3.3"
statsmodels: "statsmodels==0.14.4"
scikit-learn: "scikit-learn==1.5.2"
label: "mid-versions"

- python-version: "3.13"
scipy: "scipy==1.17.0"
numpy: "numpy==2.4.0"
pandas: "pandas==3.0.0"
statsmodels: "statsmodels==0.14.6"
scikit-learn: "scikit-learn==1.7.2"
label: "recent-versions"

- python-version: "3.14"
scipy: "scipy"
numpy: "numpy"
pandas: "pandas"
statsmodels: "statsmodels"
scikit-learn: "scikit-learn==1.7.2"
label: "latest-versions"

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v6

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.deps.python-version }}

- name: Set up uv
uses: astral-sh/setup-uv@v7

- name: Install numpy (${{ matrix.deps.label }})
run: uv pip install "${{ matrix.deps.numpy }}"

- name: Install dependencies (${{ matrix.deps.label }})
run: >-
uv pip install --group=test .
"${{ matrix.deps.scipy }}"
"${{ matrix.deps.pandas }}"
"${{ matrix.deps.statsmodels }}"
"${{ matrix.deps.scikit-learn }}"

- name: Display installed versions
run: |
python -c "import scipy; print(f'scipy: {scipy.__version__}')"
python -c "import numpy; print(f'numpy: {numpy.__version__}')"
python -c "import pandas; print(f'pandas: {pandas.__version__}')"
python -c "import statsmodels; print(f'statsmodels: {statsmodels.__version__}')"
python -c "import sklearn; print(f'scikit-learn: {sklearn.__version__}')"

- name: Test with pytest
run: pytest --verbose
72 changes: 72 additions & 0 deletions .github/workflows/pytest_prerelease.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: PyTest Pre-Release

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 3 * * SUN'
workflow_dispatch:

env:
FORCE_COLOR: 1
UV_SYSTEM_PYTHON: 1

jobs:
test-prerelease:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.12", "3.14"]
runs-on: ${{ matrix.platform }}
continue-on-error: true
steps:
- uses: actions/checkout@v6

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Set up uv
uses: astral-sh/setup-uv@v7

- name: Install dependencies
run: |
uv pip install --group=test .

- name: Install scipy prerelease
run: |
uv pip uninstall scipy
uv pip install -U --pre scipy

- name: Install numpy prerelease
run: |
uv pip uninstall numpy
uv pip install -U --pre numpy

- name: Install pandas prerelease
run: |
uv pip uninstall pandas
uv pip install -U --pre pandas

- name: Install statsmodels prerelease
run: |
uv pip uninstall statsmodels
uv pip install -U --pre statsmodels

- name: Install scikit-learn prerelease
run: |
uv pip uninstall scikit-learn
uv pip install -U --pre scikit-learn

- name: Install seaborn prerelease
run: |
uv pip uninstall seaborn
uv pip install -U --pre seaborn

- name: Test with pytest
run: uv run pytest --verbose
58 changes: 0 additions & 58 deletions .github/workflows/python_tests.yml

This file was deleted.

9 changes: 4 additions & 5 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: astral-sh/ruff-action@v3
- name: "Linting"
uses: astral-sh/ruff-action@v3
run: ruff check
- name: "Formatting"
uses: astral-sh/ruff-action@v3
with:
args: "format --check"
run: ruff format --check
Loading