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:
--------------