First complete release. Supersedes 0.1.0, whose wheel carried a stale
hardcoded compileml.__version__ of 0.1.0.dev0 (the PyPI metadata was
correct; the module attribute and artifact compileml_version were not).
The version now has a single source of truth — compileml.__version__ —
which pyproject reads at build time.
Added
- Tuning sweeps (
compileml.tune):sweep_whitebox(trees × depth grid with
measured retention, rank agreement, artifact size, and explanation cost)
andsweep_bands(band-count grid with retention, Gini gap, and worst
within-band AUC). compileml.bands.band_efficiency: the "money on the table" diagnostic —
continuous-vs-band Gini gap plus per-band within-band AUC with bootstrap
CIs and refinable / exhausted / inconclusive verdicts. Validation check 4
now carries these fields whenever outcomes are supplied, advisory by
default and gateable viamax_within_band_auc=.- Exact scorecard extraction (
compileml.scorecard, stdlib-only): at
whitebox depth ≤ 2 the artifact collapses into bin → points tables plus
explicit pairwise interaction grids whose integers re-sum to every
decision'sraw_microbit-for-bit (score_from_scorecardre-derives any
decision from the printed tables; asserted in tests). Markdown and CSV
renderers;compileml scorecardCLI subcommand; refuses above depth 2. - Docs: tuning guide (
howto/tuning.md) answering the configuration
questions — tree count, depth, the trees-vs-depth asymmetry, band count,
band efficiency, scorecards — and a FAQ page. - Decision artifact schema v2: integer-quantized leaves, integer calibration
tables, fixed-point band ladders, half-micro exact attribution with the
reconciliation identity, missing-value policy, SHA-256 verify-on-load. - Pure-standard-library runtime (
compileml.runtime): score, band, calibrate,
explain — enforced stdlib-only by test. - Compile side: teacher→whitebox distillation, tree extraction for
scikit-learn / XGBoost / LightGBM (float32 input-precision handling for
XGBoost), leaf quantization, artifact builder with reason-coverage warnings
and reproducible (timestamp-free) builds. - Band builders:
quantile_bands,monotone_quantile_bands, and the
search-and-certifysemantic_bands/governance_bands. - Zero-churn recalibration with predecessor-hash provenance chains.
- Eight-check validation framework running entirely against the artifact
through the production runtime; CLI exit-code gating. - Exports: SQL (full pipeline; engine-executed parity tests) and COBOL
(score + band; artifact integers verbatim). compilemlCLI: compile, inspect, verify, score, validate, export.- Benchmarks reproducing every README number; docs site; executable examples.
- Visualization extra (
compileml[viz]): payload-drivenwaterfall,
decision_drivers,band_drivers, andband_ladder(matplotlib), plus a
dependency-freewaterfall_svg. Plots draw the deployed integers and never
recompute them; the waterfall's segments are tested against the spec §7.4
identity exactly. - Runtime self-check: on artifacts recording
exact_attribution,decide()
refuses to emit an explanation whose residual is nonzero — every explained
production decision now re-proves attribution integrity in place. examples/04_visualization.ipynb: rendered reference gallery for the viz
suite — arrow geometry, exact remainder truncation, the depth>2 residual
bar, dependency-free SVG, every colour/sort encoding, per-band facets, and
restyling. Notebooks can now opt out of CI execution via
metadata.compileml.ci_execute = false.
Changed
- Documentation doctrine: explain everything by default. Complete attribution
on every decision is real-time for credit decisioning and makes portfolio
analytics census-complete; the O(p²) cost is a full-book batch concern,
which the leaf-time attribution roadmap item targets.