Skip to content

Commit 32a35a2

Browse files
authored
Merge pull request Pyomo#2084 from Pyomo/finalize-release
Finalize release 6.1
2 parents 0bb50d9 + 258b36d commit 32a35a2

File tree

14 files changed

+105
-42
lines changed

14 files changed

+105
-42
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, cdlaird at sandia dot gov
227227
Use explicit overrides to disable use of automated
228228
version reporting.
229229
-->
230-
<stableVersionNumber>6.0.1</stableVersionNumber>
231-
<releaseNumber>6.0.1</releaseNumber>
230+
<stableVersionNumber>6.1</stableVersionNumber>
231+
<releaseNumber>6.1</releaseNumber>
232232

233233
</developmentStatus>
234234

CHANGELOG.txt

+62
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,68 @@
22
Pyomo CHANGELOG
33
===============
44

5+
-------------------------------------------------------------------------------
6+
Pyomo 6.1 17 Aug 2021
7+
-------------------------------------------------------------------------------
8+
9+
- General
10+
- Support using TicTocTimer as a context manager (#2012)
11+
- Add optional dependency target in setup.py (#2017)
12+
- Added utilities for subsets of model components (#1998)
13+
- Improvements in deprecation warning system (#2045, #2058, #2056)
14+
- Resolve TeeStream deadlock issues (#2072)
15+
- Move PYOMO_CONFIG_DIR into pyomo.common.envvar (#2065)
16+
- Add a DynamicImplicitDomain domain validator (#2043)
17+
- Generate standard repn misidentifies nonlinear expr (#2074)
18+
- Add Module() validator to the config system (#2062)
19+
- Core
20+
- Yield Iterator from IndexedComponent (#2007)
21+
- Use yield from in pyomo.core (#1984)
22+
- Improvements to sorted_robust and string formatting (#2020, #2024)
23+
- Integrating numpy with the Pyomo expression system (#2027, #2034, #2070)
24+
- Resolve Set bugs (#2048)
25+
- Prevent attaching global Sets to Blocks (#2042)
26+
- Correct scalar mutable param getitem implementation (#2066)
27+
- Fix Var bounds with unitted mutable Params (#2067)
28+
- Improve @disable_methods decorator (#2069)
29+
- Allow native numeric types in relational expressions (#2073)
30+
- Fixing symbol names in Initializer deprecation layer (#2079)
31+
- Deprecate OrderedSet.__getitem__ in favor of OrderedSet.card() (#2053)
32+
- Documentation
33+
- Create a list of related packages (#2016)
34+
- Solver Interfaces
35+
- Clean up dependencies and solver.available() IO (#2011)
36+
- Update Baron writer to recognize priority Suffix (#2035)
37+
- Add OCTERACT to the list of known NEOS solvers (#2064)
38+
- Resolve tee issues with Xpress 8.9+ (#2059)
39+
- Increase timeout for ASL version request (#2083)
40+
- Testing
41+
- Miscellaneous testing fixes (#2023)
42+
- Improve management of tempfiles in tests (#2036)
43+
- Update GHA to ubuntu-latest; resolve ampl/mp build error (#2015)
44+
- Move constrained_layout tests to 'expensive' suite (#2018)
45+
- Update xpress, appsi tests to manage CWD (#2031)
46+
- Improve comparison of Book examples to baselines (#2044)
47+
- Add retry/timeout to powershell downloads (#2077)
48+
- GDP Updates
49+
- gdp.hull: Only create one disaggregated variable for all Disjuncts in
50+
which a Var does not appear (#2005)
51+
- Contributed Packages
52+
- FBBT: descend_into option for FBBT (#2025)
53+
- FBBT: Interval arithmetic edge cases for FBBT (#2026)
54+
- FBBT: Improved handling for product expressions (#2038)
55+
- incidence_analysis: methods for generating and solving strongly
56+
connected components of a square model (#2009)
57+
- incidence_analysis: Add Dulmage-Mendelsohn partition (#2063)
58+
- PETSc: Remove PETSc solver (#1986)
59+
- PyROS: Pyomo Robust Optimization Solver (#2006, #2061)
60+
- sensitivity_toolbox: Add kaug dsdp mode (#1613)
61+
- APPSI: API Cleanup (#1944), bug-fix in update_variables (#2051)
62+
- MindtPy: Increase code coverage (#2021)
63+
- MindtPy: Replace is not by != (#2081)
64+
- PyNumero: ExternalGreyBox subclass to embed implicit functions (#2022)
65+
66+
567
-------------------------------------------------------------------------------
668
Pyomo 6.0.1 4 Jun 2021
769
-------------------------------------------------------------------------------

RELEASE.txt

+7-13
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
We are pleased to announce the release of Pyomo 6.0.1.
1+
We are pleased to announce the release of Pyomo 6.1.
22

33
Pyomo is a collection of Python software packages that supports a
44
diverse set of optimization capabilities for formulating and analyzing
@@ -9,18 +9,12 @@ The following are highlights of the 6.0 release series:
99

1010
- Improved stability and robustness of core Pyomo code and solver interfaces
1111
- Integration of Boolean variables into GDP
12-
- New packages: APPSI, structural model analysis, external grey box models
13-
14-
Note: As a major release, Pyomo 6.0 has certain backwards
15-
incompatibilities with the 5.x series and the 2nd Edition of the Pyomo
16-
Book. Most notably:
17-
18-
- Removed support for Python 2.7 or 3.5
19-
- Moved PySP into a separate package at https://github.com/Pyomo/pysp
20-
- Renamed "Simple" components to "Scalar" components
21-
- Removed support for implicit ranged inequalities (a <= m.x <= b)
22-
- Removed support for component reconstruct method
23-
- Removed support for casting relational expressions to bool
12+
- Integration of NumPy support into the Pyomo expression system
13+
- New packages:
14+
- APPSI (Auto-Persistent Pyomo Solver Interfaces)
15+
- External grey box models
16+
- PyROS (Pyomo Robust Optimization Solver)
17+
- Structural model analysis
2418

2519
A full list of updates and changes is available in the CHANGELOG.txt
2620

pyomo/common/config.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
relocated_module_attribute(
3939
'PYOMO_CONFIG_DIR', 'pyomo.common.envvar.PYOMO_CONFIG_DIR',
40-
version='TBD')
40+
version='6.1')
4141

4242
USER_OPTION = 0
4343
ADVANCED_OPTION = 1

pyomo/contrib/sensitivity_toolbox/sens.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
@deprecated("The sipopt function has been deprecated. Use the sensitivity_calculation() "
3535
"function with method='sipopt' to access this functionality.",
3636
logger='pyomo.contrib.sensitivity_toolbox',
37-
version='TBD')
37+
version='6.1')
3838
def sipopt(instance, paramSubList, perturbList,
3939
cloneModel=True, tee=False, keepfiles=False,
4040
streamSoln=False):
@@ -46,7 +46,7 @@ def sipopt(instance, paramSubList, perturbList,
4646
@deprecated("The kaug function has been deprecated. Use the sensitivity_calculation() "
4747
"function with method='k_aug' to access this functionality.",
4848
logger='pyomo.contrib.sensitivity_toolbox',
49-
version='TBD')
49+
version='6.1')
5050
def kaug(instance, paramSubList, perturbList,
5151
cloneModel=True, tee=False, keepfiles=False, solver_options=None,
5252
streamSoln=False):

pyomo/core/base/PyomoModel.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -644,13 +644,15 @@ def create_instance( self, filename=None, data=None, name=None,
644644
kwds.pop('clone')
645645
deprecation_warning(
646646
"Model.create_instance() no longer accepts the 'clone' "
647-
"argument: the base abstract model is always cloned.")
647+
"argument: the base abstract model is always cloned.",
648+
version='5.4')
648649
if 'preprocess' in kwds:
649650
kwds.pop('preprocess')
650651
deprecation_warning(
651652
"Model.create_instance() no longer accepts the preprocess' "
652653
"argument: preprocessing is always deferred to when the "
653-
"model is sent to the solver")
654+
"model is sent to the solver",
655+
version='5.4')
654656
if kwds:
655657
msg = \
656658
"""Model.create_instance() passed the following unrecognized keyword
@@ -662,7 +664,8 @@ def create_instance( self, filename=None, data=None, name=None,
662664
if self.is_constructed():
663665
deprecation_warning(
664666
"Cannot call Model.create_instance() on a constructed "
665-
"model; returning a clone of the current model instance.")
667+
"model; returning a clone of the current model instance.",
668+
version='5.4')
666669
return self.clone()
667670

668671
if report_timing:
@@ -735,7 +738,7 @@ def load(self, arg, namespaces=[None], profile_memory=0, report_timing=None):
735738
deprecation_warning(
736739
"The report_timing argument to Model.load() is deprecated. "
737740
"Use pyomo.common.timing.report_timing() to enable reporting "
738-
"construction timing")
741+
"construction timing", version='5.4')
739742
if arg is None or isinstance(arg, str):
740743
dp = DataPortal(filename=arg, model=self)
741744
elif type(arg) is DataPortal:

pyomo/core/base/misc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121

2222
relocated_module_attribute(
2323
'tabular_writer', 'pyomo.common.formatting.tabular_writer',
24-
version='TBD')
24+
version='6.1')
2525
relocated_module_attribute(
2626
'sorted_robust', 'pyomo.common.sorting.sorted_robust',
27-
version='TBD')
27+
version='6.1')
2828

2929

3030
def display(obj, ostream=None):

pyomo/core/base/set.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1381,7 +1381,7 @@ def __getitem__(self, key):
13811381
deprecation_warning(
13821382
"Using __getitem__ to return a set value from its (ordered) "
13831383
"position is deprecated. Please use card()",
1384-
version='TBD', remove_in='7.0')
1384+
version='6.1', remove_in='7.0')
13851385
return self.card(key)
13861386

13871387
def isordered(self):
@@ -1928,7 +1928,7 @@ def __init__(self, *args, **kwds):
19281928
if 'virtual' in kwds:
19291929
deprecation_warning(
19301930
"Pyomo Sets ignore the 'virtual' keyword argument",
1931-
logger='pyomo.core.base')
1931+
logger='pyomo.core.base', version='5.6.7')
19321932
kwds.pop('virtual')
19331933

19341934
IndexedComponent.__init__(self, *args, **kwds)

pyomo/core/base/util.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818

1919
relocated_module_attribute(
2020
'disable_methods', 'pyomo.core.base.disable_methods.disable_methods',
21-
version='TBD')
21+
version='6.1')
2222
relocated_module_attribute(
2323
'Initializer', 'pyomo.core.base.initializer.Initializer',
24-
version='TBD')
24+
version='6.1')
2525
relocated_module_attribute(
2626
'IndexedCallInitializer', 'pyomo.core.base.initializer.Initializer',
27-
version='TBD')
27+
version='6.1')
2828
relocated_module_attribute(
2929
'CountedCallInitializer', 'pyomo.core.base.initializer.Initializer',
30-
version='TBD')
30+
version='6.1')
3131

3232
def is_functor(obj):
3333
"""

pyomo/core/expr/visitor.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ def __init__(self, **kwds):
172172
deprecation_warning(
173173
"Note that the API for the StreamBasedExpressionVisitor "
174174
"has changed to include the child index for the %s() "
175-
"method. Please update your walker callbacks." % (name,))
175+
"method. Please update your walker callbacks." % (name,),
176+
version='5.7.0')
176177
def wrap(fcn, nargs):
177178
def wrapper(*args):
178179
return fcn(*args[:nargs])

pyomo/core/kernel/register_numpy_types.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
deprecation_warning(
1313
"pyomo.core.kernel.register_numpy_types is deprecated. NumPy type "
1414
"registration is handled automatically by pyomo.common.dependencies.numpy",
15-
version='TBD',
15+
version='6.1',
1616
)
1717

1818
from pyomo.core.expr.numvalue import (

pyomo/core/plugins/transform/add_slack_vars.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121

2222
def target_list(x):
2323
deprecation_msg = ("In future releases ComponentUID targets will no "
24-
"longer be supported in the core.add_slack_variables "
25-
"transformation. Specify targets as a Constraint or "
26-
"list of Constraints.")
24+
"longer be supported in the core.add_slack_variables "
25+
"transformation. Specify targets as a Constraint or "
26+
"list of Constraints.")
2727
if isinstance(x, ComponentUID):
2828
if deprecation_msg:
29-
deprecation_warning(deprecation_msg)
29+
deprecation_warning(deprecation_msg, version='5.7.1')
3030
# only emit the message once
3131
deprecation_msg = None
3232
# [ESJ 07/15/2020] We have to just pass it through because we need the
@@ -39,7 +39,7 @@ def target_list(x):
3939
for i in x:
4040
if isinstance(i, ComponentUID):
4141
if deprecation_msg:
42-
deprecation_warning(deprecation_msg)
42+
deprecation_warning(deprecation_msg, version='5.7.1')
4343
deprecation_msg = None
4444
# same as above...
4545
ans.append(i)

pyomo/core/util.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,9 @@ def sequence(*args):
276276

277277
def xsequence(*args):
278278
from pyomo.common.deprecation import deprecation_warning
279-
deprecation_warning("The xsequence function is deprecated. Use the sequence() function, which returns a generator.") # Remove in Pyomo 6.0
279+
deprecation_warning(
280+
"The xsequence function is deprecated. Use the sequence() "
281+
"function, which returns a generator.", version='5.5.1',
282+
remove_in='6.0')
280283
return sequence(*args)
281284

pyomo/version/info.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
# should generally be left at 0, unless a downstream package is tracking
2525
# main and needs a hard reference to "suitably new" development.
2626
major=6
27-
minor=0
28-
micro=2
29-
releaselevel='invalid'
30-
#releaselevel='final'
27+
minor=1
28+
micro=0
29+
#releaselevel='invalid'
30+
releaselevel='final'
3131
serial=0
3232

3333
if releaselevel == 'final':

0 commit comments

Comments
 (0)