Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.4.3] - 2026-03-03¶
Release focused on documentation coherence & reproducibility entry points.
Added
- Experiments & reproduction landing page (docs/21_experiments.md) with benchmark commands, artifact contract, and provenance-based baseline comparison.
- API reference stability map (stable vs experimental) in docs/08_api_reference.md.
Changed
- Legacy experimental suite guide is now explicitly archived and points to the current reproduction entry points (scripts/EXPERIMENTAL_SUITE_README.md).
- zeroproof.autodiff.graph is explicitly documented as experimental.
Removed
- DOSE-specific reproduction page; reproduction guidance is consolidated in docs/21_experiments.md and docs/18_benchmarks.md.
- v1.0 entry criteria docs page; tracking is maintained externally (issue tracker).
Fixed
- Broken documentation links after pruning legacy/unneeded doc pages.
- GitLab CI coverage regex now matches pytest-cov's TOTAL … % output (coverage badge).
- ONNX export CI now installs onnxscript, and export_bundle(...) defaults to opset 18 for Torch 2.8 compatibility.
- Ubuntu CI jobs now install Python deps in a venv to avoid PEP 668 externally-managed-environment failures.
- CI now installs CPU-only PyTorch wheels on Linux to avoid pulling CUDA libraries (disk exhaustion).
[0.4.2] - 2026-03-01¶
Release focused on observability & interop (NumPy parity, export bundles, and lightweight plotting/logging utilities).
Added
- NumPy parity for projective tooling: lift_targets_numpy(...) and NumPy dispatch for strict SCM inference.
- ONNX “deployment bundle” helper export_bundle(...) that writes model.onnx plus a metadata.json sidecar.
- Optional visualization helpers (zeroproof.utils.viz) and first-party log hooks (zeroproof.utils.logging) including JSONL readers / DataFrame loader (via the viz extra).
- Trainer config additions: TrainingConfig.val_loader, use_amp alias for AMP, and gradient_policy override; validation summaries are stored in SCMTrainer.val_history.
- GitLab CI pipeline with a manual, tag-only PyPI publish job (.gitlab-ci.yml).
Changed
- gradient_policy(...) now overrides registered per-layer defaults while the context is active.
- Repository/documentation links updated to GitLab (gitlab.com/domezsolt/zeroproofml).
[0.4.0] - 2025-12-11¶
Release completing the SCM migration and preparing PyPI publication.
Added
- SCM-first documentation and README refresh describing weak sign tracking, projective tuples, and absorptive arithmetic.
- Benchmark regression gate (scripts/ci/benchmark_gate.py) and CI wiring for SCM-specific pytest markers and coverage thresholds.
- License headers across the v0.4 codebase to match release compliance requirements.
Changed
- CI pipelines now run strict linting (black, ruff, isort), mypy --strict, and enforce --cov-fail-under=90 on the SCM suite.
- Benchmarks workflow uses the SCM benchmark runner and fails on malformed or slow results.
- README development commands align with the tightened release checks.
[0.2.0] - 2025-10-29¶
Integration-focused release with unified runner, parity, and docs.
Added
- Unified integration runner: scripts/run_integration_suite.py
- Runs focused unit tests (Torch/JAX + parity), writes a consolidated log, and saves parity_results.json.
- CPU‑friendly defaults (threads capped on ≤4‑thread CPUs), headless plotting, disables CUDA visibility, enables JAX x64.
- Parity helpers: zeroproof/utils/parity.py
- run_backend_parity and parity_within_tolerance across NumPy, PyTorch, and JAX.
- Torch parity enabled; JAX parity enabled on CPU.
- Determinism test for Torch: tests/unit/test_torch_determinism.py.
- Documentation: docs/11_integrations.md (framework integrations & runner) and index link. PyPI install instructions now primary.
- README simplified with vision/goal and links to full docs and robotics example (Zenodo).
Changed
- JAX bridge (custom_vjp): backward signatures updated for cross‑version compatibility (removed nondiff_argnums; pass scalars via residuals).
- JAX deterministic sum tolerance relaxed to atol=1e-5 for CPU order stability.
- Integration runner hardens imports (ensures repo root on sys.path) and environment (JAX x64, thread caps).
- Torch parity uses non‑grad inputs to avoid graph reuse/backward issues in integration context.
Fixed
- JAX tr_div backward now masks gradients when denominator is non‑REAL or zero; gradient clipping rewritten using JAX arrays to avoid tracer boolean conversion.
- Parity “No module named 'zeroproof'” import issue resolved by inserting repo root into sys.path in the runner.
- JAX dtype warnings suppressed by enabling x64 in runner and parity path.
[0.1.0] - 2025-10-01¶
First external-ready release candidate (repo hardening).
Added
- PEP 621 packaging via pyproject.toml with extras: torch, jax, all, dev.
- py.typed marker to ship type information for the public API.
- CI release workflow to build wheels/sdist and publish on tag.
- Dependabot configuration for dependency updates.
- Initial mypy configuration scoped to the public API.
Changed
- CI matrix aligned to Python 3.9–3.12; lint job installs black, ruff, isort, mypy.
- README installation section clarifies install-from-source and extras.
Fixed
- Minor import in evaluator utilities to avoid NameError when generating default evaluation grid.
- Hybrid trainer now aggregates per‑sample losses via a balanced pairwise
reduction to bound graph depth and avoid recursion issues during backprop.
Notes
- Until PyPI publication, use pip install -e .[dev] for development and pip install -e .[all] for full features.
- Torch/JAX remain optional dependencies; import zeroproof should work without them.