Skip to content

Add CI, and declare scipy - #4

Merged
remislp merged 1 commit into
masterfrom
ci
Sep 1, 2026
Merged

remislp merged 1 commit into
masterfrom
ci

Conversation

@remislp

@remislp remislp commented Sep 1, 2026

Copy link
Copy Markdown
Member

EKDIST was the last repository in the stack without CI. That mattered more once
it stopped being self-contained: it now takes its log-binning from dcio, so a
change over there can break it here and nothing would say so.

The dcio wrinkle

dcio is not on PyPI, so every job installs it from git before installing
EKDIST — otherwise pip install -e . fails on an unresolvable requirement:

pip install git+https://github.com/DCPROGS/dcio@master
pip install -e .

That step is the first thing to revisit when dcio is published.

scipy was never declared

ekplot, errors and exponentials all import scipy. install_requires
named numpy and matplotlib only. An editable install into an environment that
already has scipy cannot reveal that — only a clean one can, which is what the
clean-install job does: build into an empty virtualenv, then import every
module from outside the source tree.

Declared it. Also added python_requires='>=3.11' — setup.py named no floor,
but dcio's requires-python sets one in practice, and an inherited constraint
is better written down than discovered.

Matrix

3.11 / 3.12 / 3.13 on Linux, plus macOS and Windows. MPLBACKEND=Agg is set
explicitly rather than left to backend autoselection, since ekplot imports
matplotlib.pyplot at module level and the runners have no display.

One extra gate: the record files are read by relative path from the repo
root ("./tests/AChsim.scn"), so a step checks they are present before the
suite runs.

36 passing.

🤖 Generated with Claude Code

EKDIST was the last repository in the DCPROGS stack without CI. That mattered
more once it stopped being self-contained: it now takes its log-binning from
dcio, so a change over there can break it here and nothing would say so.

dcio is not on PyPI, so every job installs it from git before installing
EKDIST -- `pip install -e .` would otherwise fail on an unresolvable
requirement. That step is the first thing to revisit when dcio is published.

scipy was imported by ekplot, errors and exponentials and named in
install_requires by none of them. An editable install into an environment that
already has scipy cannot reveal that; only a clean one can, which is what the
clean-install job is for. Declared it.

Also declares python_requires='>=3.11'. setup.py named no floor, but dcio's
requires-python sets one in practice, and an inherited constraint is better
written down than discovered.

Matrix covers 3.11-3.13 on Linux plus macOS and Windows. MPLBACKEND=Agg is set
explicitly rather than left to backend autoselection, since ekplot imports
matplotlib.pyplot at module level and the runners have no display.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@remislp
remislp merged commit 1b999ba into master Sep 1, 2026
6 checks passed
@remislp
remislp deleted the ci branch September 1, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant