Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 3.0.2 #830

Merged
merged 8 commits into from
Oct 25, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -40,7 +40,10 @@ jobs:
python: "3.8"

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

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
# Needed to fetch tags, which are required by setuptools-scm.
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v2
with:
78 changes: 78 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,81 @@
pytest-xdist 3.0.2 (2022-10-25)
===============================

Bug Fixes
---------

- `#813 <https://github.com/pytest-dev/pytest-xdist/issues/813>`_: Cancel shutdown when a crashed worker is restarted.


Deprecations
------------

- `#825 <https://github.com/pytest-dev/pytest-xdist/issues/825>`_: The ``--rsyncdir`` command line argument and ``rsyncdirs`` config variable are deprecated.

The rsync feature will be removed in pytest-xdist 4.0.

- `#826 <https://github.com/pytest-dev/pytest-xdist/issues/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 <https://github.com/pytest-dev/pytest-xdist/issues/791>`_: Document the ``pytest_xdist_auto_num_workers`` hook.

- `#796 <https://github.com/pytest-dev/pytest-xdist/issues/796>`_: Added known limitations section to documentation.

- `#829 <https://github.com/pytest-dev/pytest-xdist/issues/829>`_: Document the ``-n logical`` option.


Features
--------

- `#792 <https://github.com/pytest-dev/pytest-xdist/issues/792>`_: The environment variable ``PYTEST_XDIST_AUTO_NUM_WORKERS`` can now be used to
specify the default for ``-n auto`` and ``-n logical``.

- `#812 <https://github.com/pytest-dev/pytest-xdist/issues/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 <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.


Trivial Changes
---------------

- `#468 <https://github.com/pytest-dev/pytest-xdist/issues/468>`_: The ``py`` dependency has been dropped.

- `#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).

- `#823 <https://github.com/pytest-dev/pytest-xdist/issues/823>`_: Remove usage of ``py._pydir`` as an rsync candidate.

- `#824 <https://github.com/pytest-dev/pytest-xdist/issues/824>`_: Replace internal usages of ``py.path.local`` by ``pathlib.Path``.


pytest-xdist 2.5.0 (2021-12-10)
===============================

1 change: 0 additions & 1 deletion changelog/468.removal.rst

This file was deleted.

1 change: 0 additions & 1 deletion changelog/468.trivial.rst

This file was deleted.

1 change: 0 additions & 1 deletion changelog/791.doc

This file was deleted.

2 changes: 0 additions & 2 deletions changelog/792.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/796.doc.rst

This file was deleted.

21 changes: 0 additions & 21 deletions changelog/812.feature

This file was deleted.

1 change: 0 additions & 1 deletion changelog/813.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion changelog/822.trivial.rst

This file was deleted.

1 change: 0 additions & 1 deletion changelog/823.trivial.rst

This file was deleted.

1 change: 0 additions & 1 deletion changelog/824.trivial.rst

This file was deleted.

Empty file removed changelog/826.deprecation.rst
Empty file.
1 change: 0 additions & 1 deletion changelog/829.doc

This file was deleted.

54 changes: 20 additions & 34 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -16,37 +16,23 @@ directory = "changelog/"
title_format = "pytest-xdist {version} ({project_date})"
template = "changelog/_template.rst"

[[tool.towncrier.type]]
directory = "removal"
name = "Removals"
showcontent = true

[[tool.towncrier.type]]
directory = "deprecation"
name = "Deprecations"
showcontent = true

[[tool.towncrier.type]]
directory = "feature"
name = "Features"
showcontent = true

[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug Fixes"
showcontent = true

[[tool.towncrier.type]]
directory = "vendor"
name = "Vendored Libraries"
showcontent = true

[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true

[[tool.towncrier.type]]
directory = "trivial"
name = "Trivial Changes"
showcontent = true
[tool.towncrier.fragment.removal]
name = "Removals"

[tool.towncrier.fragment.deprecation]
name = "Deprecations"

[tool.towncrier.fragment.feature]
name = "Features"

[tool.towncrier.fragment.bugfix]
name = "Bug Fixes"

[tool.towncrier.fragment.vendor]
name = "Vendored Libraries"

[tool.towncrier.fragment.doc]
name = "Improved Documentation"

[tool.towncrier.fragment.trivial]
name = "Trivial Changes"
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -47,7 +47,7 @@ passenv = *
deps =
towncrier
commands =
towncrier --version {posargs} --yes
towncrier build --version {posargs} --yes

[testenv:docs]
basepython = python3