Highlights of the 6.0 release series
- Improved stability and robustness of core Pyomo code and solver interfaces
- Integration of Boolean variables into GDP
- Integration of NumPy support into the Pyomo expression system
- Added support for Python 3.10
- Removed support for Python 3.6
- New packages:
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
- External grey box models
- PyROS (Pyomo Robust Optimization Solver)
- Structural model analysis
- Rewrite of the TrustRegion Solver
Changes in this release
- General
- Resolve dill incompatibility with attempt_import (#2419)
- Speed up book tests and improve import/logging infrastructure (#2449)
- Make typing overloads available at runtime (#2471)
- Update list of known TPLs to reflect Python 3.10 (#2478)
- Add NL writer version 2 but don't activate by default (#2473)
- Add deprecation.relocated_module utility (#2492)
- Core
- Support cython functions through Initializer (#2421)
- Ensure UnindexedComponent_set is correctly pickled/restored (#2416)
- Update as_numeric() to raise an exception on non-is_numeric_type() Pyomo
objects (#2444) - replace_expressions: support replacing variables with constants (#2410)
- Update component_data_objects and component_data_iterindex to not
return duplicate data (#2456) - Fix exception handling logic bug in quicksum (#2458)
- Reduce recursion in model clone/deepcopy (#2487)
- Resolve exception cloning empty LinearExpression objects (#2489)
- Resolve errors from inplace operators on Expression objects (#2493)
- Documentation
- Solver Interfaces
- Testing
- Skip SCIP 8.0 tests on PyPy (#2424)
- Force conda to use conda-forge channel in GHA (#2430)
- Fix GHA win/3.10 Python version inconsistency (#2433)
- Enable Pyomo.DAE Simulator tests on PyPy (#2443)
- Abort the Jenkins build if virtualenv creation fails (#2451)
- Remove scipy from GHA PyPy builds (#2474)
- Move performance testing driver scripts to scripts/performance (#2476)
- Improve common.timing test robustness (#2490)
- Contributed Packages
- APPSI: Improve error message in nl writer when all variables fixed (#2407)
- APPSI: Fix bug in Gurobi interface when modifying the objective (#2454)
- APPSI: Solve blocks that use variables that are not on the block (#2453)
- APPSI: Method to release Gurobi license from persistent interface (#2480)
- community_detection: Trap exceptions from networkx (#2415)
- FBBT: Add tolerances to tests (#2445)
- GDPopt: Refactor to improve extensibility and maintainability (#2406)
- incidence_analysis: Add method for weakly connected components (#2418)
- MindtPy: Fix bug in copying variable values between models (#2432)
- MindtPy: Add support for appsi_cplex and appsi_gurobi (#2373)
- Parmest: Add utils submodule and support to convert Params to Vars (#2352)
- Parmest: Fix use of relocated_module_attribute (#2472)
- PyROS: Fixes to ellipsoidal sets (#2425)
- PyROS: Account for variable domains (#2426)
- PyROS: Fix objective validation (#2371)
- PyROS: Avoid master feasibility problem unit consistency checks (#2459)
- PyROS: Fix discrete uncertainty set separation (#2469)
- PyROS: Update exception handling parsing BARON lower/upper bounds (#2486)