diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c2d680a4..7b2d4ac2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,81 @@ +pytest-xdist 3.0.0 (2022-10-24) +=============================== + +Bug Fixes +--------- + +- `#813 `_: Cancel shutdown when a crashed worker is restarted. + + +Deprecations +------------ + +- `#825 `_: The ``--rsyncdir`` command line argument and ``rsyncdirs`` config variable are deprecated. + + The rsync feature will be removed in pytest-xdist 4.0. + +- `#826 `_: The ``--looponfail`` command line argument and ``looponfailroots`` config variable are deprecated. + + The loop-on-fail feature will be removed in pytest-xdist 4.0. + + +Improved Documentation +---------------------- + +- `#791 `_: Document the ``pytest_xdist_auto_num_workers`` hook. + +- `#796 `_: Added known limitations section to documentation. + +- `#829 `_: Document the ``-n logical`` option. + + +Features +-------- + +- `#792 `_: The environment variable ``PYTEST_XDIST_AUTO_NUM_WORKERS`` can now be used to + specify the default for ``-n auto`` and ``-n logical``. + +- `#812 `_: Partially restore old initial batch distribution algorithm in ``LoadScheduling``. + + pytest orders tests for optimal sequential execution - i. e. avoiding + unnecessary setup and teardown of fixtures. So executing tests in consecutive + chunks is important for optimal performance. + + In v1.14, initial test distribution in ``LoadScheduling`` was changed to + round-robin, optimized for the corner case, when the number of tests is less + than ``2 * number of nodes``. At the same time, it became worse for all other + cases. + + For example: if some tests use some "heavy" fixture, and these tests fit into + the initial batch, with round-robin distribution the fixture will be created + ``min(n_tests, n_workers)`` times, no matter how many other tests there are. + + With the old algorithm (before v1.14), if there are enough tests not using + the fixture, the fixture was created only once. + + So restore the old behavior for typical cases where the number of tests is + much greater than the number of workers (or, strictly speaking, when there + are at least 2 tests for every node). + + +Removals +-------- + +- `#468 `_: The ``--boxed`` command-line option has been removed. If you still need this functionality, install `pytest-forked `__ separately. + + +Trivial Changes +--------------- + +- `#468 `_: The ``py`` dependency has been dropped. + +- `#822 `_: Replace internal usage of ``py.log`` with a custom solution (but with the same interface). + +- `#823 `_: Remove usage of ``py._pydir`` as an rsync candidate. + +- `#824 `_: Replace internal usages of ``py.path.local`` by ``pathlib.Path``. + + pytest-xdist 2.5.0 (2021-12-10) =============================== diff --git a/changelog/468.removal.rst b/changelog/468.removal.rst deleted file mode 100644 index c4bdfc2a..00000000 --- a/changelog/468.removal.rst +++ /dev/null @@ -1 +0,0 @@ -The ``--boxed`` command-line option has been removed. If you still need this functionality, install `pytest-forked `__ separately. diff --git a/changelog/468.trivial.rst b/changelog/468.trivial.rst deleted file mode 100644 index 51045930..00000000 --- a/changelog/468.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -The ``py`` dependency has been dropped. diff --git a/changelog/791.doc b/changelog/791.doc deleted file mode 100644 index adc3e65c..00000000 --- a/changelog/791.doc +++ /dev/null @@ -1 +0,0 @@ -Document the ``pytest_xdist_auto_num_workers`` hook. diff --git a/changelog/792.feature b/changelog/792.feature deleted file mode 100644 index a9712334..00000000 --- a/changelog/792.feature +++ /dev/null @@ -1,2 +0,0 @@ -The environment variable ``PYTEST_XDIST_AUTO_NUM_WORKERS`` can now be used to -specify the default for ``-n auto`` and ``-n logical``. diff --git a/changelog/796.doc.rst b/changelog/796.doc.rst deleted file mode 100644 index 28a10bc4..00000000 --- a/changelog/796.doc.rst +++ /dev/null @@ -1 +0,0 @@ -Added known limitations section to documentation. diff --git a/changelog/812.feature b/changelog/812.feature deleted file mode 100644 index 1d0eb0ee..00000000 --- a/changelog/812.feature +++ /dev/null @@ -1,22 +0,0 @@ -Partially restore old initial batch distribution algorithm in ``LoadScheduling``. - -pytest orders tests for optimal sequential execution - i. e. avoiding -unnecessary setup and teardown of fixtures. So executing tests in consecutive -chunks is important for optimal performance. - -In v1.14, initial test distribution in ``LoadScheduling`` was changed to -round-robin, optimized for the corner case, when the number of tests is less -than ``2 * number of nodes``. At the same time, it became worse for all other -cases. - -For example: if some tests use some "heavy" fixture, and these tests fit into -the initial batch, with round-robin distribution the fixture will be created -``min(n_tests, n_workers)`` times, no matter how many other tests there are. - -With the old algorithm (before v1.14), if there are enough tests not using -the fixture, the fixture was created only once. - -So restore the old behavior for typical cases where the number of tests is -much greater than the number of workers (or, strictly speaking, when there -are at least 2 tests for every node). - diff --git a/changelog/813.bugfix b/changelog/813.bugfix deleted file mode 100644 index 251cf4b9..00000000 --- a/changelog/813.bugfix +++ /dev/null @@ -1 +0,0 @@ -Cancel shutdown when a crashed worker is restarted. diff --git a/changelog/822.trivial.rst b/changelog/822.trivial.rst deleted file mode 100644 index 844453ad..00000000 --- a/changelog/822.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Replace internal usage of ``py.log`` with a custom solution (but with the same interface). diff --git a/changelog/823.trivial.rst b/changelog/823.trivial.rst deleted file mode 100644 index f09b4b66..00000000 --- a/changelog/823.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Remove usage of ``py._pydir`` as an rsync candidate. diff --git a/changelog/824.trivial.rst b/changelog/824.trivial.rst deleted file mode 100644 index e6c6c85b..00000000 --- a/changelog/824.trivial.rst +++ /dev/null @@ -1 +0,0 @@ -Replace internal usages of ``py.path.local`` by ``pathlib.Path``. diff --git a/changelog/825.deprecation.rst b/changelog/825.deprecation.rst deleted file mode 100644 index 46ce0e75..00000000 --- a/changelog/825.deprecation.rst +++ /dev/null @@ -1,3 +0,0 @@ -The ``--rsyncdir`` command line argument and ``rsyncdirs`` config variable are deprecated. - -The rsync feature will be removed in pytest-xdist 4.0. diff --git a/changelog/826.deprecation.rst b/changelog/826.deprecation.rst deleted file mode 100644 index 8ca1a2f5..00000000 --- a/changelog/826.deprecation.rst +++ /dev/null @@ -1,3 +0,0 @@ -The ``--looponfail`` command line argument and ``looponfailroots`` config variable are deprecated. - -The loop-on-fail feature will be removed in pytest-xdist 4.0. diff --git a/changelog/829.doc b/changelog/829.doc deleted file mode 100644 index b779bf97..00000000 --- a/changelog/829.doc +++ /dev/null @@ -1 +0,0 @@ -Document the ``-n logical`` option.