Skip to content

Prevent bundled CBC crashes with CFFI 2.x on Linux - #44

Open
zack-dev-cm wants to merge 1 commit into
UNSW-CEEM:masterfrom
zack-dev-cm:fix/linux-cbc-cffi-compatibility
Open

zack-dev-cm wants to merge 1 commit into
UNSW-CEEM:masterfrom
zack-dev-cm:fix/linux-cbc-cffi-compatibility

Conversation

@zack-dev-cm

Copy link
Copy Markdown

Fresh pip installations of the declared mip==1.16rc0 can select CFFI 2.x and abort during tests/test_markets.py::test_one_interconnector on Linux x86-64. In controlled runs on unchanged master 2d3cef0, the test passes with CFFI 1.17.1 and aborts with 2.0.0 on both Python 3.9 and 3.12. CFFI 2.1.1 also aborts on Python 3.12; all other installed packages were identical in that comparison.

This constrains CFFI to >=1.17.1,<2 on the affected platform while retaining the declared solver and Python minimum. The lock already selected 1.17.1; its root metadata now matches the package version, pandas requirement, and new constraint. Other platforms retain the solver's existing CFFI requirement.

The new CI job installs a freshly built wheel in a separate environment and runs the existing offline market and solver tests outside the checkout. It includes the original interconnector test without changing or skipping it.

Validation: installed-wheel CI passed, with 56 tests and zero failures or skips on each of Python 3.9 and 3.12. uv lock --check also passed. This is a compatibility constraint for the bundled solver; it does not claim a fix to CFFI internals or validation of historical cache-dependent benchmarks.

This change is independent of #43 and can be reviewed separately.

@zack-dev-cm

Copy link
Copy Markdown
Author

Could a maintainer approve the pending test and CBC compatibility workflows for this PR, and the test workflow for #43? The linked installed-wheel validation passes all 56 offline tests, including the original interconnector case, on Python 3.9 and 3.12. This dependency correction remains independently reviewable from #43's ramp-input changes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant