Summary
Milestone M4: make evoforge-grammar production-ready / publishable (mirrors evoforge's
Implementation-Plan Milestone 9). Lock the public API + formats, add CI, benchmarks, audit, docs, and
tag v0.1.0. This is the last pure-Rust milestone; the Python bridge + real Archimedes fitness are a
separate later phase.
Spec: https://github.com/mnemonik-dev/genetic_algorithms/blob/main/docs/technical-reference/gggp-implementation-spec.md (§7 release gates, §8 M4)
Scope
- CI (
.github/workflows): cargo fmt --check, cargo clippy --all-targets --all-features -D warnings,
cargo test --all-features, cargo doc --no-deps, feature-matrix build.
- Semver/stability doc: declare stability of the grammar JSON format and the
snapshot() format (the deterministic-snapshot contract); document MSRV (Rust 1.75).
- Benchmarks: decode throughput + a small end-to-end GE run (criterion or a deterministic
budget-based bench, no flaky wall-clock asserts in tests).
- Security/audit:
cargo audit clean (or documented advisories).
- Docs/examples: crate-level rustdoc with a complete
Target + Fitness example; ensure
examples/evolve_toy.rs and examples/evolve_faber.rs build and run.
- Release: tag
v0.1.0 (annotated). (PyPI/wheel is out of scope — no Python this phase.)
Acceptance criteria
Anti-goals
- Do not add PyO3 / wheel / PyPI (D7 — that's the later bridge phase).
- Do not add NSGA-II (D5) or resume/checkpoint (D4) — those are v2.
- Do not weaken the determinism contract or the validity-invariant tests to make CI pass.
Notes
Depends on M2 (#3) (and M3 (#4) for the final operator set). Completes the pure-Rust GGGP build:
M0 (#1) → M1 (#2) → M2 (#3) → M3 (#4) → M4. After this, a separate spec covers the Python bridge
- real Archimedes two-tier fitness (with DSR deflated for the GA's true trial count).
Summary
Milestone M4: make
evoforge-grammarproduction-ready / publishable (mirrors evoforge'sImplementation-Plan Milestone 9). Lock the public API + formats, add CI, benchmarks, audit, docs, and
tag
v0.1.0. This is the last pure-Rust milestone; the Python bridge + real Archimedes fitness are aseparate later phase.
Spec: https://github.com/mnemonik-dev/genetic_algorithms/blob/main/docs/technical-reference/gggp-implementation-spec.md (§7 release gates, §8 M4)
Scope
.github/workflows):cargo fmt --check,cargo clippy --all-targets --all-features -D warnings,cargo test --all-features,cargo doc --no-deps, feature-matrix build.snapshot()format (the deterministic-snapshot contract); document MSRV (Rust 1.75).budget-based bench, no flaky wall-clock asserts in tests).
cargo auditclean (or documented advisories).Target+Fitnessexample; ensureexamples/evolve_toy.rsandexamples/evolve_faber.rsbuild and run.v0.1.0(annotated). (PyPI/wheel is out of scope — no Python this phase.)Acceptance criteria
-D warnings, test--all-features, doc, feature matrix).cargo doc --no-depsbuilds with no warnings; rustdoc has a runnable end-to-end example.cargo benchor equivalent) and reports decode + GE-run numbers.cargo auditclean or advisories documented.v0.1.0tag created.Anti-goals
Notes
Depends on M2 (#3) (and M3 (#4) for the final operator set). Completes the pure-Rust GGGP build:
M0 (#1) → M1 (#2) → M2 (#3) → M3 (#4) → M4. After this, a separate spec covers the Python bridge