Changelog¶
All notable changes to this project are documented in this file. Generated by git-cliff at release time; do not edit release sections by hand.
[0.3.1] - 2026-07-07¶
Testing¶
- Cover backend routing and optional-dep fall-throughs (#39)
Build & CI¶
- Lint GitHub workflows with actionlint (#41)
- Attach coverage, pytest, and perf reports to tagged releases (#40)
- Bump crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204 (#42)
[0.3.0] - 2026-07-06¶
Features¶
- Drop scipy (numpy-only runtime) and rework the normality gate (#34)
- Add sens_at_spec / spec_at_sens band queries (#37)
Documentation¶
- Merge diagnostics into reading-the-band and tighten prose across the docs (#31)
- Explain the Working-Hotelling center bias and tighten the method pages (#36)
Refactoring¶
- Implement band special functions in rocci.special, keeping scipy only for Shapiro-Wilk (#32)
Chores¶
- Run the fix-on-save stop hook per git checkout (#33)
[0.2.0] - 2026-07-05¶
Documentation¶
- Document test guarantees and add a package-verification page (#20)
- (spec) Mark M7 done (#21)
- Link the verification page from the homepage (#23)
- Conda intentionally not packaged; pip-inside-conda is the supported path (#24)
- Structure the API reference with nested headings and an overview table (#26)
- Retire the build spec and appendix (#27)
Build & CI¶
- Skip perf and calibration gates on docs-only PRs (#22)
Chores¶
- Gate gh pr create on a headless /security-review (#25)
- Add comment-auditor subagent for docstring and comment audits (#28)
- Audit comments and docstrings; harden two under-exercised tests (#29)
[0.1.0] - 2026-07-04¶
Features¶
- Python package skeleton with warning and exception taxonomy
- Statistical core in NumPy with golden-master equivalence (M1)
- Rust bootstrap kernel with PyO3, oracle tests, backend routing (M2)
- Public API and ingestion layer (M3)
- (band) Working-Hotelling path and normality diagnostics
- (plot) Band and diagnostics figures (spec §7)
Bug fixes¶
- (band) Pin the lower band to 1 at the FPR=1 sentinel
- (backend) Reject unsorted or NaN scores at the kernel boundary
- (api) Harden ingestion and argument validation against common traps
- (band) Exact Mann-Whitney AUC and recentered bootstrap AUC CI
- (ingest) Honor explicit pos_label for boolean labels
- Include LICENSE in the sdist (#19)
Documentation¶
- License, README, contributing guide, and citation metadata
- Site content — home, getting started, user guide, method, API, FAQ
- (vignettes) Four executed jupytext notebooks — milestone M5 done
- (readme) Hero figure (spec §13.4)
- (claude) Parallel-agent workflow — one task = one worktree = one PR
- (claude) Release runbook for agents (#15)
- Installation paths and human-facing release workflow (#13)
- Use moderate-AUC diabetes task in sklearn quickstart (#18)
Refactoring¶
- (ingest) Extract heavy_ties predicate
Testing¶
- M3 ingestion matrix, API contract, and one-vs-rest suites
- (normal) Working-Hotelling path and diagnostics suite
- First-principles oracles for the statistical core
- Red-team the API, ingestion, kernel, and OvR contracts
- End-to-end statistical gold standards for the assembled band
- Optional-dependency contract via blocked-import subprocesses
Build & CI¶
- Maturin build system and dev toolchain
- CI workflow, wheel/release pipeline, and repo governance
- (rust) Upgrade pyo3 and rust-numpy 0.23 -> 0.29
- (docs) Mkdocs toolchain, strict docs CI job, versioned deployment
- Self-host coverage badge instead of Codecov
- Calibration and perf merge gates (spec §14.2, milestone M6)
- (gates) Drive the base benchmark with the PR's script
- Post-publish verification and GitHub Release jobs (#9)
- Fix release-guard annotated-tag check (#11)
- Run the musllinux wheel smoke test in an Alpine container (#12)
- Resolve smoke-test dependencies from the index, rocci from dist (#14)
- Force the headless Agg matplotlib backend on runners (#16)
- Build the Intel macOS wheel on macos-15-intel (#17)
Chores¶
- Initialize repository
- Add .gitattributes for cross-platform line endings
- (ruff) Ignore E501, letting the formatter own line width
- Git-cliff config and release-prep script (#8)