Skip to content

Commit

Permalink
Merge pull request #3356 from blnicho/finalize-release-6.8.0
Browse files Browse the repository at this point in the history
Finalize release 6.8.0
  • Loading branch information
mrmundt authored Aug 20, 2024
2 parents 9b7c132 + feef6d9 commit 5609a8a
Show file tree
Hide file tree
Showing 8 changed files with 89 additions and 32 deletions.
4 changes: 2 additions & 2 deletions .coin-or/projDesc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
-->
<stableVersionNumber>6.7.3</stableVersionNumber>
<releaseNumber>6.7.3</releaseNumber>
<stableVersionNumber>6.8.0</stableVersionNumber>
<releaseNumber>6.8.0</releaseNumber>

</developmentStatus>

Expand Down
63 changes: 63 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,69 @@ Pyomo CHANGELOG
===============


-------------------------------------------------------------------------------
Pyomo 6.8.0 (20 Aug 2024)
-------------------------------------------------------------------------------

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 6.7.3 (29 May 2024)
-------------------------------------------------------------------------------
Expand Down
27 changes: 11 additions & 16 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
We are pleased to announce the release of Pyomo 6.7.3.
We are pleased to announce the release of Pyomo 6.8.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.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
The following are 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

A full list of updates and changes is available in the
[`CHANGELOG.md`](https://github.com/Pyomo/pyomo/blob/main/CHANGELOG.md).
Expand Down
7 changes: 3 additions & 4 deletions pyomo/contrib/doe/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,24 +24,23 @@


@deprecated(
"Use of MeasurementVariables in Pyomo.DoE is no longer supported.",
version='6.7.4.dev0',
"Use of MeasurementVariables in Pyomo.DoE is no longer supported.", version='6.8.0'
)
class MeasurementVariables:
def __init__(self, *args):
raise RuntimeError(deprecation_message)


@deprecated(
"Use of DesignVariables in Pyomo.DoE is no longer supported.", version='6.7.4.dev0'
"Use of DesignVariables in Pyomo.DoE is no longer supported.", version='6.8.0'
)
class DesignVariables:
def __init__(self, *args):
raise RuntimeError(deprecation_message)


@deprecated(
"Use of ModelOptionLib in Pyomo.DoE is no longer supported.", version='6.7.4.dev0'
"Use of ModelOptionLib in Pyomo.DoE is no longer supported.", version='6.8.0'
)
class ModelOptionLib:
def __init__(self, *args):
Expand Down
6 changes: 3 additions & 3 deletions pyomo/contrib/pynumero/interfaces/cyipopt_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ def __init__(self, nlp, intermediate_callback=None, halt_on_evaluation_error=Non
# cyipopt.Problem.__init__
super(CyIpoptNLP, self).__init__()

# Pre-Pyomo 6.7.4.dev0, we had no way to pass the cyipopt.Problem object
# Pre-Pyomo 6.8.0, we had no way to pass the cyipopt.Problem object
# to the user in an intermediate callback. This prevented them from calling
# the useful get_current_iterate and get_current_violations methods. Now,
# we support this by adding the Problem object to the args we pass to a user's
Expand Down Expand Up @@ -496,7 +496,7 @@ def intermediate(
"""
if self._intermediate_callback is not None:
if self._use_13arg_callback:
# This is the callback signature expected as of Pyomo 6.7.4.dev0
# This is the callback signature expected as of Pyomo 6.8.0
return self._intermediate_callback(
self._nlp,
self,
Expand All @@ -513,7 +513,7 @@ def intermediate(
ls_trials,
)
else:
# This is the callback signature expected pre-Pyomo 6.7.4.dev0 and
# This is the callback signature expected pre-Pyomo 6.8.0 and
# is supported for backwards compatibility.
return self._intermediate_callback(
self._nlp,
Expand Down
4 changes: 2 additions & 2 deletions pyomo/core/base/set.py
Original file line number Diff line number Diff line change
Expand Up @@ -1489,7 +1489,7 @@ def _cb_validate_filter(self, mode, val_iter):
"callback signature matched (block, *value). "
"Please update the callback to match the signature "
f"(block, value{', *index' if comp.is_indexed() else ''}).",
version='6.7.4.dev0',
version='6.8.0',
)
orig_fcn = fcn._fcn
fcn = ParameterizedScalarCallInitializer(
Expand All @@ -1512,7 +1512,7 @@ def _cb_validate_filter(self, mode, val_iter):
"callback signature matched (block, *value, *index). "
"Please update the callback to match the signature "
"(block, value, *index).",
version='6.7.4.dev0',
version='6.8.0',
)
if fcn.__class__ is not ParameterizedInitializer:
orig_fcn = fcn._fcn
Expand Down
2 changes: 1 addition & 1 deletion pyomo/repn/plugins/nl_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@

logger = logging.getLogger(__name__)

relocated_module_attribute('AMPLRepn', 'pyomo.repn.ampl.AMPLRepn', version='6.7.4.dev0')
relocated_module_attribute('AMPLRepn', 'pyomo.repn.ampl.AMPLRepn', version='6.8.0')

inf = float('inf')
minus_inf = -inf
Expand Down
8 changes: 4 additions & 4 deletions pyomo/version/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@
# should generally be left at 0, unless a downstream package is tracking
# main and needs a hard reference to "suitably new" development.
major = 6
minor = 7
micro = 4
releaselevel = 'invalid'
# releaselevel = 'final'
minor = 8
micro = 0
# releaselevel = 'invalid'
releaselevel = 'final'
serial = 0

if releaselevel == 'final':
Expand Down

0 comments on commit 5609a8a

Please sign in to comment.