0.0.4 — 2026-05-16
Release Notes
Robustness follow-up to 0.0.3. No new evaluation paradigms or kernel
changes — this release widens the typed-error surface, adds a fuzz
harness, and pins the platform-compat matrix in CI. The cross-paradigm
benchmark page is refreshed against the post-0.0.3 SHA on a single
fingerprint (no more dual-SHA LVIS caveat).
Added
- Typed Python error surface (#249) — four new
PyValueError
subclasses (InvalidAnnotationError,NonFiniteError,
DimensionMismatchError,InvalidConfigError) with the public
surface pinned bytests/python/test_error_matrix.pyand documented
atdocs/reference/errors.md. Previously these all surfaced as bare
ValueError; existingexcept ValueError:catches still match the
new subclasses. - Fuzz harness (#249) —
tools/fuzz/cargo-fuzz targets for the
COCO / manifest / RLE / segmentation parsers (non-workspace crate so
the nightly cargo-fuzz toolchain stays out of the publishable
workspace). Thevernier_core::fuzz_regressionsintegration test
replays minimised crashes on everycargo nextest run; CI's
slow.ymlcarries a 120 s/target smoke that builds once and exits. - Platform-compat matrix (#249) —
slow.ymladds a
py3.10 × py3.13 × py3.14 ladder crossed with numpy / torch combos,
exercising theBackgroundEvaluatortutorial end-to-end. Catches
ABI / DLPack regressions that the single-versionci.ymlmatrix
doesn't surface. bench-histogramCargo feature (#249) — opt-in(G, D, wall_ns)
per-call recorder onmatch_image, off by default and stripped from
the shipped wheel. Powers the 10× val2017 scaling proof at
docs/engineering/matching-scaling.md. Gated on
vernier-core/vernier-ffi/vernier-mask; no production cost.- Stress-matrix workloads (#249) — 6 named regimes
(coco-baseline,detr-output,lvis-crowded,open-images-cats,
satellite-4k,pathology-8k) plus per-axis sweeps in
bench/workloads/stress_matrix.py; runner at
bench/runners/stress_runner.py. Catalogue and expected behaviour
per axis indocs/engineering/stress-matrix.md. - Memory-under-training-load runner (#249) —
bench/bench/runners/memory_bench.py(reuses
bench.harness.rss.RSSSampler); methodology and reading guide at
docs/engineering/memory-under-training.md. - Colab smoke notebook (#249) — free-tier platform-check entry
point; README badge links to it.
Changed
- Tutorial smoke now ingests via the DLPack array path —
fake_model(image_ids) -> list[Detections]returning numpy arrays
submitted batch-mode (matches torchvision's detection-API
convention). Notebook cell-3 stays byte-identical to the.pybody
modulo the module docstring and__main__guard. - Bench page refreshed against the AMD EPYC-Milan host on a fresh
machine fingerprint (37652a58e939). Speedups hold within VPS
variance; absolute medians shift by ±3% versus the 0.0.3 snapshot.
The dual-SHA LVIS caveat retires — every section now lives at the
same SHA / fingerprint. The panoptic and synthetic-semantic cells
exceeded the 5% relative-IQR gate (chronically noisy on this host —
PNG decode dominates panoptic wall time, mmseg synthetic sits at the
noise floor at 200-image scale); flagged inline with*per the
renderer's existing convention.
Install vernier-cli 0.0.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/NoeFontana/vernier/releases/download/v0.0.4/vernier-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/NoeFontana/vernier/releases/download/v0.0.4/vernier-cli-installer.ps1 | iex"Download vernier-cli 0.0.4
| File | Platform | Checksum |
|---|---|---|
| vernier-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| vernier-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| vernier-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| vernier-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |