Follow-up from #514 / #515. With bngsim now installed from PyPI, the bngsim-family tests run in CI and the residual skips are all one thing: optional extras that pyproject.toml declares as test dependencies but the CI composite action never installs.
The measurement
From the py3.12 leg of the first green run on #515 (identical locally): 3221 passed, 78 skipped. Broken down by skip reason:
| missing |
skipped |
where |
jax / blackjax |
66 |
tests/test_hmc.py (52), tests/test_gradient_assembly.py (14) |
arviz |
2 |
tests/test_inference_data.py, tests/test_tutorial_am_diagnostics.py |
matplotlib |
1 |
tests/test_profile_likelihood.py |
| — (legitimately unconditional) |
9 |
malformed-config fixtures, PYBNF_REGEN_GOLDEN gate, native-petab-only case |
So 69 of the 78 remaining skips are this gap, and tests/test_hmc.py — the entire ADR-0059 HMC reference-sampler oracle — has never run on a hosted runner.
Why it happens
pyproject.toml's tests extra already declares every one of them, with comments explicitly stating the intent — e.g. on jax:
so the gradient path is exercised in CI rather than skipped
and on arviz:
so the bridge is exercised in CI rather than skipped
But .github/actions/setup-pybnf/action.yml does not install the extra. It hand-mirrors a subset (pytest, hypothesis, pytest-xdist, petab) and the comment tells you to keep it in sync with pyproject.toml by hand. That sync has drifted: jax, jaxlib, blackjax, arviz, h5netcdf, h5py and matplotlib are all in the extra and none reach the runner. The tests then importorskip and the job stays green while testing nothing.
This is the same failure shape as #514 — a suite that is written, marked, and switched off — just with a different cause.
Suggested fix
Add the missing pins to the composite action's install list, or install .[tests] and drop the hand-mirrored list entirely (the latter removes the drift class outright; it needs care with the petab-spec override, which must still win, and with --no-deps on the pybnf install).
Wheel availability is not a blocker on any leg: matplotlib, h5py and jaxlib all publish cp311–cp314 wheels (jaxlib 0.11.0 is cp312+, so py3.11 backtracks to an older release), and arviz/jax/blackjax are pure Python.
Worth deciding
jax + jaxlib are a large install relative to the current dep set. If that is unwelcome on all four matrix legs, one leg with the full tests extra would still take test_hmc.py from never-run to run — the same "second leg" shape #514 considered for bngsim.
Follow-up from #514 / #515. With bngsim now installed from PyPI, the bngsim-family tests run in CI and the residual skips are all one thing: optional extras that
pyproject.tomldeclares as test dependencies but the CI composite action never installs.The measurement
From the py3.12 leg of the first green run on #515 (identical locally): 3221 passed, 78 skipped. Broken down by skip reason:
jax/blackjaxtests/test_hmc.py(52),tests/test_gradient_assembly.py(14)arviztests/test_inference_data.py,tests/test_tutorial_am_diagnostics.pymatplotlibtests/test_profile_likelihood.pyPYBNF_REGEN_GOLDENgate, native-petab-only caseSo 69 of the 78 remaining skips are this gap, and
tests/test_hmc.py— the entire ADR-0059 HMC reference-sampler oracle — has never run on a hosted runner.Why it happens
pyproject.toml'stestsextra already declares every one of them, with comments explicitly stating the intent — e.g. onjax:and on
arviz:But
.github/actions/setup-pybnf/action.ymldoes not install the extra. It hand-mirrors a subset (pytest,hypothesis,pytest-xdist,petab) and the comment tells you to keep it in sync withpyproject.tomlby hand. That sync has drifted:jax,jaxlib,blackjax,arviz,h5netcdf,h5pyandmatplotlibare all in the extra and none reach the runner. The tests thenimportorskipand the job stays green while testing nothing.This is the same failure shape as #514 — a suite that is written, marked, and switched off — just with a different cause.
Suggested fix
Add the missing pins to the composite action's install list, or install
.[tests]and drop the hand-mirrored list entirely (the latter removes the drift class outright; it needs care with thepetab-specoverride, which must still win, and with--no-depson the pybnf install).Wheel availability is not a blocker on any leg:
matplotlib,h5pyandjaxliball publish cp311–cp314 wheels (jaxlib0.11.0 is cp312+, so py3.11 backtracks to an older release), andarviz/jax/blackjaxare pure Python.Worth deciding
jax+jaxlibare a large install relative to the current dep set. If that is unwelcome on all four matrix legs, one leg with the fulltestsextra would still taketest_hmc.pyfrom never-run to run — the same "second leg" shape #514 considered for bngsim.