docs: prep for 7.11.2
diff --git a/CHANGES.rst b/CHANGES.rst
index daf4b9a..e48aa60 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -20,8 +20,12 @@
     ..  Version 9.8.1 — 2027-07-27
     ..  --------------------------
 
-Unreleased
-----------
+.. start-releases
+
+.. _changes_7-11-2:
+
+Version 7.11.2 — 2025-11-08
+---------------------------
 
 - Fix: using the "sysmon" measurement core in 7.11.1, if Python code was
   claimed to come from a non-Python file, a ``NotPython`` exception could be
@@ -33,8 +37,6 @@
 .. _issue 2077: https://github.com/nedbat/coveragepy/issues/2077
 
 
-.. start-releases
-
 .. _changes_7-11-1:
 
 Version 7.11.1 — 2025-11-07
diff --git a/coverage/version.py b/coverage/version.py
index 3e59950..fffb76e 100644
--- a/coverage/version.py
+++ b/coverage/version.py
@@ -8,8 +8,8 @@
 
 # version_info: same semantics as sys.version_info.
 # _dev: the .devN suffix if any.
-version_info = (7, 11, 2, "alpha", 0)
-_dev = 1
+version_info = (7, 11, 2, "final", 0)
+_dev = 0
 
 
 def _make_version(
diff --git a/doc/conf.py b/doc/conf.py
index 37cf1f1..ee0ee33 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -68,11 +68,11 @@
 # @@@ editable
 copyright = "2009–2025, Ned Batchelder"  # pylint: disable=redefined-builtin
 # The short X.Y.Z version.
-version = "7.11.1"
+version = "7.11.2"
 # The full version, including alpha/beta/rc tags.
-release = "7.11.1"
+release = "7.11.2"
 # The date of release, in "monthname day, year" format.
-release_date = "November 7, 2025"
+release_date = "November 8, 2025"
 # @@@ end
 
 rst_epilog = f"""