pyomo

An object-oriented algebraic modeling language in Python for structured optimization problems.

OTHER License

Downloads
561.2K
Stars
2K
Committers
130

Bot releases are hidden (Show)

pyomo - Pyomo 6.8.0 Latest Release

Published by mrmundt about 2 months ago

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
    • Add ParameterizedQuadraticRepn and corresponding walker (#3324)
    • Update Pyomo for NumPy 2.0 compatibility (#3292, #3353)
    • Add ParameterizedLinearRepn and corresponding walker (#3268)
    • Update Release Process Workflow for changes in pip (#3355)
  • Core
    • Handle uninitialized variable in propagate_solution of scaling
      transformation (#3275)
    • Add context option to SuffixFinder (#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)
  • Solver Interfaces
    • Resolve NLv2 incompatibility with multithreading (#3332)
    • Resolve writer performance degradation (#3343)
    • Fix bug with inconsistent use of result and results (#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
    • Omnibus testing / platform portability fixes (#3335)
    • Change BARON download URL (#3328)
    • Disable interface/testing for NEOS/octeract (#3322)
    • Fix typo in Jenkins driver (#3312)
    • Jenkins: update logic for recording variables (#3311)
    • Unpin Codecov / Update coverage (#3303)
  • 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)
pyomo - Pyomo 6.7.3

Published by blnicho 5 months ago

Highlight of the 6.7 release series

  • Added support for Python 3.12
  • Removed support for Python 3.7
  • New writer for converting linear models to matrix form
  • Improved handling of nested GDPs
  • Redesigned user API for parameter estimation
  • New packages:
    • iis: new capability for identifying minimal intractable systems
    • latex_printer: print Pyomo models to a LaTeX compatible format
    • contrib.solver: preview of redesigned solver interfaces
    • simplification: simplify Pyomo expressions
  • New solver interfaces
    • MAiNGO: Mixed-integer nonlinear global optimization
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • Core
    • Deprecate pyomo.core.plugins.transform.model.to_standard_form() (#3265)
    • Reorder definitions to avoid NameError in some situations (#3264)
  • Solver Interfaces
    • NLv2: Fix linear presolver with constant defined vars/external fcns (#3276)
  • Testing
    • Add URL checking to GHA linting job (#3259, #3261)
    • Skip Windows Python 3.8 conda GHA job (#3269)
  • Contributed Packages
    • DoE: Bug fixes for workshop (#3267)
    • viewer: Update guard for pint import (#3277)
pyomo - Pyomo 6.7.2

Published by jsiirola 5 months ago

Highlight of the 6.7 release series

  • Added support for Python 3.12
  • Removed support for Python 3.7
  • New writer for converting linear models to matrix form
  • Improved handling of nested GDPs
  • Redesigned user API for parameter estimation
  • New packages:
    • iis: new capability for identifying minimal intractable systems
    • latex_printer: print Pyomo models to a LaTeX compatible format
    • contrib.solver: preview of redesigned solver interfaces
    • simplification: simplify Pyomo expressions
  • New solver interfaces
    • MAiNGO: Mixed-integer nonlinear global optimization
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Support config domains with either method or attribute domain_name (#3159)
    • Automate TPL callback registrations (#3167)
    • Fix type registrations for ExternalFunction arguments (#3168)
    • Only modify module path and spec for deferred import modules (#3176)
    • Add "mixed" standard form representation (#3201)
    • Support "default" dispatchers in ExitNodeDispatcher (#3194)
    • Redefine objective sense as a proper IntEnum (#3224)
    • Fix division-by-0 bug in linear walker (#3246)
  • Core
    • Allow Var objects in LinearExpression.args (#3189)
    • Add type hints to components (#3173)
    • Simplify expressions generated by TemplateSumExpression (#3196)
    • Make component data public classes (#3221, #3253)
    • Exploit repeated named expressions in identify_variables (#3190)
  • Documentation
    • NFC: Add link to the HOMOWP companion notebooks (#3195)
    • Update installation documentation to include Cython instructions (#3208)
    • Add links to the Pyomo Book Springer page (#3211)
  • Solver Interfaces
    • Fix division by zero error in linear presolve (#3161)
    • Subprocess timeout update (#3183)
    • Solver Refactor - Bug fixes for various components (#3181, #3214, #3228)
    • NLv2: handle presolved independent linear subsystems (#3193)
    • Update LegacySolverWrapper compatibility with the pyomo script (#3202)
    • Fix mosek_direct to use putqconk instead of putqcon (#3199)
    • Check _skip_trivial_constraints before the constraint body (#3226)
    • Fix AMPL solver duplicate funcadd (#3206)
    • Disable the use of universal newlines in the ipopt_v2 NL file (#3231)
    • NLv2: fix reporting numbers of nonlinear discrete variables (#3238)
    • Fix: Get SCIP solving time considering float number with some text (#3234)
    • Solver Refactor - Add gurobi_direct implementation (#3225)
  • Testing
    • Update TPL package list due to contrib.solver (#3164)
    • Set maxDiff=None on the base TestCase class (#3171)
    • Testing infrastructure updates (#3175)
    • Typos update for March 2024 (#3219)
    • Add openmpi to testing environment to resolve issue in mpi4py (#3236, #3239)
    • Skip black 24.4.1 due to a bug in the parser (#3247)
    • Skip tests on draft and WIP pull requests (#3223)
    • Update GHA to grab gurobipy from PyPI (#3254)
  • GDP
    • Use private_data for all original / transformed component mappings (#3166)
    • Fix a bug in gdp.bigm transformation for nested GDPs (#3213)
  • Contributed Packages
    • APPSI: cmodel: handle non-mutable params in var / constraint bounds (#3182)
    • APPSI: Allow APPSI FBBT to handle nested named Expressions (#3185)
    • APPSI: Add MAiNGO solver interface (#3165)
    • CP: Add SequenceVar and other logical expressions for scheduling (#3227)
    • DoE: Bug fixes (#3245)
    • iis: Add minimal intractable system infeasibility diagnostics (#3172)
    • incidence_analysis: Improve solve_strongly_connected_components
      performance for models with named expressions (#3186)
    • incidence_analysis: Add function to plot incidence graph in
      Dulmage-Mendelsohn order (#3207)
    • incidence_analysis: Require variables and constraints to be specified
      separately in IncidenceGraphInterface.remove_nodes (#3212)
    • latex_printer: bugfix for set operations / multidimensional sets (#3177)
    • MindtPy: Add HiGHS support (#2971)
    • MindtPy: Add call_before_subproblem_solve callback (#3251)
    • Parmest: New UI using experiment lists (#3160)
    • piecewise: Add piecewise linear transformations (#3036)
    • preprocessing: bugfix: intersect domains in variable aggregator (#3241)
    • PyNumero: Allow CyIpopt to solve problems without objectives (#3163)
    • PyNumero: Work around bug in CyIpopt 1.4.0 (#3222)
    • PyNumero: Include "inventory" in readme (#3248)
    • PyROS: Simplify custom domain validators (#3169)
    • PyROS: Fix iteration logging for edge case involving discrete sets (#3170)
    • PyROS: Update solver timing system (#3198)
    • simplification: expression simplification using GiNaC or SymPy (#3088)
pyomo - Pyomo 6.7.1

Published by mrmundt 8 months ago

Highlight of the 6.7 release series

  • Added support for Python 3.12
  • Removed support for Python 3.7
  • New writer for converting linear models to matrix form
  • Improved handling of nested GDPs
  • New packages:
    • latex_printer: print Pyomo models to a LaTeX compatible format
    • contrib.solver: preview of redesigned solver interfaces
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Add support for tuples in ComponentMap; add DefaultComponentMap (#3150)
    • Update Path, PathList, and IsInstance Domain Validators (#3144)
    • Remove usage of __all__ (#3142)
    • Extend Path and Type Checking Validators of common.config (#3140)
    • Update Copyright Statements (#3139)
    • Update ExitNodeDispatcher to better support extensibility (#3125)
    • Create contributors data gathering script (#3117)
    • Prevent duplicate entries in ConfigDict declaration order (#3116)
    • Remove unnecessary __future__ imports (#3109)
    • Import pandas through pyomo.common.dependencies (#3102)
    • Update links to workshop slides (#3079)
    • Remove incorrect use of identity (is) comparisons (#3061)
  • Core
    • Add Block.register_private_data_initializer() (#3153)
    • Generalize the simple_constraint_rule decorator (#3152)
    • Fix edge case assigning new numeric types to Var/Param with units (#3151)
    • Add private_data to _BlockData (#3138)
    • IndexComponent create implicit sets as "anonymous" sets (#3075)
    • Add all_different and count_if to the logical expression system (#3058)
    • Fix RangeSet.len when defined by floats (#3119)
    • Overhaul the Suffix component (#3072)
    • Enforce expression immutability in expr.args (#3099)
    • Improve NumPy registration when assigning numpy to Param (#3093)
    • Track changes in PyPy behavior introduced in 7.3.14 (#3087)
    • Remove automatic numpy import (#3077)
    • Fix range_difference for Sets with nonzero anchor points (#3063)
    • Clarify errors raised by accessing Sets by positional index (#3062)
  • Documentation
    • Update intersphinx links, remove docs for nonfunctional code (#3155)
    • Update MPC documentation and citation (#3148)
    • Fix an error in the documentation for LinearExpression (#3090)
    • Fix Pyomo.DoE documentation (#3070)
    • Fix latex_printer documentation (#3066)
  • Solver Interfaces
    • Preview release of new solver interfaces as pyomo.contrib.solver
      (#3137, #3156)
    • Make error msg more explicit wrt different interfaces (#3141)
    • NLv2: only raise exception for empty models in the legacy API (#3135)
    • Add to_expr() to AMPLRepn, fix NLWriterInfo return type (#3095)
  • Testing
    • Update Release Wheel Builder Action (#3149)
    • Actions Version Update: Address node.js deprecations (#3118)
    • New Black Major Release (24.1.0) (#3108)
    • Use scip for PyROS tests (#3104)
    • Add missing solver dependency flags for OnlineDocs tests (#3094)
    • Re-enable contrib.viewer.tests.test_qt.py (#3085)
    • Add automated testing of OnlineDocs examples (#3080)
    • Silence deprecation warnings emitted by Pyomo tests (#3076)
    • Fix Python 3.12 tests (manage pyutilib, distutils dependencies) (#3065)
  • DAE
    • Replace deprecated numpy.math alias with standard math module (#3074)
  • GDP
    • Handle nested GDPs correctly in all the transformations (#3145)
    • Fix bugs in nested models in gdp.hull transformation (#3143)
    • Various bug fixes in gdp.mbigm transformation (#3073)
    • Add GDP => MINLP Transformation (#3082)
  • Contributed Packages
    • GDPopt: Fix lbb solve_data bug (#3133)
    • GDPopt: Adding missing import for gdpopt.enumerate (#3105)
    • FBBT: Extend fbbt.ExpressionBoundsVisitor to handle relational
      expressions and Expr_if (#3129)
    • incidence_analysis: Method to add an edge in IncidenceGraphInterface (#3120)
    • incidence_analysis: Add subgraph method to IncidencegraphInterface (#3122)
    • incidence_analysis: Add ampl_repn option (#3069)
    • incidence_analysis: Update documentation (#3067)
    • interior_point: Resolve test failure due to Mumps update (#3114)
    • MindtPy: Various bug fixes (#3034)
    • PyROS: Update Solver Argument Resolution and Validation Routines (#3126)
    • PyROS: Update Subproblem Initialization Routines (#3071)
    • PyROS: Fix DR polishing under nominal objective focus (#3060)
pyomo - Pyomo 6.7.0

Published by jsiirola 11 months ago

Highlights of the 6.7 release series

  • Added support for Python 3.12
  • Removed support for Python 3.7
  • New writer for converting linear models to matrix form
  • New packages:
    • latex_printer (print Pyomo models to a LaTeX compatible format)
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Remove Python 3.7, add Python 3.12 Support (#3050, #2956)
    • Update report_timing() to support context manager API (#3039)
    • Add Preformatted class for logging preformatted messages (#2998)
    • QuadraticRepnVisitor: Improve nonlinear expression expansion (#2997)
    • Add CITATION file to main repository (#2992)
    • Minor typo / formatting fixes (#3010, #2975)
  • Core
    • Fix exception from interaction of Gurobi, Pint, Dask, and Threading (#3026)
    • Fix differentiation of Expressions with native_numeric_types (#3017)
    • Warn for explicit declaration of immutable params with units (#3004)
    • Use SetInitializer for initializing Param domains; reinitializing
      IndexedVar domains (#3001)
    • Ensure templatize_constraint returns an expression (#2983)
    • Prevent multiple applications of the scaling transform (#2979)
  • Solver Interfaces
    • Remove presolve-eliminated variables from named expressions (#3056)
    • Improve LP/NL writer determinism (#3054)
    • Add "writer" for converting linear models to standard matrix form (#3046)
    • NLv2/LPv2: Log which suffix values were skipped at the DEBUG level (#3043)
    • NLv2: add linear presolve and general problem scaling support (#3037)
    • Adjust mps writer format for integer variable declaration (#2946)
    • Fix scip results processing (#3023)
    • Fix quadratic objective off-diagonal-terms in cplex_direct interface (#3025)
    • Consolidate walker logic in LP/NL representations (#3015)
    • LP writer: warn user for ignored suffixes (#2982)
    • Update handling of 0* in linear, quadratic walkers (#2981)
  • Testing
    • Pin gurobipy version for testing to 10.0.3 (#3053)
    • Update Performance Plot URL (#3033)
    • Track change in Black rules (#3021)
    • Resolve build infrastructure errors (with mpi4py, gams, networkx) (#3018)
    • Improve GHA conda env package setup (#3013, #2967)
    • Update Gurobi license checks in tests (#3011)
    • Skip fileutils test failure that persists in OSX 12.7 (#3008)
    • LINTING: New Version of crate-ci/typos (#2987)
  • GDP
    • Improve Disjunction construction error for invalid types (#3042)
    • Adding new walker for compute_bounds_on_expr (#3027)
    • Fix bugs in gdp.bound_pretransformation (#2973)
    • Fix various bugs in GDP transformations (#3009)
    • Add a few more GDP examples (#2932)
  • Contributed Packages
    • APPSI: Add interface to WNTR (#2902)
    • APPSI: Capture HiGHS output when initializing model (#3005)
    • APPSI: Fix auto-update when unfixing variable and changing bounds (#2996)
    • APPSI: Fix reference bug in HiGHS interface (#2995)
    • FBBT: Add new walker for compute_bounds_on_expr (#3027)
    • incidence_analysis: Fix bugs with subset ordering and 0 coefficients (#3041)
    • incidence_analysis: Update paper reference (#2969)
    • latex_printer: Add contrib.latex_printer package (#2984)
    • MindtPy: Add support for GreyBox models (#2988)
    • parmest: Cleanup examples and tests (#3028)
    • PyNumero: Handle evaluation errors in CyIpopt solver (#2994)
    • PyROS: Report relative variable shifts in solver logs (#3035)
    • PyROS: Update logging system (#2990)
pyomo - Pyomo 6.6.2

Published by mrmundt about 1 year ago

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)
pyomo - Pyomo 6.6.1

Published by jsiirola over 1 year ago

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

  • General
    • Update cmake builder for recent setuptools (#2847)
    • Fixing minor formatting for 6.6.0 release changes (#2842)
    • Silence deprecation warnings (#2854)
  • Core
    • Update indentation handling in config.StringFormatter (#2853)
    • Restore slice API broken by #2829 (#2849)
    • Resolve handling of {}**0 in LinearRepn/QuadraticRepn (#2857)
  • Solver Interfaces
    • NL writer: resolve error identifying vars in indexed SOS (#2852)
    • Manage Gurobi environments in GurobiDirect (#2680)
  • Contributed Packages
    • cp: fix handling fixed BooleanVars in logical-to-disjunctive walker (#2850)
    • FBBT: Fix typo when handling GeneralExpression objects (#2848)
    • MindtPy: add support for cyipopt (#2830)
pyomo - Pyomo 6.6.0

Published by blnicho over 1 year ago

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

  • General
    • Remove pyomo check/pyomo.checker module (#2753)
    • Improve formatting of docstrings generated from ConfigDict (#2754)
    • Deprecate add_docstring_list (#2755)
    • Reapply black to previously completed directories (#2775)
    • Improve formatting for DeveloperError, MouseTrap messages (#2805)
  • Core
    • Bugfix: component indexes specified as lists (#2765)
    • Remove the use of weakrefs in SymbolMap (#2791)
    • Improve conversions between Pyomo and Sympy expressions (#2806)
    • Rework expression generation to leverage multiple dispatch (#2722)
    • Improve robustness of calculate_variable_from_constraint() (#2812)
    • Add support for infix Boolean logical operators (#2835)
    • Improvements to Pyomo component iteration (#2829)
  • Documentation
    • Copyright and Book Updates (#2750)
    • Link documentation in incidence_analysis README (#2759)
    • Update ReadtheDocs Configuration (#2780)
    • Correct import in community.rst (#2792)
    • Remove instructions for python <= 3.0 (#2822)
  • Solvers Interfaces
    • NEOS: fix typo in kestrelAMPL.kill() argument (#2758)
    • Better handling of mutable parameters in HiGHS interface (#2763)
    • Improve linear data structure in NL writer (#2769)
    • Bugfix for shared named expressions in NL writer (#2790)
    • Resolve NPV constants in LinearExpressions in NL writer (#2811)
    • GAMS/Baron: ensure negative numbers are parenthesized (#2833)
    • Release LP version 2 (LPv2) writer (#2823, #2840)
  • Testing
    • Rework Upload of Coverage Reports (#2761)
    • Update constant for visitor tests for python 3.11.2 (#2799)
    • Auto-Linting: Spelling Black Style Checker (#2800, #2818)
    • Skip MOSEK tests on NEOS (due to unknown NEOS error) (#2839)
  • GDP
    • Add gdp.bound_pretransformation (#2824)
  • Contributed Packages
    • APPSI: Improve logging consistency across solvers (#2787)
    • APPSI: Update available method in APPSI-Gurobi interface (#2828)
    • DoE: Release version 2 (#2794)
    • incidence_analysis: Remove strict usage of PyomoNLP (#2752)
    • incidence_analysis: Test IndexedBlock (#2789)
    • incidence_analysis: Use standard repn for incidence graph generation (#2834)
    • Parmest: Update for pandas 2.0.0 release (#2795)
    • piecewise: Add contrib.piecewise package (#2708, #2768, #2766, #2797, #2798,
      #2826)
    • PyNumero: Refactor CyIpopt interface to subclass cyipopt.Problem (#2760)
    • PyNumero: Fix CyIpopt interface when load_solutions=False (#2820)
    • PyROS: Fixes to PyROS Separation Routine (#2815)
    • PyROS: Fixes to Coefficient Matching and Timing Functionalities (#2837)
pyomo - Pyomo 6.5.0

Published by jsiirola over 1 year ago

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 NL file writer (NLv2)
  • Added support for Python 3.10, 3.11
  • Removed support for Python 3.6
  • 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)
    • PyROS (Pyomo Robust Optimization Solver)
    • Structural model analysis
    • Rewrite of the TrustRegion Solver

Changes in this release

  • General
    • Apply black to enforce PEP8 standards in certain modules (#2737, #2738,
      #2733, #2732, #2731, #2728, #2730, #2729, #2720, #2721, #2719, #2718)
    • Add Developers' call information to README (#2665)
    • Deprecate pyomo.checker module (#2734)
    • Warn when infeasibility tools will not log output (#2666)
    • Separate identification from logging in pyomo.util.infeasible.log_* (#2669)
    • Convert subprocess timeout parameters to module attributes (#2672)
    • Resolve consistency issues in the Bunch class (#2685)
    • Remove GSL downloader from download-extensions (#2725)
    • Update enhancement GitHub issue template to link to wiki (#2739)
    • Add deprecation warning to pyomo command (#2740)
    • Require version= for all deprecation utilities (#2744)
    • Fix pyomo --version version string (#2743)
  • Core
    • Fix minor typo: taht -> that in set.py (#2679)
    • Fix bugs in scaling transformation (#2678)
    • Rework handling of 'dimensionless' units in Pyomo (#2691)
  • Solver Interfaces
    • Switch default NL writer to nlv2 and bug fixes (#2676, #2710, #2726)
    • Enable MOSEK10 warm-start flag and relocate var initialization (#2647)
    • Fix handling of POW in Baron writer (#2693)
    • Update GAMS license check to avoid exception when not available (#2697)
  • Documentation
    • Fix incorrect documentation for sending options to solvers (#2688)
    • Fix Sphinx warnings (#2712)
    • Document Python Version Support policy (#2735)
    • Document deprecation and removal of functionality (#2741)
    • Document docstring formatting requirements (#2742)
  • Testing
    • Skip failing Baron tests (#2694)
    • Remove residual nose references (#2736)
    • Update GHA setup-python version (#2705)
    • Improve GHA conda setup performance (#2701)
    • Add unit test for QCQO problems with MOSEK (#2682)
  • DAE
    • Fix typo in __init__.py (#2683)
    • Add active filter to flattener (#2643)
  • GDP
    • Add GDP-to-MIP transformation base class (#2687)
  • Contributed Packages
    • DoE: New module for model-based design of experiments (#2294, #2711, #2527)
    • FBBT: Add tolerances to tests (#2675)
    • GDPopt: Switch a LBB test to use Gurobi as MINLP solver (#2686)
    • incidence_analysis: Add plot method to IncidenceGraphInterface (#2716)
    • incidence_analysis: Refactor to cache a graph instead of a matrix (#2715)
    • incidence_analysis: Add documentation and update API (#2727, #2745)
    • incidence_analysis: Add logging solve_strongly_connected_components (#2723)
    • MindtPy: Refactor to improve extensibility and maintainability (#2654)
    • Parmest: Suppress mpi-sppy output in import (#2692)
    • PyNumero: Add tee argument to Pyomo-SciPy square solvers (#2668)
    • PyNumero: Support implicit function solvers in ExternalPyomoModel (#2652)
    • PyROS: Fix user_time and wallclock_time bug (#2670)
    • PyROS: More judicious enforcement of PyROS Solver time limit (#2660, #2706)
    • PyROS: Update documentation (#2698, #2707)
    • PyROS: Adjust routine for loading DR polishing model solutions (#2700)
    • Viewer: Update to support PySide6 and display units and domain (#2689)
pyomo - Pyomo 6.4.4

Published by mrmundt almost 2 years ago

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, 3.11
  • Removed support for Python 3.6
  • New packages:
    • APPSI (Auto-Persistent Pyomo Solver Interfaces)
    • CP (Constraint programming models and solver interfaces)
    • External grey box models
    • IIS (Standard interface to solver IIS capabilities)
    • MPC (Data structures/utils for rolling horizon dynamic optimization)
    • PyROS (Pyomo Robust Optimization Solver)
    • Structural model analysis
    • Rewrite of the TrustRegion Solver

Changes in this release

  • General
    • Convert txt to md files (CHANGELOG, LICENSE, RELEASE) (#2635)
    • Parallelize build of manylinux wheels (#2636)
    • Update source for Jenkins status badge (#2639, #2640)
    • Update relocated_module_attribute to work with cythonized modules (#2644)
    • Add utility methods to HierarchicalTimer (#2651)
  • Core
    • Fix preservation of stale flags through clone/pickle (#2633)
    • Add support for local suffixes in scaling transformation (#2619)
  • Solver Interfaces
    • Fix handling of nonconvex MIQCP problems in Xpress (#2625)
  • Testing
    • Update GitHub actions to cancel jobs when new changes are pushed (#2634)
    • Remove requirement for a pyutilib directory in Jenkins driver (#2637)
    • Enable GitHub actions build on Windows Python 3.11 (#2638)
    • Add build services infrastructure status badge (#2646)
    • Add version upper bound on MOSEK warmstart test skip (#2649)
    • Improve compare.py handling of nosetests/pytest output (#2661)
  • GDP
    • Add option to use multiple-bigm only on bound constraints (#2624)
    • Add logical_to_disjunctive and replace uses of logical_to_linear (#2627)
  • Contributed Packages
    • FBBT: Fix bug with ExternalFunction expressions (#2657)
    • PyROS: Fix uncertain param bounds evaluation for FactorModelSet (#2620)
    • PyROS: Add origin attribute to BudgetSet (#2645)
    • PyROS: Fix UncertaintySet.bounding_problem method (#2659)
pyomo - Pyomo 6.4.3

Published by jsiirola almost 2 years ago

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, 3.11
  • Removed support for Python 3.6
  • New packages:
    • APPSI (Auto-Persistent Pyomo Solver Interfaces)
    • CP (Constraint programming models and solver interfaces)
    • External grey box models
    • IIS (Standard interface to solver IIS capabilities)
    • MPC (Data structures/utils for rolling horizon dynamic optimization)
    • PyROS (Pyomo Robust Optimization Solver)
    • Structural model analysis
    • Rewrite of the TrustRegion Solver

Changes in this release

  • General
    • Update PauseGC to work in nested contexts (#2507)
    • Simplify deepcopy/pickle logic to speed up model clone (#2510)
    • Fix generate_standard_repn to handle unexpected NPV expressions (#2511)
    • Add thread safe proxies for PauseGC, TempFileManager singletons (#2514)
    • Fix ConstructionTimer bug for components indexed by nonfinite sets (#2518)
    • Add calculate_variable_from_constraint differentiation mode option (#2549)
    • Update URL for downloading GSL and GJH (#2556, #2588)
    • Update logic for retrying failed downloads (#2569)
    • Add support and testing for Python 3.11 (#2596, #2618)
    • Update deprecation utilities to improve user messages (#2606)
  • Core
    • Refactor expression hierarchy, add RelationalExpression base class (#2499)
    • Support cloning individual blocks (#2504)
    • Block performance improvements (#2508)
    • Add support for creating a slice to a single ComponentData object (#2509)
    • Fix missing import of value in pyomo.core.base.external (#2525)
    • Improve handling of restricted words on Blocks (#2535)
    • Improve Reference() performance (#2537)
    • Fix mapping gradient/hessian for external functions with string args (#2539)
    • Fix bug for sum_product(Var, Param, Param) (#2551)
    • Add deprecation path for expression objects moved to relational_expr (#2554)
    • Exception when setting value of Expression to non-numeric expression (#2567)
    • Improve deepcopy performance (#2628)
  • Documentation
    • Fix examples in working_models.rst (#2502)
  • Solver Interfaces
    • Improve SCIP results object (#2462)
    • Improve warning message when LP writer raises KeyError (#2497)
    • Fix Gurobi work limit bug (#2530)
    • Updates and fixes for the NLv2 writer (#2540, #2622, #2568)
    • Fix Xpress when stopped due to MAXTIME or MAXNODES (#2553)
    • Add support for MOSEK 10 affine conic constraints (#2557)
    • Fix missing explicit space in GAMS put command (#2578)
    • Fix GAMS logfile storage location (#2580)
    • LP writer performance improvements (#2583, #2585)
    • Update handling of MOSEK Env and Python module (#2591)
    • Release MOSEK license when optimize raises a mosek.Error (#2593)
    • Update list of allowable characters in CPLEX filenames (#2597)
  • Testing
    • Update performance driver to be usable outside of Pyomo (#2505)
    • Update the performance test driver (#2538)
    • Reduce amount of environment code cached in GitHub actions (#2565)
    • Update GitHub actions versions from v2 to v3 (#2566)
    • Allow nan to compare equal in assertStructuredAlmostEqual() (#2582)
    • Add test utilities for comparing expressions (#2590)
    • Skip a test in MOSEK 10 due to a bug in warm starting MIQPs (#2614)
    • Update skipped CBC test that works with CBC 2.10.6 (#2615)
    • Add SCIP to GitHub actions environment (#2602)
  • GDP
    • Use OrderedSet instead of list in GDPTree to improve performance (#2516)
    • Reduce calls to logical_to_linear in GDP transformations (#2519)
    • Add utility for gathering BigM values after transformation (#2520)
    • Add tighter logical constraints in transformations of nested GDPs (#2550)
    • Fix pickling of transformed GDP models (#2576)
    • Add multiple-bigM transformation (#2592)
    • Improve performance of BigM transformation (#2605)
    • Remove weakref mapping Disjunctions to their algebraic_constraint (#2617)
  • Contributed Packages
    • APPSI: Fix exception raised by appsi_gurobi during Python shutdown (#2498)
    • APPSI: Improve handling of Gurobi results (#2517)
    • APPSI: Add interface to HiGHS solver (#2561)
    • APPSI: Only release Gurobi license after deleting all instances (#2599)
    • APPSI: Patch IntEnum to preserve pre-3.11 formatting (#2607)
    • CP: New package for constraint programming (#2570, #2612)
    • GDPopt: Add warning when reporting results from LBB (#2534)
    • GDPopt: Delete dummy objective when we're done using it (#2552)
    • GDPopt: Add enumerate solution approach (#2559, #2575)
    • IIS: Add package for computing the IIS of an infeasible Pyomo model (#2512)
    • MindtPy: Fix bug in termination condition (#2587)
    • MindtPy: Fix bug in checking absolute and relative gap (#2608)
    • MPC: Data structures/utils for rolling horizon dynamic optimization (#2477)
    • Parmest: Solve square problem to initialize regression problem (#2438)
    • Parmest: Return ContinuousSet values from theta_est() (#2464)
    • PyNumero: Fix NumPy deprecation warnings (#2521)
    • PyNumero: Add interfaces to SciPy square solvers (#2523)
    • PyNumero: Check AmplInterface availability in SciPy solver tests (#2594)
    • PyNumero: Add ProjectedExtendedNLP class (#2601)
    • PyNumero: Add interface to SciPy scalar Newton solver (#2603)
    • PyROS: Rewrite UncertaintySet docstrings/improve validation (#2488)
    • PyROS: Updates to subproblem initialization and solver call routines (#2515)
    • PyROS: Fix collection of sub-solver solve times (#2543)
pyomo - Pyomo 6.4.2

Published by jsiirola about 2 years ago

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
    • Fix typos and incorrect link (#2420, #2482)
    • Fix Sphinx warnings in documentation builds (#2434)
  • Solver Interfaces
    • Add support for SCIP 8.0 (#2409)
    • Add explicit space to GAMS put statements to support GAMS 39+ (#2450)
    • Catch exceptions in BARON interface when parsing objective bounds (#2467)
  • 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)
pyomo - Pyomo 6.4.1

Published by jsiirola over 2 years ago

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
    • Extend linux distribution map logic (#2361)
    • Improve string processing in ConfigList, ConfigDict, and ListOf (#2360)
    • Update copyright assertion (#2368, #2378)
    • Deprecate name_buffer argument to getname (#2370)
    • Defer construction of the main Pyomo parser (#2385)
    • Improve error checking parsing ConfigDict string value (#2399)
  • Core
    • Add indices to ComponentData objects (#2351)
    • Ignore SetOf, BuildAction, and BuildCheck when checking units (#2366)
    • Improve support for absolute value in differentiation and FBBT (#2347)
    • Allow relative tolerance when comparing unit dimensionality (#2395)
  • Solver Interfaces
    • Fix bug in GLPK solver plugin (#2348)
    • Update BARON solution parser (#2367)
  • Testing
    • Turn on failure for codecov-action (#2343)
    • Fixes to GHA due to updates to Ubuntu runner and Conda (#2356, #2384, #2396)
    • Update setup-python and pypy in GHA (#2364)
    • Pin version of openmpi used for testing (#2369)
  • DAE Updates
    • Fix typo preventing a DAE test from running (#2349)
  • Contributed Packages
    • APPSI: Minor improvements and generalizations (#2383, #2386, #2389, #2391, #2388, #2392)
    • incidence_analysis: Add option to ignore inequality constraints in IncidenceGraphInterface (#2350)
    • MC++: Update interface tests (#2400)
    • MindtPy: Add quadratic_strategy option to pass quadratic constraints or objectives to MIP solvers (#2338)
    • Parmest: Skip tests when seaborn and matplotlib are missing (#2394)
    • PyROS: Improve feasibility problem formulation, objective validation (#2353, #2371)
pyomo - Pyomo 6.4.0

Published by jsiirola over 2 years ago

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
    • Distribute the ampl_function_demo C source / cmake files (#2319)
    • Add GitHub URL to setup.py for PyPI (#2325)
    • Use constant indentation for long lines in the HierarchicalTimer (#2336)
  • Core
    • Remove incomplete pyomo/core/base/alias.py module (#2284)
    • Remove Python 3.6 support (#2312)
  • Solver Interfaces
    • Remove PICO solver interface (#2341)
  • Testing
    • Add Windows pip single test (#2334)
    • Fix test docstrings in piecewise to silence warnings (#2342)
  • Contributed Packages
    • APPSI: Update Gurobi solver unavailable message (#2320)
    • APPSI: Remove distributables for Windows (#2326)
    • APPSI: Fix bugs when working with the Gurobi solution pool (#2335)
    • APPSI: Fix bug in persistent update for FBBT (#2340)
    • Preprocessing: Stop using polynomial_degree to check for linear and
      constant expressions (#2324)
    • PyNumero: Improve coverage of mpi block matrix tests (#2318)
    • PyNumero: Skip bound/domain validation in ExternalPyomoModel (#2323)
    • PyNumero: Remove deprecated useage of numpy.bool (#2339)
    • PyROS: Fix variable default initialization (#2331)
pyomo - Pyomo 6.3.0

Published by jsiirola over 2 years ago

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
  • 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

  • ADVANCE CHANGE NOTICE

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

    • Construct slices with normalized indices in slicing utility (#2223)
    • Remove hard-coded project name from default attempt_import() message (#2237)
    • Add --with-distributable-extensions option to setup.py (#2260)
    • Update Pyomo versioning to always include the micro version number (#2265)
    • Remove optional_packages from pyomo.environ (#2195)
    • Add Python 3.10 as an officially-supported interpreter (#2302)
    • TempfileManager updates (deletion order, add context) (#2297)
    • Add report_scaling utility to detect potential scaling issues (#2252)
  • Core

    • Check Var bounds when setting values (#2196)
    • Fix bug in implicit Var construction (#2210)
    • Add support for user-defined Component List starting index (#2215)
    • Switch Var.value setter to validate values (#2214)
    • Overload component initializers with named keyword params (#2212, #2230)
    • Resolve errors when creating Reference to a scalar Set (#2229)
    • Standardize scalar-valued external function interfaces (#2231)
    • Resolve bugs in cloning _ImplicitAny domains (#2233)
    • Redesign Var.stale handling to use a global state flag (#2249)
    • Update differentiate() to accept string mode identifiers (#2266)
    • Add as_quantity: evaluate a Pyomo expression to a pint Quantity (#2222)
    • NPV_SumExpression to inherit from NPV_Mixin (#2209)
    • Add support for abs in numeric differentiation (#2232)
    • Search filesystem for AMPLExternalFunction library (#2305)
  • Documentation

    • Updates to installation documentation (#2259)
    • Update GDP references (#2300)
    • Add example AMPL external function library (#2295)
  • Solver Interfaces

    • Disable log file in gurobi_direct when keepfiles=False (#2203)
    • Remove old GLPK interfaces (#2256)
    • Support gurobi lp interface through gurobipy module (#2262)
    • Update CBC version identification (#2250)
    • Increase CBC timeout when getting version/asl compatibility (#2293)
    • Deprecate the Alias component (#2288)
    • Remove XPRESS interface (#2273)
    • Support string arguments in NL external functions (#2295)
    • Fix reversed NL operator codes for floor/ceil (#2216)
  • Testing

    • Skip some fileutils tests on OSX Big Sur and Python<3.8 (#2224)
    • Fix Windows/Python 3.6 testing dependency (#2234)
    • Update test suite for BARON 22.1.19 (#2268)
    • Rework coverage uploads to use GitHub Actions (#2225)
    • Add option to test driver for turning off log capture (#2198)
    • Relaxing timing target for Windows GHA (#2303)
    • Resolve GDP test failure for missing solvers (#2306)
    • Testing infrastructure Refactor: nosetests to pytest (#2298)
    • Make time limit more robust for APPSI (#2296)
    • Resolve failing floating-point comparison failures in FBBT (#2244)
    • Check gurobipy availability in doctests (#2253)
  • GDP Updates

    • Ensure gdp.fix_disjuncts always creates a fully algebraic model (#2263)
    • Add partition_disjuncts and between_steps transformations (#2221)
  • Contributed Packages

    • APPSI: Fix bug with CBC options (#2243)
    • APPSI: Correctly identify changes to constraints (#2299)
    • APPSI: Improvements to persistent interface (#2246)
    • APPSI: Implement FBBT in C++ module (#2248)
    • APPSI: Resolve build errors on Windows (#2309)
    • GDPopt: Fix bugs in preprocessing (#2211)
    • GDPopt: Switch preprocessing to use FBBT (#2264)
    • incidence_analysis: General improvements (#2239, #2240)
    • MindtPy: Update online docs and logging (#2219, #2207)
    • MindtPy: Add Primal/Dual Integral (#2285)
    • MindtPy: Nonlinear sum reformulation of objective of MINLP (#2276)
    • Parmest: Covariance matrix (#2287), Add examples (#2274)
    • PyNumero: Add scaling factor support to ExternalPyomoModel (#2269)
    • PyNumero: Use projected NLPs for ExternalPyomoModel inner problems (#2283)
    • PyNumero: Add SQP example (#2291)
    • PyROS: Support ConstraintList and range constraints (#2206)
    • PyROS: Add optional bypassing of global separation subproblems (#2254)
    • TrustRegion: New implementation of Trust Region Framework (#2238, #2279)
Package Rankings
Top 1.19% on Pypi.org
Top 6.68% on Conda-forge.org
Badges
Extracted from project README
Github Actions Status Jenkins Status codecov Documentation Status URL Validation Build services GitHub contributors Merged PRs a COIN-OR project PyPI version PyPI downloads Anaconda version Anaconda downloads