From 5bd9bf0db7d73a2450e6a4fbbc0e50220fb7a30c Mon Sep 17 00:00:00 2001 From: Bethany Nicholson Date: Mon, 27 Nov 2023 16:07:05 -0700 Subject: [PATCH 01/11] Updating CHANGELOG in preparation for the 6.7.0 release --- CHANGELOG.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e0ba1f885cb..91cb9ab4cbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,63 @@ Pyomo CHANGELOG =============== +------------------------------------------------------------------------------- +Pyomo 6.7.0 (27 Nov 2023) +------------------------------------------------------------------------------- + +- General + - Log which suffix values were skipped at the DEBUG level (#3043) + - Update report_timing() to support context manager API (#3039) + - Update Performance Plot URL (#3033) + - Track change in Black rules (#3021) + - Remove Python 3.7 support (#2956) + - Fix 'because' typos (#3010) + - Add `Preformatted` class for logging preformatted messages (#2998) + - QuadraticRepnVisitor: Improve nonlinear expression expansion (#2997) + - Add `CITATION` file to main repository (#2992) + - LINTING: New Version of `crate-ci/typos` (#2987) + - Minor typo / formatting fixes (#2975) +- Core + - Fix exception due to interaction among Gurobi, Pint, Dask, and Threading (#3026) + - Fix differentiation of `Expressions` containing `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 + - NLv2: add linear presolve and general problem scaling support (#3037) + - Adjusting mps writer to the correct structure regarding integer variables 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 + - Resolve build infrastructure errors (with mpi4py, gams, networkx) (#3018) + - Improve GHA conda env package setup (#3013) + - Update Gurobi license checks in tests (#3011) + - Skip `fileutils` test failure that persists in OSX 12.7 (#3008) + - GHA: Improve conda environment setup time (#2967) +- 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 a variable and changing its bound (#2996) + - APPSI: Fix reference bug in HiGHS interface (#2995) + - FBBT: Adding new walker for compute_bounds_on_expr (#3027) + - incidence_analysis: Fix bugs related to subset ordering and zero coefficients (#3041) + - incidence_analysis: Update paper reference (#2969) + - 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 6.6.2 (23 Aug 2023) ------------------------------------------------------------------------------- From b8e06b5ad81088956000397f4e116f598d3bebf8 Mon Sep 17 00:00:00 2001 From: Bethany Nicholson Date: Tue, 28 Nov 2023 08:18:50 -0700 Subject: [PATCH 02/11] More edits to the CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 91cb9ab4cbe..b0b76af1469 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ Pyomo 6.7.0 (27 Nov 2023) - FBBT: Adding new walker for compute_bounds_on_expr (#3027) - incidence_analysis: Fix bugs related to subset ordering and zero 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) From 368482f4bd15c02d7061f742c295bb781caf22ac Mon Sep 17 00:00:00 2001 From: Bethany Nicholson Date: Tue, 28 Nov 2023 08:29:16 -0700 Subject: [PATCH 03/11] More edits to the CHANGELOG --- CHANGELOG.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0b76af1469..36c1e635b11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ Pyomo CHANGELOG ------------------------------------------------------------------------------- -Pyomo 6.7.0 (27 Nov 2023) +Pyomo 6.7.0 (28 Nov 2023) ------------------------------------------------------------------------------- - General + - Add Python 3.12 Support (#3050) - Log which suffix values were skipped at the DEBUG level (#3043) - Update report_timing() to support context manager API (#3039) - Update Performance Plot URL (#3033) @@ -19,15 +20,17 @@ Pyomo 6.7.0 (27 Nov 2023) - LINTING: New Version of `crate-ci/typos` (#2987) - Minor typo / formatting fixes (#2975) - Core - - Fix exception due to interaction among Gurobi, Pint, Dask, and Threading (#3026) - - Fix differentiation of `Expressions` containing `native_numeric_types` (#3017) + - 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) + - 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 + - Add "writer" for converting linear models to standard matrix form (#3046) - NLv2: add linear presolve and general problem scaling support (#3037) - - Adjusting mps writer to the correct structure regarding integer variables declaration (#2946) + - 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) @@ -48,10 +51,11 @@ Pyomo 6.7.0 (27 Nov 2023) - Contributed Packages - APPSI: Add interface to WNTR (#2902) - APPSI: Capture HiGHS output when initializing model (#3005) - - APPSI: Fix auto-update when unfixing a variable and changing its bound (#2996) + - APPSI: Fix auto-update when unfixing variable and changing bounds (#2996) - APPSI: Fix reference bug in HiGHS interface (#2995) - - FBBT: Adding new walker for compute_bounds_on_expr (#3027) - - incidence_analysis: Fix bugs related to subset ordering and zero coefficients (#3041) + - FBBT: Add new walker for compute_bounds_on_expr (#3027) + - incidence_analysis: Fix bugs with subset ordering and zero coefficients + (#3041) - incidence_analysis: Update paper reference (#2969) - latex_printer: Add contrib.latex_printer package (#2984) - MindtPy: Add support for GreyBox models (#2988) From 6522c7bbff10e722c1b66868e357ae11bbf5a62d Mon Sep 17 00:00:00 2001 From: Bethany Nicholson Date: Tue, 28 Nov 2023 08:39:00 -0700 Subject: [PATCH 04/11] Finalizing Pyomo 6.7.0 --- .coin-or/projDesc.xml | 4 ++-- RELEASE.md | 31 ++++++------------------------- pyomo/version/info.py | 4 ++-- 3 files changed, 10 insertions(+), 29 deletions(-) diff --git a/.coin-or/projDesc.xml b/.coin-or/projDesc.xml index bb0741ac389..1ee247e100f 100644 --- a/.coin-or/projDesc.xml +++ b/.coin-or/projDesc.xml @@ -227,8 +227,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e Use explicit overrides to disable use of automated version reporting. --> - 6.6.2 - 6.6.2 + 6.7.0 + 6.7.0 diff --git a/RELEASE.md b/RELEASE.md index da97ba78701..1fcf19a0da9 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,34 +1,15 @@ -We are pleased to announce the release of Pyomo 6.6.2. +We are pleased to announce the release of Pyomo 6.7.0. Pyomo is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. -The following are 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](https://peps.python.org/pep-0008/) throughout the - codebase - - Added support for Python 3.10, 3.11 - - Removed support for Python 3.6 - - Removed the `pyomo check` command +The following are highlights of the 6.7 minor release series: + + - Added support for Python 3.12 + - Removed support for Python 3.7 - 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 + - latex_printer (print Pyomo models to a LaTeX compatible format) A full list of updates and changes is available in the [`CHANGELOG.md`](https://github.com/Pyomo/pyomo/blob/main/CHANGELOG.md). diff --git a/pyomo/version/info.py b/pyomo/version/info.py index d274d0dead1..4c149a4caca 100644 --- a/pyomo/version/info.py +++ b/pyomo/version/info.py @@ -27,8 +27,8 @@ major = 6 minor = 7 micro = 0 -releaselevel = 'invalid' -# releaselevel = 'final' +#releaselevel = 'invalid' + releaselevel = 'final' serial = 0 if releaselevel == 'final': From d12d1397995d60b9bbb4f00722d83acfa5e28926 Mon Sep 17 00:00:00 2001 From: Miranda Mundt <55767766+mrmundt@users.noreply.github.com> Date: Tue, 28 Nov 2023 08:41:52 -0700 Subject: [PATCH 05/11] Fix spacing --- pyomo/version/info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyomo/version/info.py b/pyomo/version/info.py index 4c149a4caca..be466b2f9ec 100644 --- a/pyomo/version/info.py +++ b/pyomo/version/info.py @@ -28,7 +28,7 @@ minor = 7 micro = 0 #releaselevel = 'invalid' - releaselevel = 'final' +releaselevel = 'final' serial = 0 if releaselevel == 'final': From fdae8cd5d9e47a2c83d9d1b72ee3a9e5a8127350 Mon Sep 17 00:00:00 2001 From: Miranda Mundt Date: Tue, 28 Nov 2023 08:46:26 -0700 Subject: [PATCH 06/11] Black strikes again --- pyomo/version/info.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyomo/version/info.py b/pyomo/version/info.py index be466b2f9ec..e38e844ad9b 100644 --- a/pyomo/version/info.py +++ b/pyomo/version/info.py @@ -27,7 +27,7 @@ major = 6 minor = 7 micro = 0 -#releaselevel = 'invalid' +# releaselevel = 'invalid' releaselevel = 'final' serial = 0 From 0f604f6c3595628f912358ea7ca61870f7dd1d49 Mon Sep 17 00:00:00 2001 From: Miranda Mundt Date: Tue, 28 Nov 2023 09:01:48 -0700 Subject: [PATCH 07/11] Change deprecation version to 6.7.0 --- pyomo/common/backports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyomo/common/backports.py b/pyomo/common/backports.py index 0854715baeb..3349dfcce0a 100644 --- a/pyomo/common/backports.py +++ b/pyomo/common/backports.py @@ -12,5 +12,5 @@ from pyomo.common.deprecation import relocated_module_attribute relocated_module_attribute( - 'nullcontext', 'contextlib.nullcontext', version='6.7.0.dev0' + 'nullcontext', 'contextlib.nullcontext', version='6.7.0' ) From 83a4a4ef47a8bfed89507a3623a3b67a7a22efa5 Mon Sep 17 00:00:00 2001 From: Miranda Mundt Date: Tue, 28 Nov 2023 09:09:15 -0700 Subject: [PATCH 08/11] Update CHANGELOG; fix black snarking --- CHANGELOG.md | 15 ++++++--------- pyomo/common/backports.py | 4 +--- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36c1e635b11..d7a0fd59dae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,18 +7,13 @@ Pyomo 6.7.0 (28 Nov 2023) ------------------------------------------------------------------------------- - General - - Add Python 3.12 Support (#3050) + - Remove Python 3.7, add Python 3.12 Support (#3050, #2956) - Log which suffix values were skipped at the DEBUG level (#3043) - Update report_timing() to support context manager API (#3039) - - Update Performance Plot URL (#3033) - - Track change in Black rules (#3021) - - Remove Python 3.7 support (#2956) - - Fix 'because' typos (#3010) - Add `Preformatted` class for logging preformatted messages (#2998) - QuadraticRepnVisitor: Improve nonlinear expression expansion (#2997) - Add `CITATION` file to main repository (#2992) - - LINTING: New Version of `crate-ci/typos` (#2987) - - Minor typo / formatting fixes (#2975) + - 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) @@ -37,11 +32,13 @@ Pyomo 6.7.0 (28 Nov 2023) - LP writer: warn user for ignored suffixes (#2982) - Update handling of `0*` in linear, quadratic walkers (#2981) - Testing + - 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) + - 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) - - GHA: Improve conda environment setup time (#2967) + - 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) diff --git a/pyomo/common/backports.py b/pyomo/common/backports.py index 3349dfcce0a..36f2dac87ab 100644 --- a/pyomo/common/backports.py +++ b/pyomo/common/backports.py @@ -11,6 +11,4 @@ from pyomo.common.deprecation import relocated_module_attribute -relocated_module_attribute( - 'nullcontext', 'contextlib.nullcontext', version='6.7.0' -) +relocated_module_attribute('nullcontext', 'contextlib.nullcontext', version='6.7.0') From 8de219001fd2800ed567102de9d810d42d78f933 Mon Sep 17 00:00:00 2001 From: Miranda Mundt Date: Tue, 28 Nov 2023 11:19:42 -0700 Subject: [PATCH 09/11] Update CHANGELOG to reflect 3053 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7a0fd59dae..1936b356905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ Pyomo 6.7.0 (28 Nov 2023) - 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) From 11cb6d9a32bc113a71bece46fb81d2f16631201d Mon Sep 17 00:00:00 2001 From: Bethany Nicholson Date: Wed, 29 Nov 2023 18:32:26 -0700 Subject: [PATCH 10/11] Final edits to the CHANGELOG for the 6.7.0 release --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1936b356905..1a97af0075b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ Pyomo CHANGELOG ------------------------------------------------------------------------------- -Pyomo 6.7.0 (28 Nov 2023) +Pyomo 6.7.0 (29 Nov 2023) ------------------------------------------------------------------------------- - General @@ -23,6 +23,8 @@ Pyomo 6.7.0 (28 Nov 2023) - 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 writer determinism (#3054) - Add "writer" for converting linear models to standard matrix form (#3046) - NLv2: add linear presolve and general problem scaling support (#3037) - Adjust mps writer format for integer variable declaration (#2946) From a398b45a08224ebcc3db0ffcc032ffe3b4e8cd10 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Wed, 29 Nov 2023 18:48:18 -0700 Subject: [PATCH 11/11] NFC: update RELEASE.md, CHANGELOG.md --- CHANGELOG.md | 7 +++---- RELEASE.md | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a97af0075b..553a4f1c3bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,6 @@ Pyomo 6.7.0 (29 Nov 2023) - General - Remove Python 3.7, add Python 3.12 Support (#3050, #2956) - - Log which suffix values were skipped at the DEBUG level (#3043) - Update report_timing() to support context manager API (#3039) - Add `Preformatted` class for logging preformatted messages (#2998) - QuadraticRepnVisitor: Improve nonlinear expression expansion (#2997) @@ -24,8 +23,9 @@ Pyomo 6.7.0 (29 Nov 2023) - Prevent multiple applications of the scaling transform (#2979) - Solver Interfaces - Remove presolve-eliminated variables from named expressions (#3056) - - Improve writer determinism (#3054) + - 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) @@ -54,8 +54,7 @@ Pyomo 6.7.0 (29 Nov 2023) - 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 zero coefficients - (#3041) + - 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) diff --git a/RELEASE.md b/RELEASE.md index 1fcf19a0da9..03baa803ac9 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,12 +4,14 @@ Pyomo is a collection of Python software packages that supports a diverse set of optimization capabilities for formulating and analyzing optimization models. -The following are highlights of the 6.7 minor release series: +The following are 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 A full list of updates and changes is available in the [`CHANGELOG.md`](https://github.com/Pyomo/pyomo/blob/main/CHANGELOG.md).