Skip to content

[GGGP M4] Release readiness — CI, semver, benches, docs, v0.1.0 #5

Description

@mnemonik-dev

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

  • CI green on all jobs (fmt, clippy -D warnings, test --all-features, doc, feature matrix).
  • cargo doc --no-deps builds with no warnings; rustdoc has a runnable end-to-end example.
  • Benchmark suite runs (cargo bench or equivalent) and reports decode + GE-run numbers.
  • cargo audit clean or advisories documented.
  • Stability/semver doc present (grammar + snapshot formats + MSRV).
  • v0.1.0 tag created.

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).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions