Skip to content

Pyomo 6.6.2

Compare
Choose a tag to compare
@mrmundt mrmundt released this 23 Aug 22:42
· 4500 commits to main since this release
751392b

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
  • Implemented a more performant and robust expression generation system
  • Implemented a more performant NL file writer (NLv2)
  • Implemented a more performant LP file writer (LPv2)
  • Applied PEP8 standards throughout the
    codebase
  • Added support for Python 3.10, 3.11
  • Removed support for Python 3.6
  • Removed the pyomo check command
  • New packages:
    • APPSI (Auto-Persistent Pyomo Solver Interfaces)
    • CP (Constraint programming models and solver interfaces)
    • DoE (Model based design of experiments)
    • External grey box models
    • IIS (Standard interface to solver IIS capabilities)
    • MPC (Data structures/utils for rolling horizon dynamic optimization)
    • piecewise (Modeling with and reformulating multivariate piecewise linear
      functions)
    • PyROS (Pyomo Robust Optimization Solver)
    • Structural model analysis
    • Rewrite of the TrustRegion Solver

Changes in this release

  • ADVANCE CHANGE NOTICE

    • This will be the last release to support Python 3.7.
  • General

    • Fall back on multiprocessing.dummy when multiprocessing.Pool is not
      available (#2890)
    • Clean up implicit function imports (#2892)
    • Ensure all pyomo modules import without warnings (#2897)
    • Resolve FileDownloader.get_os_version exception for missing
      lsb_release (#2911)
    • Improve calculate_variable_from_constraint error messages (#2914)
    • Add function for collecting expressions with unit inconsistencies (#2904)
    • Fix loading Scalar Param from .dat file (#2923)
  • Core

    • Resolve kernel pickle/clone errors (#2916)
    • Reorganize numeric expression modules (#2909)
    • Resolve error categorizing some Var discrete domains as "integer" (#2954)
    • Named expressions: expr should always return NumericValue (#2948)
    • Support kwargs in partial objects passed to Initializer() (#2960)
    • Remove expr.current (#2910)
  • Documentation

    • Fixing a 'that' vs. 'which' mistake in error about bounds crossing (#2950)
    • Add Explicit Linting Instructions to PR Template (#2947)
    • Update pyomo.common documentation (#2912)
    • Remove HTML4 Forcing in Online Docs (#2949)
    • Improved documentation for SOS (#2875)
    • Silence deprecation warnings (#2854)
  • Solvers Interfaces

    • Resolve handling of {}**0 in Linear/QuadraticRepn (#2857)
    • Fix Linear/QuadraticRepnVisitor handling of {}**{float} (#2863, #2865)
    • GAMS: fix pickling models, update tests (#2913)
    • Xpress: fix NLP results processing for Xpress 9.2.0 (#2921)
    • Improve NaN handling in LP, NL writers (#2930)
    • Ensure constants written correctly to LP/NL files (#2953)
  • Testing

    • Remove the 'singletest' job from "branches" builds (#2917)
    • Reactivate NEOS-MOSEK Tests (#2870)
    • New version of crate-ci/typos GitHub Actions (#2869, #2931)
  • DAE

    • Improve error message when attempting to discretize models with circular
      references (#2943)
  • GDP

    • Fixing a typo in gdp.hull transformation (#2915)
    • Add some more instances to the GDP constrained layout example (#2838)
    • Adding (reversible) gdp.transform_current_disjunctive_logic
      transformation (#2809)
  • Contributed Packages

    • APPSI: change default behavior to not care where variables live (#2903)
    • APPSI: Correctly Process Objective Bounds from Gurobi for Nonconvex QCPs
      (#2898)
    • community_detection: fix networkx dependency in doctests (#2885)
    • cp: Fix bug with land in contrib.logical_to_disjunctive transformation
      (#2879)
    • DoE: Update tutorial notebook (#2889)
    • incidence_analysis: Filter variables with non-constant, fixed expressions
      that resolve to zero in get_incident_variables (#2882)
    • incidence_analysis: Correct behavior of linear_only argument in
      get_incident_variables (#2883)
    • MindtPy: Refactor to improve extensibility and maintainability (#2887)
    • PyNumero: Add PyNumeroEvaluationError (#2901)
    • PyNumero: Make min and max work with MPIBlockVector when some blocks have
      size 0 (#2896)
    • PyNumero: Remove old, unused PyNumero code (#2895)
    • PyNumero: Fix typo in docstring (#2873)
    • sensitivity_toolbox: Send lists to numpy.vstack rather than iterators
      (#2881)
    • viewer: Fix model viewer (#2924)