Skip to content

Commit 221a206

Browse files
authored
Merge pull request #3758 from mrmundt/finalize-release-6.9.5
Finalize release 6.9.5
2 parents 590ecfd + e5d1131 commit 221a206

File tree

9 files changed

+85
-29
lines changed

9 files changed

+85
-29
lines changed

.coin-or/projDesc.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,8 @@ Carl D. Laird, Chair, Pyomo Management Committee, claird at andrew dot cmu dot e
208208
Use explicit overrides to disable use of automated
209209
version reporting.
210210
-->
211-
<stableVersionNumber>6.9.4</stableVersionNumber>
212-
<releaseNumber>6.9.4</releaseNumber>
211+
<stableVersionNumber>6.9.5</stableVersionNumber>
212+
<releaseNumber>6.9.5</releaseNumber>
213213

214214
</developmentStatus>
215215

.github/workflows/release_wheel_creation.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
matrix:
3030
os: [ubuntu-latest, windows-latest, macos-latest]
3131
arch: [all]
32-
wheel-version: ['cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*']
32+
wheel-version: ['cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*', 'cp314*']
3333

3434
include:
3535
- wheel-version: 'cp39*'
@@ -47,6 +47,9 @@ jobs:
4747
- wheel-version: 'cp313*'
4848
TARGET: 'py313'
4949
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
50+
- wheel-version: 'cp314*'
51+
TARGET: 'py314'
52+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
5053

5154
# We use pure python for any Windows/python greater than 3.10
5255
exclude:
@@ -56,6 +59,8 @@ jobs:
5659
os: windows-latest
5760
- wheel-version: 'cp313*'
5861
os: windows-latest
62+
- wheel-version: 'cp314*'
63+
os: windows-latest
5964

6065
steps:
6166
- uses: actions/checkout@v4
@@ -84,7 +89,7 @@ jobs:
8489
matrix:
8590
os: [ubuntu-latest]
8691
arch: [all]
87-
wheel-version: ['cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*']
92+
wheel-version: ['cp39*', 'cp310*', 'cp311*', 'cp312*', 'cp313*', 'cp314*']
8893

8994
include:
9095
- wheel-version: 'cp39*'
@@ -102,6 +107,9 @@ jobs:
102107
- wheel-version: 'cp313*'
103108
TARGET: 'py313'
104109
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
110+
- wheel-version: 'cp314*'
111+
TARGET: 'py314'
112+
GLOBAL_OPTIONS: "--without-cython --with-distributable-extensions"
105113
steps:
106114
- uses: actions/checkout@v4
107115
- name: Set up QEMU
@@ -172,7 +180,7 @@ jobs:
172180
- name: Install dependencies
173181
run: |
174182
python -m pip install --upgrade pip
175-
pip install build twine wheel 'setuptools>=65' pybind11
183+
pip install build twine wheel 'setuptools>=77' pybind11
176184
- name: Build generic tarball
177185
run: |
178186
export PYOMO_SETUP_ARGS=--without-cython

CHANGELOG.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,47 @@
11
Pyomo CHANGELOG
22
===============
33

4+
-------------------------------------------------------------------------------
5+
Pyomo 6.9.5 (17 Oct 2025)
6+
-------------------------------------------------------------------------------
7+
8+
SIGNIFICANT CHANGE NOTICE
9+
10+
- This will be the last release to support Python 3.9
11+
- This is the first release to be tested against Python 3.14
12+
13+
CHANGELOG
14+
15+
- General
16+
- Add Python 3.14 as a supported version (#3749, #3728)
17+
- New Typos Updates (#3715, #3739)
18+
- Modernization: Convert to new implicit standard for classes (#3654)
19+
- Fix boolean conversion in DeferredImportIndicator class (#3746)
20+
- Core
21+
- LinearExpression should return tuples instead of lists (#3751)
22+
- Initializing Config containers shouldn't mark as "user set" (#3722)
23+
- Documentation
24+
- Update URLs in source code (#3755)
25+
- Solver Interfaces
26+
- Set Gurobi LogToConsole instead of OutputFlag to handle "tee" (#3716)
27+
- New KNITRO direct solver interface (#3707)
28+
- Add Gurobi direct support for MINLP (#3745)
29+
- Bugfix: IPOPT log parser and no objective case (#3738)
30+
- Add test to ensure `Results` object is populated fully (#3709)
31+
- Mark that AMPL Gurobi 12.0.3 returns incorrect dual values (#3750)
32+
- Gams gurobi valid solvers fix (#3714)
33+
- Validate new api_version() method, implement on wrapper classes (#3717)
34+
- Testing
35+
- Update to pypy3.11 and ignore pint (#3756)
36+
- Contributed Packages
37+
- alternative_solutions: Gurobi solution pool tweak (#3726)
38+
- DoE: Finish GreyBox / ME-opt Hessian (#3740, #3727)
39+
- DoE: Measurement error convention correction (#3723)
40+
- piecewise: Fix deprecation in NonlinearToPWL/LinearRepnVisitor (#3752)
41+
- PyROS: Restructure and add tutorial to online documentation (#3733)
42+
- PyROS: Modify the logging system (#3732)
43+
- PyROS: Ensure support for problems With no Vars/uncertain Params (#3720)
44+
445
-------------------------------------------------------------------------------
546
Pyomo 6.9.4 (27 Aug 2025)
647
-------------------------------------------------------------------------------

RELEASE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
We are pleased to announce the release of Pyomo 6.9.4.
1+
We are pleased to announce the release of Pyomo 6.9.5.
22

33
Pyomo is a collection of Python software packages that supports a
44
diverse set of optimization capabilities for formulating and analyzing
@@ -7,11 +7,13 @@ optimization models.
77
The following are highlights of the 6.9 release series:
88

99
- Removed support for Python 3.8
10+
- Added support for Python 3.14
1011
- New Logic-Based Discrete-Steepest Descent Algorithm in GDPOpt
1112
- New External Function for Cubic Spline Interpolation
1213
- New ASL External Functions Library
1314
- New solver interfaces:
14-
- Support for upcoming knitro Python package
15+
- `knitro_direct` KNITRO Python bindings interface
16+
- Add `gurobi_direct` support for MINLP
1517
- v2: Ongoing solver interface refactor
1618
- ...and of course numerous minor bug fixes and performance enhancements
1719

doc/OnlineDocs/explanation/solvers/pyros/solver_log.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ your console output will, by default, look like this:
2727
2828
==============================================================================
2929
PyROS: The Pyomo Robust Optimization Solver, v1.3.11.
30-
Pyomo version: 6.9.5.dev0 (devel {main})
30+
Pyomo version: 6.9.5
3131
Commit hash: unknown
3232
Invoked at UTC 2025-10-18T00:00:00.000000+00:00
3333

doc/OnlineDocs/getting_started/solvers.rst

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,53 +27,58 @@ the license requirements for their desired solver.
2727
- Conda
2828
- License |br| Docs
2929
* - cplex
30-
- ``pip install cplex``
31-
- ``conda install ‑c ibmdecisionoptimization \    cplex``
30+
- ``pip install cplex``
31+
- ``conda install ‑c ibmdecisionoptimization \ cplex``
3232
- `License <https://www.ibm.com/products/ilog-cplex-optimization-studio/pricing>`__
3333
`Docs <https://www.ibm.com/docs/en/icos/latest?topic=cplex-installing>`__
3434
* - CPoptimizer
35-
- ``pip install cplex \    docplex``
36-
- ``conda install ‑c ibmdecisionoptimization \    cplex docplex``
35+
- ``pip install cplex \ docplex``
36+
- ``conda install ‑c ibmdecisionoptimization \ cplex docplex``
3737
- `License <https://github.com/IBMDecisionOptimization/docplex-doc/blob/master/LICENSE.txt>`__
3838
`Docs <https://ibmdecisionoptimization.github.io/docplex-doc/getting_started_python.html>`__
3939
* - cyipopt
40-
- ``pip install cyipopt``
41-
- ``conda install ‑c conda‑forge cyipopt``
40+
- ``pip install cyipopt``
41+
- ``conda install ‑c conda‑forge cyipopt``
4242
- `License <https://cyipopt.readthedocs.io/en/stable/#copyright>`__
4343
`Docs <https://cyipopt.readthedocs.io/en/stable/install.html>`__
4444
* - glpk
4545
- N/A
46-
- ``conda install ‑c conda‑forge glpk``
46+
- ``conda install ‑c conda‑forge glpk``
4747
- `License <https://www.gnu.org/licenses/licenses.html>`__
4848
`Docs <https://www.gnu.org/software/glpk/>`__
4949
* - Gurobi
50-
- ``pip install gurobipy``
51-
- ``conda install ‑c gurobi gurobi``
50+
- ``pip install gurobipy``
51+
- ``conda install ‑c gurobi gurobi``
5252
- `License <https://www.gurobi.com/solutions/licensing/>`__
5353
`Docs <https://support.gurobi.com/hc/en-us/articles/360044290292-How-do-I-install-Gurobi-for-Python>`__
5454
* - HiGHS
55-
- ``pip install highspy``
56-
- ``conda install ‑c conda‑forge highspy``
55+
- ``pip install highspy``
56+
- ``conda install ‑c conda‑forge highspy``
5757
- `License <https://github.com/ERGO-Code/HiGHS/blob/master/LICENSE.txt>`__
5858
`Docs <https://ergo-code.github.io/HiGHS/dev/interfaces/python/>`__
59+
* - KNITRO
60+
- ``pip install knitro``
61+
- N/A
62+
- `License <https://www.artelys.com/solvers/knitro/>`__
63+
`Docs <https://www.artelys.com/app/docs/knitro/index.html>`__
5964
* - MAiNGO
60-
- ``pip install maingopy``
65+
- ``pip install maingopy``
6166
- N/A
6267
- `License <https://git.rwth-aachen.de/avt-svt/public/maingo/-/blob/master/LICENSE>`__
6368
`Docs <https://avt-svt.pages.rwth-aachen.de/public/maingo/install.html>`__
6469
* - PyMUMPS
65-
- ``pip install pymumps``
66-
- ``conda install ‑c conda‑forge pymumps``
70+
- ``pip install pymumps``
71+
- ``conda install ‑c conda‑forge pymumps``
6772
- `License <https://github.com/PyMumps/pymumps/blob/master/COPYING>`__
6873
`Docs <https://github.com/pymumps/pymumps>`__
6974
* - SCIP
7075
- N/A
71-
- ``conda install ‑c conda‑forge scip``
76+
- ``conda install ‑c conda‑forge scip``
7277
- `License <https://www.scipopt.org/scip/doc/html/LICENSE.php>`__
7378
`Docs <https://www.scipopt.org/index.php#download>`__
7479
* - XPRESS
75-
- ``pip install xpress``
76-
- ``conda install ‑c fico‑xpress xpress``
80+
- ``pip install xpress``
81+
- ``conda install ‑c fico‑xpress xpress``
7782
- `License <https://www.fico.com/en/fico-xpress-trial-and-licensing-options>`__
7883
`Docs <https://www.fico.com/fico-xpress-optimization/docs/latest/solver/optimizer/python/HTML/chIntro.html?scroll=secInstall>`__
7984

pyomo/contrib/parmest/parmest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1657,7 +1657,7 @@ def theta_est(
16571657
"theta_est(): `calc_cov` and `cov_n` are deprecated options and "
16581658
"will be removed in the future. Please use the `cov_est()` function "
16591659
"for covariance calculation.",
1660-
version="6.9.4.dev0",
1660+
version="6.9.5",
16611661
)
16621662
else:
16631663
calc_cov = False

pyomo/version/info.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
major = 6
2828
minor = 9
2929
micro = 5
30-
releaselevel = 'invalid'
31-
# releaselevel = 'final'
30+
# releaselevel = 'invalid'
31+
releaselevel = 'final'
3232
serial = 0
3333

3434
if releaselevel == 'final':

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ def __ne__(self, other):
240240
'openpyxl', # dataportals
241241
'packaging', # for checking other dependency versions
242242
#'pathos', # requested for #963, but PR currently closed
243-
# pint causes a segfault on pypy
243+
# pint causes a segfault only for one test (test_bad_units) on pypy
244244
'pint; implementation_name!="pypy"', # units
245245
'plotly', # incidence_analysis
246246
'python-louvain', # community_detection

0 commit comments

Comments
 (0)