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/Binarymodels.
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.HiGHSbecomes a realSolverbacked 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.