Skip to content

Commit 7949c14

Browse files
authored
Merge pull request #830 from nicoddemus/release-3.0.0
Release 3.0.2
2 parents ccdab72 + eed37d4 commit 7949c14

16 files changed

+107
-69
lines changed

.github/workflows/main.yml

+8-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,10 @@ jobs:
4040
python: "3.8"
4141

4242
steps:
43-
- uses: actions/checkout@v2
43+
- uses: actions/checkout@v3
44+
with:
45+
# Needed to fetch tags, which are required by setuptools-scm.
46+
fetch-depth: 0
4447
- name: Set up Python
4548
uses: actions/setup-python@v2
4649
with:
@@ -62,7 +65,10 @@ jobs:
6265
needs: build
6366

6467
steps:
65-
- uses: actions/checkout@v2
68+
- uses: actions/checkout@v3
69+
with:
70+
# Needed to fetch tags, which are required by setuptools-scm.
71+
fetch-depth: 0
6672
- name: Set up Python
6773
uses: actions/setup-python@v2
6874
with:

CHANGELOG.rst

+78
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,81 @@
1+
pytest-xdist 3.0.2 (2022-10-25)
2+
===============================
3+
4+
Bug Fixes
5+
---------
6+
7+
- `#813 <https://github.com/pytest-dev/pytest-xdist/issues/813>`_: Cancel shutdown when a crashed worker is restarted.
8+
9+
10+
Deprecations
11+
------------
12+
13+
- `#825 <https://github.com/pytest-dev/pytest-xdist/issues/825>`_: The ``--rsyncdir`` command line argument and ``rsyncdirs`` config variable are deprecated.
14+
15+
The rsync feature will be removed in pytest-xdist 4.0.
16+
17+
- `#826 <https://github.com/pytest-dev/pytest-xdist/issues/826>`_: The ``--looponfail`` command line argument and ``looponfailroots`` config variable are deprecated.
18+
19+
The loop-on-fail feature will be removed in pytest-xdist 4.0.
20+
21+
22+
Improved Documentation
23+
----------------------
24+
25+
- `#791 <https://github.com/pytest-dev/pytest-xdist/issues/791>`_: Document the ``pytest_xdist_auto_num_workers`` hook.
26+
27+
- `#796 <https://github.com/pytest-dev/pytest-xdist/issues/796>`_: Added known limitations section to documentation.
28+
29+
- `#829 <https://github.com/pytest-dev/pytest-xdist/issues/829>`_: Document the ``-n logical`` option.
30+
31+
32+
Features
33+
--------
34+
35+
- `#792 <https://github.com/pytest-dev/pytest-xdist/issues/792>`_: The environment variable ``PYTEST_XDIST_AUTO_NUM_WORKERS`` can now be used to
36+
specify the default for ``-n auto`` and ``-n logical``.
37+
38+
- `#812 <https://github.com/pytest-dev/pytest-xdist/issues/812>`_: Partially restore old initial batch distribution algorithm in ``LoadScheduling``.
39+
40+
pytest orders tests for optimal sequential execution - i. e. avoiding
41+
unnecessary setup and teardown of fixtures. So executing tests in consecutive
42+
chunks is important for optimal performance.
43+
44+
In v1.14, initial test distribution in ``LoadScheduling`` was changed to
45+
round-robin, optimized for the corner case, when the number of tests is less
46+
than ``2 * number of nodes``. At the same time, it became worse for all other
47+
cases.
48+
49+
For example: if some tests use some "heavy" fixture, and these tests fit into
50+
the initial batch, with round-robin distribution the fixture will be created
51+
``min(n_tests, n_workers)`` times, no matter how many other tests there are.
52+
53+
With the old algorithm (before v1.14), if there are enough tests not using
54+
the fixture, the fixture was created only once.
55+
56+
So restore the old behavior for typical cases where the number of tests is
57+
much greater than the number of workers (or, strictly speaking, when there
58+
are at least 2 tests for every node).
59+
60+
61+
Removals
62+
--------
63+
64+
- `#468 <https://github.com/pytest-dev/pytest-xdist/issues/468>`_: The ``--boxed`` command-line option has been removed. If you still need this functionality, install `pytest-forked <https://pypi.org/project/pytest-forked>`__ separately.
65+
66+
67+
Trivial Changes
68+
---------------
69+
70+
- `#468 <https://github.com/pytest-dev/pytest-xdist/issues/468>`_: The ``py`` dependency has been dropped.
71+
72+
- `#822 <https://github.com/pytest-dev/pytest-xdist/issues/822>`_: Replace internal usage of ``py.log`` with a custom solution (but with the same interface).
73+
74+
- `#823 <https://github.com/pytest-dev/pytest-xdist/issues/823>`_: Remove usage of ``py._pydir`` as an rsync candidate.
75+
76+
- `#824 <https://github.com/pytest-dev/pytest-xdist/issues/824>`_: Replace internal usages of ``py.path.local`` by ``pathlib.Path``.
77+
78+
179
pytest-xdist 2.5.0 (2021-12-10)
280
===============================
381

