reference

Roadmap.

The plan, in versions. Pre-1.0 minor releases (0.1 → 0.2 → …) are allowed to break the API as the design settles. The full, continuously-updated source of truth is ROADMAP.md in the repo.

v0.1 — Pure-Go simplex

shipped

  • Modeling DSL: Problem, Var, Expr, Constraint, Result.
  • Two-phase simplex on a dense tableau with Bland’s anti-cycling rule.
  • Shadow prices, reduced costs, slacks, structured SensitivityReport.
  • CPLEX-LP and MPS writers.
  • Post-solve LP-relaxation warning for Integer/Binary models.

v0.2 — File I/O round-trip and richer sensitivity

planned · Q3 Backwards-compatible additions only.

  • LP and MPS readers (to close the round-trip; MIPLIB-friendly).
  • Per-coefficient and per-RHS ranging for stable-basis intervals.
  • Warm starts: SolveWith(prob, startingBasis).
  • Presolve that drops empty rows/columns and detects fixed variables.

v0.3 — HiGHS cgo backend

planned · Q4 Optional, behind -tags highs.

  • grove.HiGHS becomes a real Solver backed by HiGHS, cgo-linked.
  • Sparse CSC conversion; HiGHS duals/reduced costs surfaced through grove’s own Result.
  • Benchmarks vs. pure Go on a curated MIPLIB subset.

v0.4 — Branch-and-bound MIP

planned · next year The first feature that needs a different solver core.

  • Branch-and-bound wrapping the v0.1 simplex as the relaxation oracle.
  • Best-first node selection; most-fractional / strong / pseudocost branching.
  • Gomory and cover cuts.
  • Optimality gap reporting (PrimalBound, DualBound, RelGap).
  • Time-limit and gap-tolerance solver options.

v0.4 is the version that makes Integer variables go from caveat to first-class. Until then, the post-solve warning is grove’s honest shorthand for “this ILP didn’t happen to land on an integer vertex”.

v1.0 — Stability and docs

planned · after production users

  • API freeze for the modeling layer.
  • Cookbook-style site with twenty-plus worked models.
  • Long-running performance regression suite gating every release.
  • 100% test coverage on the solver core.

Beyond 1.0 — speculative

  • Quadratic objectives (QP) via active-set methods on top of the simplex.
  • Network simplex for transportation/assignment LPs.
  • A WebAssembly build for in-browser demos.
  • Distributed cutting-plane MIP (Benders / Dantzig-Wolfe).

If a feature on this list is blocking you today, the fastest path is an issue on GitHub. Knowing who’s waiting on what moves the numbered order around.