diff --git a/doc/en/deprecations.rst b/doc/en/deprecations.rst
index 414e2e3f387..229bca1718b 100644
--- a/doc/en/deprecations.rst
+++ b/doc/en/deprecations.rst
@@ -49,19 +49,6 @@ Becomes:
exec("assert(1, 2)") # exec is used to avoid a top-level warning
-Internal classes accessed through ``Node``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. deprecated:: 3.9
-
-Access of ``Module``, ``Function``, ``Class``, ``Instance``, ``File`` and ``Item`` through ``Node`` instances now issue
-this warning::
-
- usage of Function.Module is deprecated, please use pytest.Module instead
-
-Users should just ``import pytest`` and access those objects using the ``pytest`` module.
-
-This has been documented as deprecated for years, but only now we are actually emitting deprecation warnings.
``cached_setup``
~~~~~~~~~~~~~~~~
@@ -138,40 +125,6 @@ Becomes:
* ``node.warn("CI", "some message")``: this code/message form is now **deprecated** and should be converted to the warning instance form above.
-``pytest_namespace``
-~~~~~~~~~~~~~~~~~~~~
-
-.. deprecated:: 3.7
-
-This hook is deprecated because it greatly complicates the pytest internals regarding configuration and initialization, making some
-bug fixes and refactorings impossible.
-
-Example of usage:
-
-.. code-block:: python
-
- class MySymbol:
- ...
-
-
- def pytest_namespace():
- return {"my_symbol": MySymbol()}
-
-
-Plugin authors relying on this hook should instead require that users now import the plugin modules directly (with an appropriate public API).
-
-As a stopgap measure, plugin authors may still inject their names into pytest's namespace, usually during ``pytest_configure``:
-
-.. code-block:: python
-
- import pytest
-
-
- def pytest_configure():
- pytest.my_symbol = MySymbol()
-
-
-
Calling fixtures directly
~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -314,12 +267,54 @@ By passing a string, users expect that pytest will interpret that command-line u
on (for example ``bash`` or ``Powershell``), but this is very hard/impossible to do in a portable way.
+``pytest_funcarg__`` prefix
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. deprecated:: 3.0
+
+In very early pytest versions fixtures could be defined using the ``pytest_funcarg__`` prefix:
+
+.. code-block:: python
+
+ def pytest_funcarg__data():
+ return SomeData()
+
+Switch over to the ``@pytest.fixture`` decorator:
+
+.. code-block:: python
+
+ @pytest.fixture
+ def data():
+ return SomeData()
+
+[pytest] section in setup.cfg files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. deprecated:: 3.0
+
+``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]``
+to avoid conflicts with other distutils commands.
+
+Result log (``--result-log``)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. deprecated:: 3.0
+
+The ``--resultlog`` command line option has been deprecated: it is little used
+and there are more modern and better alternatives, for example `pytest-tap `_.
+
+Removed Features
+----------------
+
+As stated in our :ref:`backwards-compatibility` policy, deprecated features are removed only in major releases after
+an appropriate period of deprecation has passed.
+
``yield`` tests
~~~~~~~~~~~~~~~
-.. deprecated:: 3.0
+*Removed in version 4.0.*
-pytest supports ``yield``-style tests, where a test function actually ``yield`` functions and values
+pytest supported ``yield``-style tests, where a test function actually ``yield`` functions and values
that are then turned into proper test methods. Example:
.. code-block:: python
@@ -342,48 +337,53 @@ This form of test function doesn't support fixtures properly, and users should s
def test_squared(x, y):
assert x ** x == y
+Internal classes accessed through ``Node``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-``pytest_funcarg__`` prefix
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+*Removed in version 4.0.*
-.. deprecated:: 3.0
+Access of ``Module``, ``Function``, ``Class``, ``Instance``, ``File`` and ``Item`` through ``Node`` instances now issue
+this warning::
-In very early pytest versions fixtures could be defined using the ``pytest_funcarg__`` prefix:
+ usage of Function.Module is deprecated, please use pytest.Module instead
-.. code-block:: python
+Users should just ``import pytest`` and access those objects using the ``pytest`` module.
- def pytest_funcarg__data():
- return SomeData()
+This has been documented as deprecated for years, but only now we are actually emitting deprecation warnings.
-Switch over to the ``@pytest.fixture`` decorator:
+``pytest_namespace``
+~~~~~~~~~~~~~~~~~~~~
+
+*Removed in version 4.0.*
+
+This hook is deprecated because it greatly complicates the pytest internals regarding configuration and initialization, making some
+bug fixes and refactorings impossible.
+
+Example of usage:
.. code-block:: python
- @pytest.fixture
- def data():
- return SomeData()
+ class MySymbol:
+ ...
-[pytest] section in setup.cfg files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.. deprecated:: 3.0
+ def pytest_namespace():
+ return {"my_symbol": MySymbol()}
-``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]``
-to avoid conflicts with other distutils commands.
-Result log (``--result-log``)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Plugin authors relying on this hook should instead require that users now import the plugin modules directly (with an appropriate public API).
-.. deprecated:: 3.0
+As a stopgap measure, plugin authors may still inject their names into pytest's namespace, usually during ``pytest_configure``:
-The ``--resultlog`` command line option has been deprecated: it is little used
-and there are more modern and better alternatives, for example `pytest-tap `_.
+.. code-block:: python
+
+ import pytest
+
+
+ def pytest_configure():
+ pytest.my_symbol = MySymbol()
-Removed Features
-----------------
-As stated in our :ref:`backwards-compatibility` policy, deprecated features are removed only in major releases after
-an appropriate period of deprecation has passed.
Reinterpretation mode (``--assert=reinterp``)