Skip to content

Release 0.9.0 - #79

Merged
orgoca merged 1 commit into
mainfrom
release/0.9.0
Sep 27, 2026
Merged

orgoca merged 1 commit into
mainfrom
release/0.9.0

Conversation

@orgoca

@orgoca orgoca commented Sep 27, 2026

Copy link
Copy Markdown
Owner

What 0.9.0 contains

PR Change
#77 compile_selected, the three-partition protocol, the frozen ceiling with K refits, the NumPy batch scorer, provenance, check 11, sweep warnings (closes #75)
#78 The benchmark through compile_selected, the language migration, benchmarks/sync_docs.py

Why a minor release

compile_selected, compileml.batch.score_batch, train_whitebox(backend=) and validation check 11 are new public API. git diff --stat v0.8.0..HEAD over runtime/, export/ and docs/ARTIFACT_SPEC.md is empty apart from one wording fix in the spec's aside.

This PR

  • __version__ → 0.9.0; CITATION.cff version and date-released; the [0.9.0] changelog heading with a summary.

  • The benchmark's latency is now measured in a fresh process after a 30 s rest. In Run the benchmark through compile_selected and stop describing distillation as the method #78 every millisecond figure had come out 1.3–2.3× slower than the same artifact measured on its own: selection refits the ceiling with a multithreaded booster and compiles forty candidates, and timings taken in the same process straight afterwards suffered from lingering worker threads and a hot CPU. An isolated probe of the committed artifact read 0.39–0.41 ms where the in-process figure was 0.94.

    Measured properly:

    Run the benchmark through compile_selected and stop describing distillation as the method #78 (in-process, throttled) this PR (fresh process) 0.5.1, 120 trees
    score + band + PD, median 0.034 ms 0.021 ms 0.030 ms
    full explained decision, median 0.696 ms 0.416 ms 0.625 ms
    cost sweep, per tree at p = 23 0.889 ms 0.692 ms 0.705 ms

    The sweep's models are identical to 0.5.1's, with identical tree-walk counts; the per-tree timings now land within 3% of that run. Retention is unchanged, as it must be: same configuration selected, same hash. results.json, the README table, the attribution page and the FAQ are regenerated by benchmarks/sync_docs.py, and the changelog's latency note now describes the fix rather than the erratic machine.

  • The sweep_whitebox examples in the tuning guide and README pass alpha_grid explicitly, so copied code does not trigger the new warning. examples/README.md no longer counts the validation checks.

ruff, black, full pytest and mkdocs build --strict pass.

After merge

Wait for the matrix on the merge commit to go green, then tag that commit:

git checkout main
git pull
git show HEAD:src/compileml/__init__.py | grep __version__   # must print 0.9.0
git tag v0.9.0
git push origin v0.9.0

Then publish the GitHub release from v0.9.0 and approve the pypi gate.

The teacher as yardstick, the target as a selected parameter: compile_selected,
the batch scorer, validation check 11 and the histogram backend option are new
public API, so a minor release. Runtime, exporters and artifact schema are
unchanged.

The benchmark now measures latency in a fresh process after a 30 s rest.
Selection refits the ceiling with a multithreaded booster and compiles forty
candidates; timings taken in the same process straight afterwards were 1.3 to
2.3 times slower than the same artifact measured on its own, from lingering
worker threads and a hot CPU. Measured properly, the 80-tree artifact explains
a decision in 0.42 ms and scores one in 0.02 ms, and the cost sweep matches the
0.5.1 figures within 3 percent on identical models. results.json and every
transcribed copy are regenerated from that run.

Also: the sweep_whitebox examples in the docs pass alpha_grid explicitly, so
copied code does not warn, and the examples index no longer counts checks.
@orgoca
orgoca merged commit 932d0c0 into main Sep 27, 2026
20 checks passed
@orgoca
orgoca deleted the release/0.9.0 branch September 27, 2026 17:07
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.

0.9.0: select the target and the configuration on data the report never sees (compile_selected)

1 participant