Skip to content

Bump mip from 1.17.6 to 2.0.0 - #147

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/mip-2.0.0
Open

Bump mip from 1.17.6 to 2.0.0#147
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/uv/mip-2.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 7, 2026

Copy link
Copy Markdown
Contributor

Bumps mip from 1.17.6 to 2.0.0.

Changelog

Sourced from mip's changelog.

Changelog — python-mip 2.0

Changes since 1.17.1


Performance

  • LinExpr.add_var and xsum hot paths optimised (single dict operation instead of two; bypass dispatch overhead for the common Var-only case), cutting 11–21% off constraint-heavy model build times.
  • HiGHS backend gained a CFFI C-array cache (matching CBC's bulk-add architecture) that accumulates pending columns/rows and flushes via Highs_addCols/Highs_addRows, plus name→index dicts to avoid unnecessary flushes on variable/constraint lookups.
  • Anonymous variables no longer pay the str.format/str.encode cost of auto-generated var(N) names.

A new reproducible benchmark suite (benchmarks/, documented in docs/bench.rst) was added to measure and track these improvements — comparing python-mip/CBC, python-mip/HiGHS, and python-mip/Gurobi model-build speed across CPython 3.14 and PyPy 3.11, against raw gurobipy and highspy (high-level and batch-numpy APIs), on four problems (n-Queens, TSP, RCPSP, and the new Capacitated Facility Location Problem). Highlights:

  • python-mip/Gurobi on PyPy is 2–4× faster than on CPython, depending on model structure, and remains the only way to drive Gurobi from PyPy at all (gurobipy has no PyPy wheel).
  • For sparse, variable-heavy models python-mip/Gurobi is competitive with or faster than raw gurobipy even on CPython; for dense-constraint models gurobipy's own loop is faster on CPython, but PyPy closes much of that gap.
  • Against highspy's own recommended vectorized numpy-array API, python-mip/HiGHS is competitive with or faster than it on sparser/irregular problems (n-Queens, TSP), while the vectorized API pulls ahead on dense, rectangular problems (e.g. CFLP).

New Features

Model.add_vars() batch variable creation

Model.add_vars(n, ...) / VarList.add_vars(n, ...) create n variables in a single call, avoiding per-call dispatch overhead compared to n calls to add_var().

New LP solve controls: TRUNCATED status, max_iter, lp_method, lp_preprocess

  • OptimizationStatus.TRUNCATED for LP solves stopped early by a time or iteration limit (populates primal/dual solution and objective bound whenever feasible, instead of reporting a misleading OPTIMAL/INFEASIBLE).
  • Model.max_iter caps simplex/barrier iterations for LP solves, wired through CBC, HiGHS and Gurobi.
  • Model.optimize(lp_method=...) selects dual simplex, primal simplex or IPM/barrier — added to HiGHS and Gurobi (CBC already had it).
  • New CBC-specific LP_Method.RACING and LP_Method.RECOMMEND values: RACING runs several

... (truncated)

Commits
  • 42b95c9 Release 2.0: CBC racingLP support, benchmark suite, LP solve controls
  • 3d016ef chore: bump cbcbox requirement to >=2.935
  • 0587467 chore: bump cbcbox requirement to >=2.934
  • 319805a Switch back to cbcbox for the bundled CBC library
  • a368899 ci: add Python 3.14 to test matrix
  • 64610aa Migrate from cbcbox to mipster for the bundled CBC library (#424)
  • 3f03388 Remove deprecated timeMode parameter for CBC compatibility
  • ae7252e docs: put n first in RCPSP tables, fix CSS column selectors
  • fb776f3 docs: right-align table numbers and merge RCPSP config tables
  • 8a0b773 docs: add RCPSP benchmark, gurobipy comparison, and trim bench descriptions
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [mip](https://github.com/coin-or/python-mip) from 1.17.6 to 2.0.0.
- [Release notes](https://github.com/coin-or/python-mip/releases)
- [Changelog](https://github.com/coin-or/python-mip/blob/master/CHANGELOG.md)
- [Commits](coin-or/python-mip@v1.17.6...v2.0.0)

---
updated-dependencies:
- dependency-name: mip
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants