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/CHANGELOG.md b/CHANGELOG.md
index e0ba1f885cb..553a4f1c3bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,67 @@ Pyomo CHANGELOG
===============
+-------------------------------------------------------------------------------
+Pyomo 6.7.0 (29 Nov 2023)
+-------------------------------------------------------------------------------
+
+- General
+ - Remove Python 3.7, add Python 3.12 Support (#3050, #2956)
+ - Update report_timing() to support context manager API (#3039)
+ - Add `Preformatted` class for logging preformatted messages (#2998)
+ - QuadraticRepnVisitor: Improve nonlinear expression expansion (#2997)
+ - Add `CITATION` file to main repository (#2992)
+ - 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)
+ - 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
+ - Remove presolve-eliminated variables from named expressions (#3056)
+ - 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)
+ - 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
+ - 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)
+ - 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)
+ - 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)
+ - 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 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 0 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)
+ - PyROS: Report relative variable shifts in solver logs (#3035)
+ - PyROS: Update logging system (#2990)
+
-------------------------------------------------------------------------------
Pyomo 6.6.2 (23 Aug 2023)
-------------------------------------------------------------------------------
diff --git a/RELEASE.md b/RELEASE.md
index da97ba78701..03baa803ac9 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -1,34 +1,17 @@
-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 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:
- - 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)
+ - ...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).
diff --git a/pyomo/common/backports.py b/pyomo/common/backports.py
index 0854715baeb..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.dev0'
-)
+relocated_module_attribute('nullcontext', 'contextlib.nullcontext', version='6.7.0')
diff --git a/pyomo/version/info.py b/pyomo/version/info.py
index d274d0dead1..e38e844ad9b 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':