Solver version compatibility¶
MIP++ drives each solver through one implementation that adapts at
runtime to a range of releases, so the question this table answers
is: which released versions does that implementation drive
correctly? Its passing rows are the evidence behind the
validated_versions each backend declares, and the
loaded_release_is_a_validated_one test fails on a row whose
release passes but is missing from that claim.
Each row is a published library, downloaded and pointed at through
MIPPP_<solver>_LIBRARY, with the backend's full test suite run
against it on Linux/x86-64. The result column counts the tests that
passed out of every test accounted for:
- ✅ every test passed
- ❌ some test failed
- ⚠️ passed, but an unusual number of tests skipped, or nothing ran at all -- the notes say which
Capability skips are counted in the total, so a backend that cannot do quadratic objectives still shows those tests. The fuzz seed is pinned so that rows differ only by the library under test.
Cbc¶
Implementation impl/v1, library from coin-or-cbc (conda).
| version | library | result | notes |
|---|---|---|---|
2.10.13 |
libCbcSolver.so.3.10.13 |
✅ 100/100 | - |
2.10.12 |
libCbcSolver.so.3.10.12 |
✅ 100/100 | - |
2.10.11 |
libCbcSolver.so.3.10.11 |
✅ 100/100 | - |
2.10.10 |
libCbcSolver.so.3.10.10 |
✅ 100/100 | - |
2.10.9 |
libCbcSolver.so.3.10.9 |
✅ 100/100 | - |
2.10.8 |
libCbcSolver.so.3.10.8 |
❌ aborts | killed by signal 6; [ RUN ] Cbc/MilpModelTest/0.add_integer_variable_and_indexed_integer_variables / [ RUN ] Cbc/MilpModelTest/0.solve_bounded_integer_variables_max / free(): invalid pointer |
2.10.7 |
libCbcSolver.so.3.10.7 |
❌ aborts | killed by signal 6; [ RUN ] Cbc/MilpModelTest/0.add_integer_variable_and_indexed_integer_variables / [ RUN ] Cbc/MilpModelTest/0.solve_bounded_integer_variables_max / free(): invalid pointer |
2.10.5 |
libCbcSolver.so.3.10.5 |
❌ aborts | killed by signal 6; [ RUN ] Cbc/MilpModelTest/0.add_integer_variable_and_indexed_integer_variables / [ RUN ] Cbc/MilpModelTest/0.solve_bounded_integer_variables_max / free(): invalid pointer |
2.10.4 |
libCbcSolver.so.3.10.4 |
❌ aborts | killed by signal 6; [ RUN ] Cbc/MilpModelTest/0.add_integer_variable_and_indexed_integer_variables / [ RUN ] Cbc/MilpModelTest/0.solve_bounded_integer_variables_max / free(): invalid pointer |
Clp¶
Implementation impl/v1, library from coin-or-clp (conda).
| version | library | result | notes |
|---|---|---|---|
1.17.11 |
libClp.so.1.14.11 |
✅ 92/92 | - |
1.17.10 |
libClp.so.1.14.10 |
✅ 92/92 | - |
1.17.8 |
libClp.so.1.14.8 |
✅ 92/92 | - |
1.17.7 |
libClp.so.1.14.7 |
✅ 92/92 | - |
1.17.6 |
libClp.so.1.14.6 |
✅ 92/92 | - |
1.17.4 |
libClp.so.1.14.4 |
✅ 92/92 | - |
COPT¶
Implementation impl/v1, library from coptpy (pypi).
Warning
Community licence caps model size. validated_versions rests on the release the wrapper was written against and a maintainer's local full run of copt 8.0.5 (2026-09-19).
| version | library | result | notes |
|---|---|---|---|
8.0.6 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
8.0.5 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
8.0.4 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
8.0.3 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
8.0.2 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
8.0.1 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
7.2.11 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
7.2.10 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
7.2.9 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
7.2.8 |
- |
⚠️ no library in archive | no candidate matched ['*/libcopt.so']; archive ships coptcore.so, coptpywrap.so, libcopt_python.so |
CPLEX¶
Implementation impl/v1, library from cplex (pypi).
Warning
Community edition caps model size.
| version | library | result | notes |
|---|---|---|---|
2220 |
libcplex2220.so |
✅ 193/194 | cplex 22.2.0.0-22.2.0.1; 1 skipped |
2212 |
libcplex2212.so |
✅ 193/194 | cplex 22.1.2.0-22.1.2.1; 1 skipped |
2211 |
libcplex2211.so |
✅ 193/194 | cplex 20.1.0.5-22.1.1.2; 1 skipped |
2210 |
libcplex2210.so |
✅ 193/194 | 1 skipped |
GLPK¶
Implementation impl/v1, library from glpk (conda).
| version | library | result | notes |
|---|---|---|---|
5.0 |
libglpk.so.40.3.1 |
✅ 156/156 | - |
4.65 |
libglpk.so.40.3.0 |
✅ 156/156 | - |
4.63 |
libglpk.so.40.2.2 |
✅ 156/156 | - |
4.62 |
libglpk.so.40.2.1 |
✅ 156/156 | - |
4.61 |
libglpk.so.40.2.0 |
✅ 156/156 | - |
4.60 |
libglpk.so.40.1.0 |
✅ 156/156 | - |
4.59 |
libglpk.so.40.0.0 |
✅ 156/156 | - |
Gurobi¶
Implementation impl/v1, library from gurobipy (pypi).
Warning
The wheel bundles a size-limited licence, so results only cover small models.
| version | library | result | notes |
|---|---|---|---|
130 |
libgurobi130.so |
✅ 193/194 | gurobipy 13.0.0-13.0.3; 1 skipped |
120 |
libgurobi120.so |
✅ 193/194 | gurobipy 12.0.0-12.0.3; 1 skipped |
110 |
libgurobi110.so |
✅ 193/194 | gurobipy 11.0.2-11.0.3; 1 skipped |
HiGHS¶
Implementation impl/v1, library from highs (conda).
| version | library | result | notes |
|---|---|---|---|
1.15.1 |
libhighs.so.1.15.1 |
✅ 286/286 | - |
1.14.0 |
libhighs.so.1.14.0 |
✅ 286/286 | - |
1.13.1 |
libhighs.so.1.13.1 |
✅ 286/286 | - |
1.13.0 |
libhighs.so.1.13.0 |
✅ 286/286 | - |
1.12.0 |
libhighs.so.1.12.0 |
✅ 286/286 | - |
1.11.0 |
libhighs.so.1.11.0 |
✅ 286/286 | - |
1.10.0 |
libhighs.so.1.10.0 |
✅ 286/286 | - |
1.9.0 |
libhighs.so.1.9.0 |
✅ 286/286 | - |
1.8.1 |
libhighs.so.1.8.1 |
✅ 286/286 | - |
1.7.2 |
libhighs.so.1.7.2 |
❌ 269/286 | failing: HiGHS_api.loaded_release_is_a_validated_one, HiGHS_lp/LpModelTest/0.add_constraints, HiGHS_lp/LpModelTest/0.add_constraints_distinct_variables |
MOSEK¶
Implementation impl/v1, library from Mosek (pypi).
Warning
Needs a licence file; without one every test skips on license_error. validated_versions rests on the release the wrapper was written against and a maintainer's local full run of mosek 11.0.14 (2026-09-19).
| version | library | result | notes |
|---|---|---|---|
11.2 |
libmosek64.so.11.2 |
❌ 156/157 | Mosek 11.2.0-11.2.4; failing: MOSEK_api.loaded_release_is_a_validated_one |
11.1 |
libmosek64.so.11.1 |
❌ 156/157 | Mosek 11.1.7-11.1.11; failing: MOSEK_api.loaded_release_is_a_validated_one |
SCIP¶
Implementation impl/v1, library from scip (conda).
| version | library | result | notes |
|---|---|---|---|
10.0.3 |
libscip.so.10.0.3 |
✅ 84/84 | - |
10.0.2 |
libscip.so.10.0.2 |
✅ 84/84 | - |
10.0.1 |
libscip.so.10.0.1 |
✅ 84/84 | - |
10.0.0 |
libscip.so.10.0.0 |
✅ 84/84 | - |
9.2.4 |
libscip.so.9.2.4.0 |
✅ 84/84 | - |
9.2.3 |
libscip.so.9.2.3.0 |
✅ 84/84 | - |
9.2.2 |
libscip.so.9.2.2.0 |
✅ 84/84 | - |
9.2.1 |
libscip.so.9.2.1.0 |
✅ 84/84 | - |
9.2.0 |
libscip.so.9.2.0.0 |
✅ 84/84 | - |
9.1.1 |
libscip.so.9.1.1.0 |
✅ 84/84 | - |
SoPlex¶
Implementation impl/v1, library from soplex (conda).
| version | library | result | notes |
|---|---|---|---|
8.0.3 |
libsoplexshared.so.8.0.3 |
✅ 45/46 | 1 skipped |
8.0.2 |
libsoplexshared.so.8.0.2 |
✅ 45/46 | 1 skipped |
8.0.1 |
libsoplexshared.so.8.0.1 |
✅ 45/46 | 1 skipped |
8.0.0 |
libsoplexshared.so.7.0.0.0 |
✅ 45/46 | 1 skipped |
7.1.6 |
libsoplexshared.so.7.1.6.0 |
✅ 45/46 | 1 skipped |
7.1.5 |
libsoplexshared.so.7.1.5.0 |
✅ 45/46 | 1 skipped |
7.1.4 |
libsoplexshared.so.7.1.4.0 |
✅ 45/46 | 1 skipped |
7.1.3 |
libsoplexshared.so.7.1.3.0 |
✅ 45/46 | 1 skipped |
7.1.2 |
libsoplexshared.so.7.1.2.0 |
✅ 45/46 | 1 skipped |
7.1.1 |
libsoplexshared.so.7.1.1.0 |
✅ 45/46 | 1 skipped |
Xpress¶
Implementation impl/v1, library from xpresslibs (pypi).
Warning
Community licence caps model size. validated_versions rests on the release the wrapper was written against and a maintainer's local full run of xpress 47.1.1 (2026-09-19).
| version | library | result | notes |
|---|---|---|---|
47 |
libxprs.so.47 |
✅ 159/160 | xpresslibs 9.9.0-9.9.1; 1 skipped |
46 |
libxprs.so.46 |
✅ 159/160 | xpresslibs 9.8.0-9.8.1; 1 skipped |
45 |
libxprs.so.45 |
✅ 159/160 | xpresslibs 9.6.3-9.7.2; 1 skipped |