Skip to content

Commit 49db371

Browse files
committed
Final release edits (changelog, deprecations, version numbers)
1 parent 44b5c18 commit 49db371

12 files changed

+46
-43
lines changed

.coin-or/projDesc.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e
227227
Use explicit overrides to disable use of automated
228228
version reporting.
229229
-->
230-
<stableVersionNumber>6.4.2</stableVersionNumber>
231-
<releaseNumber>6.4.2</releaseNumber>
230+
<stableVersionNumber>6.4.3</stableVersionNumber>
231+
<releaseNumber>6.4.3</releaseNumber>
232232

233233
</developmentStatus>
234234

CHANGELOG.txt

+18-22
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,16 @@ Pyomo 6.4.3 28 Nov 2022
77
-------------------------------------------------------------------------------
88

99
- General
10-
- Update performance driver to be usable outside of Pyomo (#2505)
1110
- Update PauseGC to work in nested contexts (#2507)
1211
- Simplify deepcopy/pickle logic to speed up model clone (#2510)
13-
- Fix generate_standard_repo to handle unexpected NPV expressions (#2511)
14-
- Add thread safe proxies for singleton instances (PauseGC, TempFileManager) (#2514)
15-
- Fix bug in ConstructionTimer for components indexed by nonfinite sets (#2518)
16-
- Add differentiation mode option to calculate_variable_from_constraint (#2549)
12+
- Fix generate_standard_repn to handle unexpected NPV expressions (#2511)
13+
- Add thread safe proxies for PauseGC, TempFileManager singletons (#2514)
14+
- Fix ConstructionTimer bug for components indexed by nonfinite sets (#2518)
15+
- Add calculate_variable_from_constraint differentiation mode option (#2549)
1716
- Update URL for downloading GSL and GJH (#2556, #2588)
1817
- Update logic for retrying failed downloads (#2569)
19-
- Allow nan to compare equal in assertStructuredAlmostEqual() (#2582)
20-
- Add support and testing for Python 3.11 (#2596)
18+
- Add support and testing for Python 3.11 (#2596, #2618)
2119
- Update deprecation utilities to improve user messages (#2606)
22-
- Add Python 3.11 to wheel creation workflow (#2618)
2320
- Core
2421
- Refactor expression hierarchy, add RelationalExpression base class (#2499)
2522
- Support cloning individual blocks (#2504)
@@ -29,33 +26,32 @@ Pyomo 6.4.3 28 Nov 2022
2926
- Improve handling of restricted words on Blocks (#2535)
3027
- Improve Reference() performance (#2537)
3128
- Fix mapping gradient/hessian for external functions with string args (#2539)
32-
- Updates and fixes for the NLv2 writer (#2540, #2622)
3329
- Fix bug for sum_product(Var, Param, Param) (#2551)
3430
- Add deprecation path for expression objects moved to relational_expr (#2554)
35-
- Raise exception when setting value of Expression to non-numeric expression (#2567)
36-
- Update tracking of used named subexpressions in NLv2 writer (#2568)
37-
- Add test utilities for comparing expressions (#2590)
38-
- Fix some performance degradations from pyomo.contrib.cp (#2612)
31+
- Exception when setting value of Expression to non-numeric expression (#2567)
3932
- Improve deepcopy performance (#2628)
4033
- Documentation
4134
- Fix examples in working_models.rst (#2502)
4235
- Solver Interfaces
4336
- Improve SCIP results object (#2462)
4437
- Improve warning message when LP writer raises KeyError (#2497)
4538
- Fix Gurobi work limit bug (#2530)
39+
- Updates and fixes for the NLv2 writer (#2540, #2622, #2568)
4640
- Fix Xpress when stopped due to MAXTIME or MAXNODES (#2553)
4741
- Add support for MOSEK 10 affine conic constraints (#2557)
4842
- Fix missing explicit space in GAMS put command (#2578)
4943
- Fix GAMS logfile storage location (#2580)
50-
- Update LP writer to not sort terms when file_determinism=0 (#2583)
51-
- Update LP writer to not parse quadratic terms when not supported by solver (#2585)
44+
- LP writer performance improvements (#2583, #2585)
5245
- Update handling of MOSEK Env and Python module (#2591)
5346
- Release MOSEK license when optimize raises a mosek.Error (#2593)
5447
- Update list of allowable characters in CPLEX filenames (#2597)
5548
- Testing
49+
- Update performance driver to be usable outside of Pyomo (#2505)
5650
- Update the performance test driver (#2538)
5751
- Reduce amount of environment code cached in GitHub actions (#2565)
5852
- Update GitHub actions versions from v2 to v3 (#2566)
53+
- Allow nan to compare equal in assertStructuredAlmostEqual() (#2582)
54+
- Add test utilities for comparing expressions (#2590)
5955
- Skip a test in MOSEK 10 due to a bug in warm starting MIQPs (#2614)
6056
- Update skipped CBC test that works with CBC 2.10.6 (#2615)
6157
- Add SCIP to GitHub actions environment (#2602)
@@ -72,24 +68,24 @@ Pyomo 6.4.3 28 Nov 2022
7268
- APPSI: Fix exception raised by appsi_gurobi during Python shutdown (#2498)
7369
- APPSI: Improve handling of Gurobi results (#2517)
7470
- APPSI: Add interface to HiGHS solver (#2561)
75-
- APPSI: Only release Gurobi license if all instances have been deleted (#2599)
71+
- APPSI: Only release Gurobi license after deleting all instances (#2599)
7672
- APPSI: Patch IntEnum to preserve pre-3.11 formatting (#2607)
77-
- cp: New package for constraint programming (#2570)
73+
- CP: New package for constraint programming (#2570, #2612)
7874
- GDPopt: Add warning when reporting results from LBB (#2534)
7975
- GDPopt: Delete dummy objective when we're done using it (#2552)
8076
- GDPopt: Add enumerate solution approach (#2559, #2575)
81-
- iis: Add package for computing the IIS of an infeasible Pyomo model (#2512)
77+
- IIS: Add package for computing the IIS of an infeasible Pyomo model (#2512)
8278
- MindtPy: Fix bug in termination condition (#2587)
8379
- MindtPy: Fix bug in checking absolute and relative gap (#2608)
84-
- mpc: Data structures and utils for rolling horizon dynamic optimization (#2477)
80+
- MPC: Data structures/utils for rolling horizon dynamic optimization (#2477)
8581
- Parmest: Solve square problem to initialize regression problem (#2438)
8682
- Parmest: Return ContinuousSet values from theta_est() (#2464)
87-
- PyNumero: Fix numpy deprecation warnings (#2521)
83+
- PyNumero: Fix NumPy deprecation warnings (#2521)
8884
- PyNumero: Add interfaces to SciPy square solvers (#2523)
89-
- PyNumero: Check that AmplInterface is available in SciPy solver tests (#2594)
85+
- PyNumero: Check AmplInterface availability in SciPy solver tests (#2594)
9086
- PyNumero: Add ProjectedExtendedNLP class (#2601)
9187
- PyNumero: Add interface to SciPy scalar Newton solver (#2603)
92-
- PyROS: Rewrite UncertaintySet docstrings and improve validation robustness (#2488)
88+
- PyROS: Rewrite UncertaintySet docstrings/improve validation (#2488)
9389
- PyROS: Updates to subproblem initialization and solver call routines (#2515)
9490
- PyROS: Fix collection of sub-solver solve times (#2543)
9591

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ including:
2626
- Generalized disjunctive programming
2727
- Differential algebraic equations
2828
- Mathematical programming with equilibrium constraints
29+
- Constraint programming
2930

3031
Pyomo supports analysis and scripting within a full-featured programming
3132
language. Further, Pyomo has also proven an effective framework for

RELEASE.txt

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
We are pleased to announce the release of Pyomo 6.4.2.
1+
We are pleased to announce the release of Pyomo 6.4.3.
22

33
Pyomo is a collection of Python software packages that supports a
44
diverse set of optimization capabilities for formulating and analyzing
@@ -9,11 +9,14 @@ The following are highlights of the 6.0 release series:
99
- Improved stability and robustness of core Pyomo code and solver interfaces
1010
- Integration of Boolean variables into GDP
1111
- Integration of NumPy support into the Pyomo expression system
12-
- Added support for Python 3.10
12+
- Added support for Python 3.10, 3.11
1313
- Removed support for Python 3.6
1414
- New packages:
1515
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
16+
- CP (Constraint programming models and solver interfaces)
1617
- External grey box models
18+
- IIS (Standard interface to solver IIS capabilities)
19+
- MPC (Data structures/utils for rolling horizon dynamic optimization)
1720
- PyROS (Pyomo Robust Optimization Solver)
1821
- Structural model analysis
1922
- Rewrite of the TrustRegion Solver

pyomo/core/expr/boolean_value.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ def is_fixed(self):
9494
return False
9595

9696
@deprecated("is_relational() is deprecated in favor of "
97-
"is_expression_type(ExpressionType.RELATIONAL)", version='TBD')
97+
"is_expression_type(ExpressionType.RELATIONAL)",
98+
version='6.4.3')
9899
def is_relational(self):
99100
"""
100101
Return True if this Logical value represents a relational expression.

pyomo/core/expr/expr_common.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class ExpressionType(enum.Enum):
7676
Beginning with Pyomo5 expressions, expression cloning (detangling) no
7777
longer occurs automatically within expression generation. As a result,
7878
the 'clone counter' has lost its utility and is no longer supported.
79-
This context manager will always report 0.""", version='TBD')
79+
This context manager will always report 0.""", version='6.4.3')
8080
class clone_counter(nullcontext):
8181
""" Context manager for counting cloning events.
8282

pyomo/core/expr/logical_expr.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,19 @@
4646
relocated_module_attribute(
4747
'EqualityExpression',
4848
'pyomo.core.expr.relational_expr.EqualityExpression',
49-
version='TBD')
49+
version='6.4.3')
5050
relocated_module_attribute(
5151
'InequalityExpression',
5252
'pyomo.core.expr.relational_expr.InequalityExpression',
53-
version='TBD')
53+
version='6.4.3')
5454
relocated_module_attribute(
5555
'RangedExpression',
5656
'pyomo.core.expr.relational_expr.RangedExpression',
57-
version='TBD')
57+
version='6.4.3')
5858
relocated_module_attribute(
5959
'inequality',
6060
'pyomo.core.expr.relational_expr.inequality',
61-
version='TBD')
61+
version='6.4.3')
6262

6363

6464
def _generate_logical_proposition(etype, lhs, rhs):
@@ -117,7 +117,7 @@ def args(self):
117117

118118
class BooleanExpressionBase(metaclass=RenamedClass):
119119
__renamed__new_class__ = BooleanExpression
120-
__renamed__version__ = 'TBD'
120+
__renamed__version__ = '6.4.3'
121121

122122

123123
"""

pyomo/core/expr/numeric_expr.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def args(self):
142142
@deprecated('The implicit recasting of a "not potentially variable" '
143143
'expression node to a potentially variable one is no '
144144
'longer supported (this violates that immutability '
145-
'promise for Pyomo5 expression trees).', version='TBD')
145+
'promise for Pyomo5 expression trees).', version='6.4.3')
146146
def create_potentially_variable_object(self):
147147
"""
148148
Create a potentially variable version of this object.

pyomo/core/expr/numvalue.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ def as_numeric(obj):
367367
deprecation_warning(
368368
"returning a relational expression from as_numeric(). "
369369
"Relational expressions are no longer numeric types. "
370-
"In the future this will raise a TypeError.", version='TBD')
370+
"In the future this will raise a TypeError.", version='6.4.3')
371371
return obj
372372
else:
373373
try:
@@ -436,7 +436,7 @@ def check_if_numeric_type(obj):
436436

437437

438438
@deprecated("check_if_numeric_type_and_cache() has been deprecated in "
439-
"favor of just calling as_numeric()", version='TBD')
439+
"favor of just calling as_numeric()", version='6.4.3')
440440
def check_if_numeric_type_and_cache(obj):
441441
"""Test if the argument is a numeric type by checking if we can add
442442
zero to it. If that works, then we cache the value and return a
@@ -495,7 +495,8 @@ def is_potentially_variable(self):
495495
return False
496496

497497
@deprecated("is_relational() is deprecated in favor of "
498-
"is_expression_type(ExpressionType.RELATIONAL)", version='TBD')
498+
"is_expression_type(ExpressionType.RELATIONAL)",
499+
version='6.4.3')
499500
def is_relational(self):
500501
"""
501502
Return True if this numeric value represents a relational expression.

pyomo/core/expr/relational_expr.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ def args(self):
6767
return self._args_[:self.nargs()]
6868

6969
@deprecated("is_relational() is deprecated in favor of "
70-
"is_expression_type(ExpressionType.RELATIONAL)", version='TBD')
70+
"is_expression_type(ExpressionType.RELATIONAL)",
71+
version='6.4.3')
7172
def is_relational(self):
7273
return self.is_expression_type(ExpressionType.RELATIONAL)
7374

pyomo/repn/plugins/nl_writer.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1747,7 +1747,7 @@ def handle_product_node(visitor, node, arg1, arg2):
17471747
"Mapping the NaN result to 0 for compatibility "
17481748
"with the nl_v1 writer. In the future, this NaN "
17491749
"will be preserved/emitted to comply with IEEE-754.",
1750-
version='TBD')
1750+
version='6.4.3')
17511751
_prod = 0
17521752
return (_CONSTANT, _prod)
17531753
return arg1
@@ -1775,7 +1775,7 @@ def handle_product_node(visitor, node, arg1, arg2):
17751775
"Mapping the NaN result to 0 for compatibility "
17761776
"with the nl_v1 writer. In the future, this NaN "
17771777
"will be preserved/emitted to comply with IEEE-754.",
1778-
version='TBD')
1778+
version='6.4.3')
17791779
_prod = 0
17801780
return (_CONSTANT, _prod)
17811781
return (_CONSTANT, mult*arg2[1])
@@ -2140,7 +2140,7 @@ def _before_monomial(visitor, child):
21402140
"Mapping the NaN result to 0 for compatibility "
21412141
"with the nl_v1 writer. In the future, this NaN "
21422142
"will be preserved/emitted to comply with IEEE-754.",
2143-
version='TBD')
2143+
version='6.4.3')
21442144
_prod = 0
21452145
return (_CONSTANT, _prod)
21462146

pyomo/version/info.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
major=6
2828
minor=4
2929
micro=3
30-
releaselevel='invalid'
31-
#releaselevel='final'
30+
#releaselevel='invalid'
31+
releaselevel='final'
3232
serial=0
3333

3434
if releaselevel == 'final':

0 commit comments

Comments
 (0)