Highlights of the 6.8 release series
- Support for Numpy2
- Refactor of Design of Experiments (
contrib.doe
) - New packages:
- alternative_solutions: alternative (near) optimal solutions
- New solver interfaces:
- SAS: Statistical Analysis System
- v2: Ongoing solver interface refactor
- ...and of course numerous minor bug fixes and performance enhancements
Changes in this release
SIGNIFICANT CHANGE NOTICE
- Internal data storage for Constraint objects (see #3293)
- No longer release cythonized wheel for Python 3.11+ (see #3355)
CHANGELOG
- General
- Core
- Handle uninitialized variable in
propagate_solution
of scaling
transformation (#3275) - Add
context
option toSuffixFinder
(#3348) - Remove the
_suppress_ctypes
attribute from Block (#3347) - Improve
Set
initialization performance (#3302) - Update Constraint to only store the original expression (not
lower/body/upper) (#3293) - Kernel: fix bug in conic geomean (#3310)
- Fix bug with IndexedSet objects and the within argument (#3288)
- Support validate/filter for IndexedSet components using index (#3338)
- Handle uninitialized variable in
- Solver Interfaces
- Resolve NLv2 incompatibility with multithreading (#3332)
- Resolve writer performance degradation (#3343)
- Fix bug with inconsistent use of
result
andresults
(#3337) - LegacySolverWrapper: restore 'options' attribute (#3334)
- Fix bug in XpressDirect._load_slacks (#3318)
- NLv2: support expressions with nested external functions (#3319)
- Ignore errors on ASL solver version check (#3298)
- Add SAS solver interface (#2886, #3309)
- Testing
- GDP
- Don't transform known-to-be infeasible Disjuncts in multiple BigM (#3314)
- Contributed Packages
- alternative_solutions: Add a new contrib package for generating
alternative solutions (#3270) - APPSI: Allow maingo_solvermodel to be imported without maingopy (#3330)
- APPSI: Sort indices while removing constraints to fix bug in HiGHs
interface (#3281) - CP: Add beforeChild handling for bools in logical expressions (#3315)
- DoE: Refactor to improve API and maintainability (#3317)
- incidence_analysis: Raise error in
generate_strongly_connected_components
instead of asserting (#3305) - parmest: Add missing main call for example file (#3349)
- piecewise: Add incremental PW linear to MIP transformation (#3287)
- piecewise: Add nonlinear-to-piecewise-linear transformation (#3333)
- PyNumero: Support user-provided CyIpopt callbacks with 13 arguments (#3289)
- PyNumero: Support PyomoNLP scaling factors on sub-blocks (#3295)
- PyROS: Temporarily Adjust NL Writer Feasibility Tolerance (#3280)
- viewer: Add option to specify the model by variable name (#3271)
- alternative_solutions: Add a new contrib package for generating