docs: update changelog and versionadded
diff --git a/docs/advanced/classes.rst b/docs/advanced/classes.rst
index e8940d8..f7db3ea 100644
--- a/docs/advanced/classes.rst
+++ b/docs/advanced/classes.rst
@@ -149,8 +149,7 @@
 will generally leave the C++ instance in an invalid state and cause undefined
 behavior if the C++ instance is subsequently used.
 
-.. versionadded:: 2.5.1
-
+.. versionchanged:: 2.6
    The default pybind11 metaclass will throw a ``TypeError`` when it detects
    that ``__init__`` was not called by a derived class.
 
@@ -597,6 +596,8 @@
 
     pybind11 does not support C++ destructors marked ``noexcept(false)``.
 
+.. versionadded:: 2.6
+
 .. _implicit_conversions:
 
 Implicit conversions
@@ -1147,6 +1148,8 @@
 
 .. note:: This attribute is currently ignored on PyPy
 
+.. versionadded:: 2.6
+
 Custom automatic downcasters
 ============================
 
diff --git a/docs/advanced/exceptions.rst b/docs/advanced/exceptions.rst
index 4fa53ca..7206310 100644
--- a/docs/advanced/exceptions.rst
+++ b/docs/advanced/exceptions.rst
@@ -188,3 +188,5 @@
             third_party::log(e);
         }
     }
+
+.. versionadded:: 2.6
diff --git a/docs/advanced/functions.rst b/docs/advanced/functions.rst
index 984b046..3e33c9c 100644
--- a/docs/advanced/functions.rst
+++ b/docs/advanced/functions.rst
@@ -390,6 +390,8 @@
 Note that, as in Python, you cannot combine this with a ``py::args`` argument.
 This feature does *not* require Python 3 to work.
 
+.. versionadded:: 2.6
+
 .. _nonconverting_arguments:
 
 Non-converting arguments
diff --git a/docs/advanced/pycpp/numpy.rst b/docs/advanced/pycpp/numpy.rst
index 3b6a5df..39cfa73 100644
--- a/docs/advanced/pycpp/numpy.rst
+++ b/docs/advanced/pycpp/numpy.rst
@@ -387,6 +387,9 @@
    py::array a = /* A NumPy array */;
    py::array b = a[py::make_tuple(0, py::ellipsis(), 0)];
 
+.. versionchanged:: 2.6
+   ``py::ellipsis()`` is now also avaliable in Python 2.
+
 Memory view
 ===========
 
@@ -428,3 +431,6 @@
 .. note::
 
     ``memoryview::from_memory`` is not available in Python 2.
+
+.. versionchanged:: 2.6
+    ``memoryview::from_memory`` added.
diff --git a/docs/changelog.rst b/docs/changelog.rst
index fbb3667..0e15621 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -11,6 +11,24 @@
 
 See :ref:`upgrade-guide-2.6` for help upgrading to the new version.
 
+* Keyword only argument supported in Python 2 or 3 with ``py::kwonly()``.
+  `#2100 <https://github.com/pybind/pybind11/pull/2100>`_
+
+* Perfect forwarding support for methods.
+  `#2048 <https://github.com/pybind/pybind11/pull/2048>`_
+
+* Added ``py::error_already_set::discard_as_unraisable()``.
+  `#2372 <https://github.com/pybind/pybind11/pull/2372>`_
+
+* ``py::hash`` is now public.
+  `#2217 <https://github.com/pybind/pybind11/pull/2217>`_
+
+* ``py::is_final()`` class modifier to block subclassing (CPython only).
+  `#2151 <https://github.com/pybind/pybind11/pull/2151>`_
+
+* ``py::memoryview``  update and documentation.
+  `#2223 <https://github.com/pybind/pybind11/pull/2223>`_
+
 * Minimum CMake required increased to 3.4.
   `#2338 <https://github.com/pybind/pybind11/pull/2338>`_ and
   `#2370 <https://github.com/pybind/pybind11/pull/2370>`_
@@ -36,6 +54,39 @@
   `#2265 <https://github.com/pybind/pybind11/pull/2265>`_ and
   `#2346 <https://github.com/pybind/pybind11/pull/2346>`_
 
+Smaller or developer focused features:
+
+* Error now thrown when ``__init__`` is forgotten on subclasses.
+  `#2152 <https://github.com/pybind/pybind11/pull/2152>`_
+
+* If ``__eq__`` defined but not ``__hash__``, ``__hash__`` is now set to
+  ``None``.
+  `#2291 <https://github.com/pybind/pybind11/pull/2291>`_
+
+* ``py::ellipsis`` now also works on Python 2
+  `#2360 <https://github.com/pybind/pybind11/pull/2360>`_
+
+* Added missing signature for ``py::array``
+  `#2363 <https://github.com/pybind/pybind11/pull/2363>`_
+
+* Bugfixes related to more extensive testing
+  `#2321 <https://github.com/pybind/pybind11/pull/2321>`_
+
+* Pointer to ``std::tuple`` & ``std::pair`` supported in cast.
+  `#2334 <https://github.com/pybind/pybind11/pull/2334>`_
+
+* Small fixes in NumPy support. ``py::array`` now uses ``py::ssize_t`` as first
+  argument type.
+  `#2293 <https://github.com/pybind/pybind11/pull/2293>`_
+
+* PyPy fixes, including support for PyPy3 and PyPy 7.
+  `#2146 <https://github.com/pybind/pybind11/pull/2146>`_
+
+* CPython 3.9 fixes.
+  `#2253 <https://github.com/pybind/pybind11/pull/2253>`_
+
+* Debug Python interpreter support.
+  `#2025 <https://github.com/pybind/pybind11/pull/2025>`_
 
 
 
diff --git a/docs/upgrade.rst b/docs/upgrade.rst
index 98285eb..7c3f1c3 100644
--- a/docs/upgrade.rst
+++ b/docs/upgrade.rst
@@ -13,6 +13,14 @@
 v2.6
 ====
 
+An error is now thrown when ``__init__`` is forgotten on subclasses. This was
+incorrect before, but was not checked. Add a call to ``__init__`` if it is
+missing.
+
+If ``__eq__`` defined but not ``__hash__``, ``__hash__`` is now set to
+``None``, as in normal CPython. You should add ``__hash__`` if you intended the
+class to be hashable, possibly using the new ``py::hash`` shortcut.
+
 CMake support:
 --------------