Recent Releases of pyomo

pyomo - Pyomo 6.9.4

Highlights of the 6.9 release series

  • Removed support for Python 3.8
  • New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
  • New External Function for Cubic Spline Interpolation
  • New ASL External Functions Library
  • New solver interfaces:
    • Support for upcoming knitro Python package
    • v2: Ongoing solver interface refactor
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Cleanup collections module (#3708)
    • Work around environments where IntEnum.__doc__ is None (#3711)
    • Standardize 'multiprocessing' deferred import (#3702)
    • Resolve capture_output(capture_fd=True) deadlock on Windows (#3679)
  • Core
    • Bugfix: standard form with fixed variables (#3704)
  • DAE
    • Fix simulator bug (#3692)
  • Solver Interfaces
    • Add reporting of SCIP node count to solver results (#3691)
    • Create API version attribute for different solver generations (#3699)
    • Ipopt_v2: update options processing (#3693)
    • Expanded LegacySolverWrapper fixes (#3700)
  • Testing
    • Update GAMS download to new "latest" link (#3706)
    • New TPL cache version on GHA workflows (#3705)
  • Contributed Packages
    • benders: Added support for HiGHS solver (#3686)
    • DoE: Add grey box objectives (#3606)
    • Parmest: Correct two very old test skips (#3697)
    • Parmest: Extend capability for weighted SSE objective (#3535)
    • PyROS: Modify two solver tests (#3694)
    • sensitivity_toolbox: Sensitivity calculation for named expressions (#3685)

- Python
Published by mrmundt 9 months ago

pyomo - Pyomo 6.9.3

Highlights of the 6.9 release series

  • Removed support for Python 3.8
  • New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
  • New External Function for Cubic Spline Interpolation
  • New ASL External Functions Library
  • New solver interfaces:
    • Support for upcoming knitro Python package
    • v2: Ongoing solver interface refactor
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Typo corrections (#3675, #3652, #3615)
    • Rework ConfigDict numpydoc generation support (#3667)
    • Improve TeeStream robustness (#3583, #3588, #3601, #3633, #3640)
    • Modernize infrastructure to use pyproject.toml (#3603, #3676)
    • Numpy2 compatibility fixes (#3607, #3636)
    • Allow custom messages in derived classes from PyomoException (#3596)
    • Resolve Python 3.14 compatibility issues (#3643)
    • Resolve an assortment of infrastructure errors (pkg_resources/GAMS) (#3644)
    • Introduce retries into download-extensions (#3656)
    • Add project-level default configuration for black (#3660)
  • Core
    • Simplify declaration of custom blocks, support rule keyword args (#3570)
    • Bugfix: Evaluate name in message (#3580)
    • Map Constraint.Feasible/Infeasible to concrete constraints (#3546)
    • Rewrite core.relax_integer_vars transformation (#3586, #3645)
    • Disallow calling del_component with ComponentData arguments (#3440)
    • Initialize IndexSet from scalar functions returning dict (#3664)
    • Refactor linear/quadratic expression compilers (#3651)
    • Bugfixes for core.lp_dual transformation (#3672)
  • Documentation
    • Remove outdated references to contrib.simplemodel (#3666)
    • Document and test dual sign convention (#3528)
    • Remove references to projects.coin-or.org (#3612)
    • Add solver information table to "Getting Started" (#3619)
    • Rework logic in building_documentation() (#3680)
  • GDP
    • Enable parallel big-M calculation for gdp.mbigm transformation (#3641)
  • Solver Interfaces
    • NL writer: resolve model scaling bug writing Expression objects (#3673)
    • Add qp support for HiGHS (#3531)
    • Update supported NEOS solvers (#3576, #3582, #3653)
    • Resolve GAMS/Windows logfile name issue (#3595)
    • Ensure full test list of solvers (#3598)
    • Suppress warmstart message from Xpress (#3599)
    • Resolve issues copying and pickling SolverResults (#3597)
    • Detailed IPOPT log parser in ipopt_v2 (#3577)
    • Fix how QUADOBJ section written to MPS files (#3609)
    • Correctly handle HighsModelStatus.kSolutionLimit (#3634)
    • More robust GAMS results parsing (#3642)
    • Mark expected failures for BARON 25.7.16 (#3662, #3665)
    • Bugfix for comparing results objects to other types (#3677)
    • Bugfix for SOS constraints and row_order option in lp writer (#3678)
  • Testing
    • Exclude gnu.org from the URL checker tests (#3674)
    • Remove leftover files after testing (#3670)
    • Relax test tolerances due to changes in Xpress 45.1.1 (#3584)
    • Remove __version__ requirement for performance test driver (#3617)
    • Temporarily pinning scikit-learn version (#3625)
  • Contributed Packages
    • APPSI: Remove debugging messages in appsi_highs (#3613)
    • aslfunctions: Add external function library (#3648)
    • cspline_external: Add utils to constrain parameter calculations (#3593)
    • DoE: Various bugfixes (#3574)
    • DoE: More verbose output for sensitivity analysis (#3525)
    • DoE: Add update_model utility updating suffix values (#3650)
    • mpc: Add time interpolation to data (#3559)
    • parmest: Fix inconsistent results when using seed in examples (#3621)
    • parmest: Bug fixes in main driver and example files (#3635)
    • PyNumero: Improve BlockVector numpy2 compatibility (#3585)
    • PyROS: Make exporting subproblems more customizable (#3649)
    • PyROS: Update separation priority ordering interface (#3581)
    • PyROS: Update uncertainty set validation methods (#3558)
    • PyROS: Adjust handling of separation objective evaluation errors (#3646)
    • sensitivity_toolbox: Pynumero: include independent variables (#3655)
    • sensitivity_toolbox: Add PyNumero-based functions (#3561)
    • simplification: Newer version of GiNaC - URL failure resolution (#3604)
    • viewer: Update for PyQt6, improve load time (#3647)

- Python
Published by mrmundt 10 months ago

pyomo - Pyomo 6.9.2

Highlights of the 6.9 release series

  • Removed support for Python 3.8
  • New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
  • New External Function for Cubic Spline Interpolation
  • New solver interfaces:
    • Support for upcoming knitro Python package
    • v2: Ongoing solver interface refactor
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Update Copyright to 2025 (#3515)
    • capture_output: do not output to captured file descriptors (#3537, #3560)
    • calc_variable_from_constraint: guard against expression overflow (#3541)
    • Standardize the usage of pyomo.environ imports (#3545)
    • Update ASL CMake builders (#3548)
    • Support passing LoggerAdapter objects to LogStream (#3547)
  • Core
    • Support multi-column DataFrames in Initializer (#3552)
    • Multiple dispatch for relational expression generation (#3483)
    • Type check exception args in component __call__ implementations (#3538)
  • Documentation
    • Move RTD ads to the sidebar (#3536)
    • Standardize Example Imports (#3543)
    • LD-SDA Documentation (#3539)
    • Fix broken URLs in documentation (#3529, #3544)
    • Update future solver interface documentation (#3526)
    • Document BlockData.clone (#3542)
  • Solver Interfaces
    • Fix bug in XpressPersistent.update_var (#3566)
    • Avoid duplicate AMPLFUNC entries in ipopt_v2 (#3554)
    • Update deprecation warnings in contrib.solver (#3553, #3555)
    • Support for upcoming knitro python package (#3478)
    • Future solver interface reorganization and updates (#3476)
    • Update HiGHS interface to allow keyboard interrupts (#3509, #3511)
    • Fix/extend MOSEK option handling (#3488)
  • Testing
    • Defer pathlib import, remove test output file (#3563)
    • Add IDAES Solvers to Mac; Update to Ubuntu 22.04 (#3556)
    • Clean up numeric_expr dispatcher test driver (#3551)
    • Testing and coverage fixes (#3549)
    • Resolve intermittent test failure (increase sleep time) (#3517)
    • Be more careful when/how we timeout conda install (#3514)
  • Contributed Packages
    • cspline_external: Add a function for cubic spline interpolation (#3216)
    • DoE: Correct initialization when using lower diagonal of FIM (#3532)
    • FBBT: Resolve bug registering native type handlers (#3567)
    • parmest/DoE: Ordering and param bug fixes (#3512)
    • PyNumero: Add support for greybox models (#3364)
    • PyROS: Modify Decision Rule Order Efficiency (#3562)
    • PyROS: Revise second-stage equality reformulation under discrete (scenario-based) uncertainty (#3533)
    • PyROS: Add Uncertain Parameter Reduction (#3503)

- Python
Published by mrmundt about 1 year ago

pyomo - Pyomo 6.9.1

Highlights of the 6.9 release series

  • Removed support for Python 3.8
  • New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
  • New solver interfaces:
    • v2: Ongoing solver interface refactor
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Remove URL and replace with full citation (#3490)
    • Rename project "pyomo" in setup.py PEP 625
    • Resolve errors in TeeStream and capture_output (#3497)
  • Documentation
    • Update autosummary for Sphinx 8.2.1 (#3492)
    • Resolve errors building documentation PDF (#3495)
  • Testing
    • conda: disable '--update-deps' to work around buggy libffi(?) (#3499)
    • Update for March 2024 typos release (#3500)
    • Add timeout when installing optional packages (solvers) in conda (#3501)
    • Updates to CodeCov configuration (#3491)
  • Contributed Packages
    • APPSI: Add warmstart for appsi_highs (issue #3450) (#3494)

- Python
Published by blnicho about 1 year ago

pyomo - Pyomo 6.9.0

Highlights of the 6.9 release series

  • Removed support for Python 3.8
  • New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
  • New solver interfaces:
    • v2: Ongoing solver interface refactor
  • ...and of course numerous minor bug fixes and performance enhancements

Changes in this release

  • General
    • Big Wheel of Misfortune - A Practice in Reviewing Old Issues (#3460, #3473)
    • Resolve buffering issues in TeeStream and capture_output (#3449)
    • Update GHA badges on README.md (#3457)
    • Fix incompatibility with imp and DeferredImportCallbackFinder (#3444)
    • Remove Python 3.8 Support (#3438)
  • Core
    • Resolve error parenthesizing pow mantissa (#3472)
    • Resolve OSX error accessing closed filehandle (#3467)
    • Allow construction of CUID from another CUID (#3464)
    • Clean up identify_variables / identify_mutable_parameters; deprecate SimpleExpressionVisitor (#3436)
  • Solver Interfaces
    • Solver refactor: BUGFIX, f-string in contrib/solver (#3481)
    • Update Gurobi NL interface for Gurobi 12.x (#3470)
    • Defer starting the SAS session until needed (#3448)
    • Solver refactor: Validator for tee in contrib.solver.config (#3482)
  • Testing
    • Pin Sphinx to not 8.2.0 (#3479)
    • Typos corrections (#3437, #3474)
    • Address intermittent TeeStream test failure (#3465)
    • 2025 Testing update: Black 25.1.0, testing Qt without X11 (#3463)
    • Testing: exclude Xpress 9.5.1 on Windows/GHA/Python3.{0,1} (#3455)
    • CY25 CI Infrastructure and typo fixes (#3453)
    • Verify we are testing all NEOS solvers (#3433)
  • Contributed Packages
    • GDPOpt: Add Logic-Based Discrete-Steepest Descent Algorithm (#3331)
    • PyROS: Fix/Tweak Documentation and Solver Output Logging (#3475)
    • PyROS: Fix Treatment of Fixed Model Variables and Initialization of Auxiliary Uncertain Parameters (#3461)
    • PyROS: Improve handling of separation problem sub-solver errors (#3441)
    • PyROS: Extend valid types for solver argument uncertain_params (#3439)
    • PyROS: Add Gaussian confidence level attribute to EllipsoidalSet (#3434)

- Python
Published by mrmundt over 1 year ago

pyomo - Pyomo 6.8.2

Highlights of the 6.8 release series

  • Complete Documentation Reorganization
  • Added support for Python 3.13
  • Refactor default Gurobi interface to support version 12
  • 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

  • Core
    • Resolve errors in mapping ScalarVar to numpy ndarray (#3423)
  • Documentation
    • Update Documentation URLs (#3425)
  • Solver Interfaces
    • Resolve error in xpress_direct interface retrieving reduced costs (#3422)
  • Testing
    • Remove (unused) legacy test drivers (#3427)

- Python
Published by blnicho over 1 year ago

pyomo - Pyomo 6.8.1

"Annie"

Highlights of the 6.8 release series

  • Complete Documentation Reorganization
  • Added support for Python 3.13
  • Refactor default Gurobi interface to support version 12
  • 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

  • This will be the last release to support Python 3.8
  • This is the first release to be tested against Python 3.13
  • Complete reorganization of our online documentation (#3382, #3378)

CHANGELOG

  • General
    • Add a 'Do not delete' Disclaimer to Issues/PR Templates (#3361)
    • Add URL Status Badge to README (#3373)
    • Resolve change in InvalidNumber handling in writers (#3390)
    • Update common.timing to make tests more deterministic (#3397)
    • Defer processing ConfigValue/ConfigList default until first use (#3394)
    • Improved support for moved/renamed/deprecated modules (#3385)
    • Fix ConfigValue initialization in multithreaded environments (#3405)
    • ConfigDict: prevent recursion on partially-constructed objects (#3409)
    • Fix bug in AutoSlots deepcopy (#3412, #3413)
    • Update mpi4py_available to work around conda-forge/openmpi (#3416)
  • Core
    • Resolve bugs in create_node_with_local_data (#3376)
    • Resolve issue in filter/validate deprecation path (#3368)
    • Support Param.pprint() for non-finite Params (#3387)
    • Add (parameterized) linear programming dual transformation (#3402)
  • Documentation
    • Autogenerate API documentation (#3378)
    • Add Alternative Solutions documentation (#3370)
    • Reorganize online documentation (#3382)
    • Fix broken doc URLs (#3398)
    • Improved autoenum documentation (#3389)
    • Reduce the number of formats built on readthedocs to avoid timeout (#3404)
  • Solver Interfaces
    • Remove deprecated gurobipy addConstr call (#3350)
    • Update Xpress interfaces to support 9.5 (#3392)
    • Add support for templatized models in gurobi_direct_v2 (#3362)
    • Update test for GAMS mapping 'infeasible or unbounded' to infeasible (#3396)
    • XpressDirect.available(): check there is a valid license (#3400)
    • Move away from dependence on gurobi.sh (#3384)
    • Fix error when xpress is imported before xpress_direct (#3410)
  • Testing
    • Move URL Checker to Weekly Job (#3360)
    • Correct newly discovered typos (#3365, #3399)
    • Remove Octeract from NEOS solvers list (and other testing fixes) (#3374)
    • Guard tests against broken Gurobi licenses (#3383)
    • Remove pin to Gurobi 10.0.3 (#3393)
    • Add Python 3.13 to Testing Infrastructure (#3401, #3419)
    • Resolve timeout() failures on Windows/py3.13 (#3415)
  • GDP
    • Fix performance degradation in hull transformation (#3366)
  • Contributed Packages
    • DoE: Fix bug from using hardcoded value (#3358)
    • iis: Catch catastrophic solver failure when building MIS (#3403)
    • PyNumero: Reverse BlockVector/MPIBlockVector base class order (#3380)
    • PyNumero: Resolve incompatibilities with NumPy2 (#3408)
    • PyROS: Overhaul preprocessor subroutine and subproblem objects (#3341)

- Python
Published by mrmundt over 1 year ago

pyomo - Pyomo 6.8.0

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.loadslacks (#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)
    • incidenceanalysis: Raise error in `generatestronglyconnectedcomponents` 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)

- Python
Published by mrmundt almost 2 years ago

pyomo - Pyomo 6.7.3

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)

- Python
Published by blnicho almost 2 years ago

pyomo - Pyomo 6.7.2

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 skiptrivial_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)
    • incidenceanalysis: Improve `solvestronglyconnectedcomponents` performance for models with named expressions (#3186)
    • incidence_analysis: Add function to plot incidence graph in Dulmage-Mendelsohn order (#3207)
    • incidenceanalysis: Require variables and constraints to be specified separately in `IncidenceGraphInterface.removenodes` (#3212)
    • latex_printer: bugfix for set operations / multidimensional sets (#3177)
    • MindtPy: Add HiGHS support (#2971)
    • MindtPy: Add callbeforesubproblem_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)

- Python
Published by jsiirola about 2 years ago

pyomo - Pyomo 6.7.1

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 simpleconstraintrule decorator (#3152)
    • Fix edge case assigning new numeric types to Var/Param with units (#3151)
    • Add privatedata 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)
    • incidenceanalysis: Add `amplrepn` 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)

- Python
Published by mrmundt over 2 years ago

pyomo - Pyomo 6.7.0

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 computeboundson_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 computeboundson_expr (#3027)
    • incidence_analysis: Fix bugs with subset ordering and 0 coefficients (#3041)
    • incidence_analysis: Update paper reference (#2969)
    • latexprinter: Add contrib.latexprinter 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)

- Python
Published by jsiirola over 2 years ago

pyomo - Pyomo 6.6.2

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)
    • incidenceanalysis: Filter variables with non-constant, fixed expressions that resolve to zero in `getincident_variables` (#2882)
    • incidenceanalysis: Correct behavior of `linearonlyargument in getincidentvariables` (#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)

- Python
Published by mrmundt almost 3 years ago

pyomo - Pyomo 6.6.1

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)

- Python
Published by jsiirola almost 3 years ago

pyomo - Pyomo 6.6.0

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)

- Python
Published by blnicho about 3 years ago

pyomo - Pyomo 6.5.0

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)
    • incidenceanalysis: Add logging solvestronglyconnectedcomponents (#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 usertime and wallclocktime 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)

- Python
Published by jsiirola over 3 years ago

pyomo - Pyomo 6.4.4

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 logicaltodisjunctive and replace uses of logicaltolinear (#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)

- Python
Published by mrmundt over 3 years ago

pyomo - Pyomo 6.4.3

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 generatestandardrepn 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 calculatevariablefrom_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 logicaltolinear 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)

- Python
Published by jsiirola over 3 years ago

pyomo - Pyomo 6.4.2

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 asnumeric() to raise an exception on non-isnumeric_type() Pyomo objects (#2444)
    • replace_expressions: support replacing variables with constants (#2410)
    • Update componentdataobjects and componentdataiterindex 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 appsicplex and appsigurobi (#2373)
    • Parmest: Add utils submodule and support to convert Params to Vars (#2352)
    • Parmest: Fix use of relocatedmoduleattribute (#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)

- Python
Published by jsiirola almost 4 years ago

pyomo - Pyomo 6.4.1

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)

- Python
Published by jsiirola about 4 years ago

pyomo - Pyomo 6.4.0

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 amplfunctiondemo 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)

- Python
Published by jsiirola about 4 years ago

pyomo - Pyomo 6.3.0

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)
    • NPVSumExpression to inherit from NPVMixin (#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)

- Python
Published by jsiirola over 4 years ago