changelog/468.removal.rst

-1
This file was deleted.

changelog/468.trivial.rst

-1
This file was deleted.

changelog/791.doc

-1
This file was deleted.

changelog/792.feature

-2
This file was deleted.

changelog/796.doc.rst

-1
This file was deleted.

changelog/812.feature

-21
This file was deleted.

changelog/813.bugfix

-1
This file was deleted.

changelog/822.trivial.rst

-1
This file was deleted.

changelog/823.trivial.rst

-1
This file was deleted.

changelog/824.trivial.rst

-1
This file was deleted.

changelog/826.deprecation.rst

Whitespace-only changes.

changelog/829.doc

-1
This file was deleted.

pyproject.toml

+20-34
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,23 @@ directory = "changelog/"
1616
title_format = "pytest-xdist {version} ({project_date})"
1717
template = "changelog/_template.rst"
1818

19-
[[tool.towncrier.type]]
20-
directory = "removal"
21-
name = "Removals"
22-
showcontent = true
23-
24-
[[tool.towncrier.type]]
25-
directory = "deprecation"
26-
name = "Deprecations"
27-
showcontent = true
28-
29-
[[tool.towncrier.type]]
30-
directory = "feature"
31-
name = "Features"
32-
showcontent = true
33-
34-
[[tool.towncrier.type]]
35-
directory = "bugfix"
36-
name = "Bug Fixes"
37-
showcontent = true
38-
39-
[[tool.towncrier.type]]
40-
directory = "vendor"
41-
name = "Vendored Libraries"
42-
showcontent = true
43-
44-
[[tool.towncrier.type]]
45-
directory = "doc"
46-
name = "Improved Documentation"
47-
showcontent = true
48-
49-
[[tool.towncrier.type]]
50-
directory = "trivial"
51-
name = "Trivial Changes"
52-
showcontent = true
19+
[tool.towncrier.fragment.removal]
20+
name = "Removals"
21+
22+
[tool.towncrier.fragment.deprecation]
23+
name = "Deprecations"
24+
25+
[tool.towncrier.fragment.feature]
26+
name = "Features"
27+
28+
[tool.towncrier.fragment.bugfix]
29+
name = "Bug Fixes"
30+
31+
[tool.towncrier.fragment.vendor]
32+
name = "Vendored Libraries"
33+
34+
[tool.towncrier.fragment.doc]
35+
name = "Improved Documentation"
36+
37+
[tool.towncrier.fragment.trivial]
38+
name = "Trivial Changes"

tox.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ passenv = *
4747
deps =
4848
towncrier
4949
commands =
50-
towncrier --version {posargs} --yes
50+
towncrier build --version {posargs} --yes
5151

5252
[testenv:docs]
5353
basepython = python3

0 commit comments

Comments
 (0)