Changelog
### 21.0.1
```
===================
Bug Fixes
---------
- commands: debug: Use packaging.version.parse to compare between versions. (`9461 <https://github.com/pypa/pip/issues/9461>`_)
- New resolver: Download and prepare a distribution only at the last possible
moment to avoid unnecessary network access when the same version is already
installed locally. (`9516 <https://github.com/pypa/pip/issues/9516>`_)
Vendored Libraries
------------------
- Upgrade packaging to 20.9
```
### 21.0
```
=================
Deprecations and Removals
-------------------------
- Drop support for Python 2. (`6148 <https://github.com/pypa/pip/issues/6148>`_)
- Remove support for legacy wheel cache entries that were created with pip
versions older than 20.0. (`7502 <https://github.com/pypa/pip/issues/7502>`_)
- Remove support for VCS pseudo URLs editable requirements. It was emitting
deprecation warning since version 20.0. (`7554 <https://github.com/pypa/pip/issues/7554>`_)
- Modernise the codebase after Python 2. (`8802 <https://github.com/pypa/pip/issues/8802>`_)
- Drop support for Python 3.5. (`9189 <https://github.com/pypa/pip/issues/9189>`_)
- Remove the VCS export feature that was used only with editable VCS
requirements and had correctness issues. (`9338 <https://github.com/pypa/pip/issues/9338>`_)
Features
--------
- Add ``--ignore-requires-python`` support to pip download. (`1884 <https://github.com/pypa/pip/issues/1884>`_)
- New resolver: Error message shown when a wheel contains inconsistent metadata
is made more helpful by including both values from the file name and internal
metadata. (`9186 <https://github.com/pypa/pip/issues/9186>`_)
Bug Fixes
---------
- Fix a regression that made ``pip wheel`` do a VCS export instead of a VCS clone
for editable requirements. This broke VCS requirements that need the VCS
information to build correctly. (`9273 <https://github.com/pypa/pip/issues/9273>`_)
- Fix ``pip download`` of editable VCS requirements that need VCS information
to build correctly. (`9337 <https://github.com/pypa/pip/issues/9337>`_)
Vendored Libraries
------------------
- Upgrade msgpack to 1.0.2.
- Upgrade requests to 2.25.1.
Improved Documentation
----------------------
- Render the unreleased pip version change notes on the news page in docs. (`9172 <https://github.com/pypa/pip/issues/9172>`_)
- Fix broken email link in docs feedback banners. (`9343 <https://github.com/pypa/pip/issues/9343>`_)
.. note
You should *NOT* be adding new change log entries to this file, this
file is managed by towncrier. You *may* edit previous change logs to
fix problems like typo corrections or such.
To add a new change log entry, please see
https://pip.pypa.io/en/latest/development/contributing/#news-entries
.. towncrier release notes start
```
### 20.3.4
```
===================
Features
--------
- ``pip wheel`` now verifies the built wheel contains valid metadata, and can be
installed by a subsequent ``pip install``. This can be disabled with
``--no-verify``. (`9206 <https://github.com/pypa/pip/issues/9206>`_)
- Improve presentation of XMLRPC errors in pip search. (`9315 <https://github.com/pypa/pip/issues/9315>`_)
Bug Fixes
---------
- Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data
on stderr. Restored logging of VCS errors that was inadvertently removed in pip
20.2. (`8876 <https://github.com/pypa/pip/issues/8876>`_)
- Fix error when an existing incompatibility is unable to be applied to a backtracked state. (`9180 <https://github.com/pypa/pip/issues/9180>`_)
- New resolver: Discard a faulty distribution, instead of quitting outright.
This implementation is taken from 20.2.2, with a fix that always makes the
resolver iterate through candidates from indexes lazily, to avoid downloading
candidates we do not need. (`9203 <https://github.com/pypa/pip/issues/9203>`_)
- New resolver: Discard a source distribution if it fails to generate metadata,
instead of quitting outright. This implementation is taken from 20.2.2, with a
fix that always makes the resolver iterate through candidates from indexes
lazily, to avoid downloading candidates we do not need. (`9246 <https://github.com/pypa/pip/issues/9246>`_)
Vendored Libraries
------------------
- Upgrade resolvelib to 0.5.4.
```
### 20.3.3
```
===================
Bug Fixes
---------
- Revert "Skip candidate not providing valid metadata", as that caused pip to be overeager about downloading from the package index. (`9264 <https://github.com/pypa/pip/issues/9264>`_)
```
### 20.3.2
```
===================
Features
--------
- New resolver: Resolve direct and pinned (``==`` or ``===``) requirements first
to improve resolver performance. (`9185 <https://github.com/pypa/pip/issues/9185>`_)
- Add a mechanism to delay resolving certain packages, and use it for setuptools. (`9249 <https://github.com/pypa/pip/issues/9249>`_)
Bug Fixes
---------
- New resolver: The "Requirement already satisfied" log is not printed only once
for each package during resolution. (`9117 <https://github.com/pypa/pip/issues/9117>`_)
- Fix crash when logic for redacting authentication information from URLs
in ``--help`` is given a list of strings, instead of a single string. (`9191 <https://github.com/pypa/pip/issues/9191>`_)
- New resolver: Correctly implement PEP 592. Do not return yanked versions from
an index, unless the version range can only be satisfied by yanked candidates. (`9203 <https://github.com/pypa/pip/issues/9203>`_)
- New resolver: Make constraints also apply to package variants with extras, so
the resolver correctly avoids backtracking on them. (`9232 <https://github.com/pypa/pip/issues/9232>`_)
- New resolver: Discard a candidate if it fails to provide metadata from source,
or if the provided metadata is inconsistent, instead of quitting outright. (`9246 <https://github.com/pypa/pip/issues/9246>`_)
Vendored Libraries
------------------
- Update vendoring to 20.8
Improved Documentation
----------------------
- Update documentation to reflect that pip still uses legacy resolver by default in Python 2 environments. (`9269 <https://github.com/pypa/pip/issues/9269>`_)
```
### 20.3.1
```
===================
Deprecations and Removals
-------------------------
- The --build-dir option has been restored as a no-op, to soften the transition
for tools that still used it. (`9193 <https://github.com/pypa/pip/issues/9193>`_)
```
### 20.3
```
- Introduce a new ResolutionImpossible error, raised when pip encounters un-satisfiable dependency conflicts (`8546 <https://github.com/pypa/pip/issues/8546>`_, `#8377 <https://github.com/pypa/pip/issues/8377>`_)
- Add a subcommand ``debug`` to ``pip config`` to list available configuration sources and the key-value pairs defined in them. (`6741 <https://github.com/pypa/pip/issues/6741>`_)
- Warn if index pages have unexpected content-type (`6754 <https://github.com/pypa/pip/issues/6754>`_)
- Allow specifying ``--prefer-binary`` option in a requirements file (`7693 <https://github.com/pypa/pip/issues/7693>`_)
- Generate PEP 376 REQUESTED metadata for user supplied requirements installed
by pip. (`7811 <https://github.com/pypa/pip/issues/7811>`_)
- Warn if package url is a vcs or an archive url with invalid scheme (`8128 <https://github.com/pypa/pip/issues/8128>`_)
- Parallelize network operations in ``pip list``. (`8504 <https://github.com/pypa/pip/issues/8504>`_)
- Allow the new resolver to obtain dependency information through wheels
lazily downloaded using HTTP range requests. To enable this feature,
invoke ``pip`` with ``--use-feature=fast-deps``. (`8588 <https://github.com/pypa/pip/issues/8588>`_)
- Support ``--use-feature`` in requirements files (`8601 <https://github.com/pypa/pip/issues/8601>`_)
Bug Fixes
---------
- Use canonical package names while looking up already installed packages. (`5021 <https://github.com/pypa/pip/issues/5021>`_)
- Fix normalizing path on Windows when installing package on another logical disk. (`7625 <https://github.com/pypa/pip/issues/7625>`_)
- The VCS commands run by pip as subprocesses don't merge stdout and stderr anymore, improving the output parsing by subsequent commands. (`7968 <https://github.com/pypa/pip/issues/7968>`_)
- Correctly treat non-ASCII entry point declarations in wheels so they can be
installed on Windows. (`8342 <https://github.com/pypa/pip/issues/8342>`_)
- Update author email in config and tests to reflect decommissioning of pypa-dev list. (`8454 <https://github.com/pypa/pip/issues/8454>`_)
- Headers provided by wheels in .data directories are now correctly installed
into the user-provided locations, such as ``--prefix``, instead of the virtual
environment pip is running in. (`8521 <https://github.com/pypa/pip/issues/8521>`_)
Vendored Libraries
------------------
- Vendored htmlib5 no longer imports deprecated xml.etree.cElementTree on Python 3.
- Upgrade appdirs to 1.4.4
- Upgrade certifi to 2020.6.20
- Upgrade distlib to 0.3.1
- Upgrade html5lib to 1.1
- Upgrade idna to 2.10
- Upgrade packaging to 20.4
- Upgrade requests to 2.24.0
- Upgrade six to 1.15.0
- Upgrade toml to 0.10.1
- Upgrade urllib3 to 1.25.9
Improved Documentation
----------------------
- Add ``--no-input`` option to pip docs (`7688 <https://github.com/pypa/pip/issues/7688>`_)
- List of options supported in requirements file are extracted from source of truth,
instead of being maintained manually. (`7908 <https://github.com/pypa/pip/issues/7908>`_)
- Fix pip config docstring so that the subcommands render correctly in the docs (`8072 <https://github.com/pypa/pip/issues/8072>`_)
- replace links to the old pypa-dev mailing list with https://mail.python.org/mailman3/lists/distutils-sig.python.org/ (`#8353 <https://github.com/pypa/pip/issues/8353>`_)
- Fix example for defining multiple values for options which support them (`8373 <https://github.com/pypa/pip/issues/8373>`_)
- Add documentation for the ResolutionImpossible error that helps the user fix dependency conflicts (`8459 <https://github.com/pypa/pip/issues/8459>`_)
- Add feature flags to docs (`8512 <https://github.com/pypa/pip/issues/8512>`_)
- Document how to install package extras from git branch and source distributions. (`8576 <https://github.com/pypa/pip/issues/8576>`_)
```
### 20.3b1
```
===================
Deprecations and Removals
-------------------------
- ``pip freeze`` will stop filtering the ``pip``, ``setuptools``, ``distribute`` and ``wheel`` packages from ``pip freeze`` output in a future version.
To keep the previous behavior, users should use the new ``--exclude`` option. (`4256 <https://github.com/pypa/pip/issues/4256>`_)
- Deprecate support for Python 3.5 (`8181 <https://github.com/pypa/pip/issues/8181>`_)
- Document that certain removals can be fast tracked. (`8417 <https://github.com/pypa/pip/issues/8417>`_)
- Document that Python versions are generally supported until PyPI usage falls below 5%. (`8927 <https://github.com/pypa/pip/issues/8927>`_)
- Deprecate ``--find-links`` option in ``pip freeze`` (`9069 <https://github.com/pypa/pip/issues/9069>`_)
Features
--------
- Add ``--exclude`` option to ``pip freeze`` and ``pip list`` commands to explicitly exclude packages from the output. (`4256 <https://github.com/pypa/pip/issues/4256>`_)
- Allow multiple values for --abi and --platform. (`6121 <https://github.com/pypa/pip/issues/6121>`_)
- Add option ``--format`` to subcommand ``list`` of ``pip cache``, with ``abspath`` choice to output the full path of a wheel file. (`8355 <https://github.com/pypa/pip/issues/8355>`_)
- Improve error message friendliness when an environment has packages with
corrupted metadata. (`8676 <https://github.com/pypa/pip/issues/8676>`_)
- Make the ``setup.py install`` deprecation warning less noisy. We warn only
when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
situations where both fails are most probably irrelevant to this deprecation. (`8752 <https://github.com/pypa/pip/issues/8752>`_)
- Check the download directory for existing wheels to possibly avoid
fetching metadata when the ``fast-deps`` feature is used with
``pip wheel`` and ``pip download``. (`8804 <https://github.com/pypa/pip/issues/8804>`_)
- When installing a git URL that refers to a commit that is not available locally
after git clone, attempt to fetch it from the remote. (`8815 <https://github.com/pypa/pip/issues/8815>`_)
- Include http subdirectory in ``pip cache info`` and ``pip cache purge`` commands. (`8892 <https://github.com/pypa/pip/issues/8892>`_)
- Cache package listings on index packages so they are guarenteed to stay stable
during a pip command session. This also improves performance when a index page
is accessed multiple times during the command session. (`8905 <https://github.com/pypa/pip/issues/8905>`_)
- New resolver: Tweak resolution logic to improve user experience when
user-supplied requirements conflict. (`8924 <https://github.com/pypa/pip/issues/8924>`_)
- Support Python 3.9. (`8971 <https://github.com/pypa/pip/issues/8971>`_)
- Log an informational message when backtracking takes multiple rounds on a specific package. (`8975 <https://github.com/pypa/pip/issues/8975>`_)
- Switch to the new dependency resolver by default. (`9019 <https://github.com/pypa/pip/issues/9019>`_)
- Remove the ``--build-dir`` option, as per the deprecation. (`9049 <https://github.com/pypa/pip/issues/9049>`_)
Bug Fixes
---------
- Propagate ``--extra-index-url`` from requirements file properly to session auth,
so that keyring auth will work as expected. (`8103 <https://github.com/pypa/pip/issues/8103>`_)
- Allow specifying verbosity and quiet level via configuration files
and environment variables. Previously these options were treated as
boolean values when read from there while through CLI the level can be
specified. (`8578 <https://github.com/pypa/pip/issues/8578>`_)
- Only converts Windows path to unicode on Python 2 to avoid regressions when a
POSIX environment does not configure the file system encoding correctly. (`8658 <https://github.com/pypa/pip/issues/8658>`_)
- List downloaded distributions before exiting ``pip download``
when using the new resolver to make the behavior the same as
that on the legacy resolver. (`8696 <https://github.com/pypa/pip/issues/8696>`_)
- New resolver: Pick up hash declarations in constraints files and use them to
filter available distributions. (`8792 <https://github.com/pypa/pip/issues/8792>`_)
- Avoid polluting the destination directory by resolution artifacts
when the new resolver is used for ``pip download`` or ``pip wheel``. (`8827 <https://github.com/pypa/pip/issues/8827>`_)
- New resolver: If a package appears multiple times in user specification with
different ``--hash`` options, only hashes that present in all specifications
should be allowed. (`8839 <https://github.com/pypa/pip/issues/8839>`_)
- Tweak the output during dependency resolution in the new resolver. (`8861 <https://github.com/pypa/pip/issues/8861>`_)
- Correctly search for installed distributions in new resolver logic in order
to not miss packages (virtualenv packages from system-wide-packages for example) (`8963 <https://github.com/pypa/pip/issues/8963>`_)
- Do not fail in pip freeze when encountering a ``direct_url.json`` metadata file
with editable=True. Render it as a non-editable ``file://`` URL until modern
editable installs are standardized and supported. (`8996 <https://github.com/pypa/pip/issues/8996>`_)
Vendored Libraries
------------------
- Fix devendoring instructions to explicitly state that ``vendor.txt`` should not be removed.
It is mandatory for ``pip debug`` command.
Improved Documentation
----------------------
- Add documentation for '.netrc' support. (`7231 <https://github.com/pypa/pip/issues/7231>`_)
- Add OS tabs for OS-specific commands. (`7311 <https://github.com/pypa/pip/issues/7311>`_)
- Add note and example on keyring support for index basic-auth (`8636 <https://github.com/pypa/pip/issues/8636>`_)
- Added initial UX feedback widgets to docs. (`8783 <https://github.com/pypa/pip/issues/8783>`_, `#8848 <https://github.com/pypa/pip/issues/8848>`_)
- Add ux documentation (`8807 <https://github.com/pypa/pip/issues/8807>`_)
- Update user docs to reflect new resolver as default in 20.3. (`9044 <https://github.com/pypa/pip/issues/9044>`_)
- Improve migration guide to reflect changes in new resolver behavior. (`9056 <https://github.com/pypa/pip/issues/9056>`_)
```
### 20.2.4
```
===================
Deprecations and Removals
-------------------------
- Document that certain removals can be fast tracked. (`8417 <https://github.com/pypa/pip/issues/8417>`_)
- Document that Python versions are generally supported until PyPI usage falls below 5%. (`8927 <https://github.com/pypa/pip/issues/8927>`_)
Features
--------
- New resolver: Avoid accessing indexes when the installed candidate is preferred
and considered good enough. (`8023 <https://github.com/pypa/pip/issues/8023>`_)
- Improve error message friendliness when an environment has packages with
corrupted metadata. (`8676 <https://github.com/pypa/pip/issues/8676>`_)
- Cache package listings on index packages so they are guarenteed to stay stable
during a pip command session. This also improves performance when a index page
is accessed multiple times during the command session. (`8905 <https://github.com/pypa/pip/issues/8905>`_)
- New resolver: Tweak resolution logic to improve user experience when
user-supplied requirements conflict. (`8924 <https://github.com/pypa/pip/issues/8924>`_)
Bug Fixes
---------
- New resolver: Correctly respect ``Requires-Python`` metadata to reject
incompatible packages in ``--no-deps`` mode. (`8758 <https://github.com/pypa/pip/issues/8758>`_)
- New resolver: Pick up hash declarations in constraints files and use them to
filter available distributions. (`8792 <https://github.com/pypa/pip/issues/8792>`_)
- New resolver: If a package appears multiple times in user specification with
different ``--hash`` options, only hashes that present in all specifications
should be allowed. (`8839 <https://github.com/pypa/pip/issues/8839>`_)
Improved Documentation
----------------------
- Add ux documentation (`8807 <https://github.com/pypa/pip/issues/8807>`_)
```
### 20.2.3
```
===================
Deprecations and Removals
-------------------------
- Deprecate support for Python 3.5 (`8181 <https://github.com/pypa/pip/issues/8181>`_)
Features
--------
- Make the ``setup.py install`` deprecation warning less noisy. We warn only
when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
situations where both fails are most probably irrelevant to this deprecation. (`8752 <https://github.com/pypa/pip/issues/8752>`_)
```
Links
- PyPI: https://pypi.org/project/pip
- Changelog: https://pyup.io/changelogs/pip/
- Homepage: https://pip.pypa.io/
Changelog
### 0.36.2
```
- Updated vendored ``packaging`` library to v20.8
- Fixed wheel sdist missing ``LICENSE.txt``
- Don't use default ``macos/arm64`` deployment target in calculating the
platform tag for fat binaries (PR by Ronald Oussoren)
```
### 0.36.1
```
- Fixed ``AssertionError`` when ``MACOSX_DEPLOYMENT_TARGET`` was set to ``11``
(PR by Grzegorz Bokota and François-Xavier Coudert)
- Fixed regression introduced in 0.36.0 on Python 2.7 when a custom generator
name was passed as unicode (Scikit-build)
(``TypeError: 'unicode' does not have the buffer interface``)
```
### 0.36.0
```
- Added official Python 3.9 support
- Updated vendored ``packaging`` library to v20.7
- Switched to always using LF as line separator when generating ``WHEEL`` files
(on Windows, CRLF was being used instead)
- The ABI tag is taken from the sysconfig SOABI value. On PyPy the SOABI value
is ``pypy37-pp73`` which is not compliant with PEP 3149, as it should have
both the API tag and the platform tag. This change future-proofs any change
in PyPy's SOABI tag to make sure only the ABI tag is used by wheel.
- Fixed regression and test for ``bdist_wheel --plat-name``. It was ignored for
C extensions in v0.35, but the regression was not detected by tests.
```
Links
- PyPI: https://pypi.org/project/wheel
- Changelog: https://pyup.io/changelogs/wheel/
- Repo: https://github.com/pypa/wheel
Changelog
### 1.0.2
```
~~~~~
202x-xx-xx • `full history <https://github.com/gorakhargosh/watchdog/compare/v1.0.1...master>`__
- [mac] Fix missing ``event_id`` attribute in ``fsevents`` (`721 <https://github.com/gorakhargosh/watchdog/pull/721>`_)
- [mac] Add compatibility with old macOS versions (`733` <https://github.com/gorakhargosh/watchdog/pull/733>`_)
- Thanks to our beloved contributors: SamSchott, CCP-Aporia
```
### 1.0.1
```
~~~~~
2020-12-10 • Fix version with good metadatas.
```
### 1.0.0
```
~~~~~
2020-12-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.4...v1.0.0>`__
- Versioning is now following the `semver <https://semver.org/>`_
- Drop support for Python 2.7, 3.4 and 3.5
- [mac] Regression fixes for native ``fsevents`` (`717 <https://github.com/gorakhargosh/watchdog/pull/717>`_)
- [windows] ``winapi.BUFFER_SIZE`` now defaults to ``64000`` (instead of ``2048``) (`700 <https://github.com/gorakhargosh/watchdog/pull/700>`_)
- [windows] Introduced ``winapi.PATH_BUFFER_SIZE`` (defaults to ``2048``) to keep the old behavior with path-realted functions (`700 <https://github.com/gorakhargosh/watchdog/pull/700>`_)
- Use ``pathlib`` from the standard library, instead of pathtools (`556 <https://github.com/gorakhargosh/watchdog/pull/556>`_)
- Allow file paths on Unix that don't follow the file system encoding (`703 <https://github.com/gorakhargosh/watchdog/pull/703>`_)
- Removed the long-time deprecated ``events.LoggingFileSystemEventHandler`` class, use ``LoggingEventHandler`` instead
- Thanks to our beloved contributors: SamSchott, bstaletic, BoboTiG, CCP-Aporia
```
### 0.10.4
```
~~~~~~
2020-11-21 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.3...v0.10.4>`__
- Add ``logger`` parameter for the ``LoggingEventHandler`` (`676 <https://github.com/gorakhargosh/watchdog/pull/676>`_)
- Replace mutable default arguments with ``if None`` implementation (`677 <https://github.com/gorakhargosh/watchdog/pull/677>`_)
- Expand tests to Python 2.7 and 3.5-3.10 for GNU/Linux, macOS and Windows
- [mac] Performance improvements for the ``fsevents`` module (`680 <https://github.com/gorakhargosh/watchdog/pull/680>`_)
- [mac] Prevent compilation of ``watchdog_fsevents.c`` on non-macOS machines (`687 <https://github.com/gorakhargosh/watchdog/pull/687>`_)
- [watchmedo] Handle shutdown events from ``SIGTERM`` and ``SIGINT`` more reliably (`693 <https://github.com/gorakhargosh/watchdog/pull/693>`_)
- Thanks to our beloved contributors: Sraw, CCP-Aporia, BoboTiG, maybe-sybr
```
Links
- PyPI: https://pypi.org/project/watchdog
- Changelog: https://pyup.io/changelogs/watchdog/
- Repo: http://github.com/gorakhargosh/watchdog
- Docs: https://pythonhosted.org/watchdog/
Changelog
### 3.8.4
```
-------------------
You can view the `3.8.4 milestone`_ on GitLab for more details.
Bugs Fixed
~~~~~~~~~~
- Fix multiprocessing errors on platforms without ``sem_open`` syscall. (See
also `GitLab!448`_)
- Fix skipping of physical checks on the last line of a file which does not
end in a newline (See also `GitLab!451`_)
.. all links
.. _3.8.4 milestone:
https://gitlab.com/pycqa/flake8/-/milestones/37
.. merge request links
.. _GitLab!448:
https://gitlab.com/pycqa/flake8/merge_requests/448
.. _GitLab!451:
https://gitlab.com/pycqa/flake8/merge_requests/451
```
Links
- PyPI: https://pypi.org/project/flake8
- Changelog: https://pyup.io/changelogs/flake8/
- Repo: https://gitlab.com/pycqa/flake8
Changelog
### 5.4
```
--------------------------
- The text report produced by ``coverage report`` now always outputs a TOTAL
line, even if only one Python file is reported. This makes regex parsing
of the output easier. Thanks, Judson Neer. This had been requested a number
of times (`issue 1086`_, `issue 922`_, `issue 732`_).
- The ``skip_covered`` and ``skip_empty`` settings in the configuration file
can now be specified in the ``[html]`` section, so that text reports and HTML
reports can use separate settings. The HTML report will still use the
``[report]`` settings if there isn't a value in the ``[html]`` section.
Closes `issue 1090`_.
- Combining files on Windows across drives how works properly, fixing `issue
577`_. Thanks, `Valentine Lab <pr1080_>`_.
- Fix an obscure warning from deep in the _decimal module, as reported in
`issue 1084`_.
- Update to support Python 3.10 alphas in progress, including `PEP 626: Precise
line numbers for debugging and other tools <pep626_>`_.
.. _issue 577: https://github.com/nedbat/coveragepy/issues/577
.. _issue 732: https://github.com/nedbat/coveragepy/issues/732
.. _issue 922: https://github.com/nedbat/coveragepy/issues/922
.. _issue 1084: https://github.com/nedbat/coveragepy/issues/1084
.. _issue 1086: https://github.com/nedbat/coveragepy/issues/1086
.. _issue 1090: https://github.com/nedbat/coveragepy/issues/1090
.. _pr1080: https://github.com/nedbat/coveragepy/pull/1080
.. _pep626: https://www.python.org/dev/peps/pep-0626/
.. _changes_531:
```
### 5.3.1
```
----------------------------
- When using ``--source`` on a large source tree, v5.x was slower than previous
versions. This performance regression is now fixed, closing `issue 1037`_.
- Mysterious SQLite errors can happen on PyPy, as reported in `issue 1010`_. An
immediate retry seems to fix the problem, although it is an unsatisfying
solution.
- The HTML report now saves the sort order in a more widely supported way,
fixing `issue 986`_. Thanks, Sebastián Ramírez (`pull request 1066`_).
- The HTML report pages now have a :ref:`Sleepy Snake <sleepy>` favicon.
- Wheels are now provided for manylinux2010, and for PyPy3 (pp36 and pp37).
- Continuous integration has moved from Travis and AppVeyor to GitHub Actions.
.. _issue 986: https://github.com/nedbat/coveragepy/issues/986
.. _issue 1037: https://github.com/nedbat/coveragepy/issues/1037
.. _issue 1010: https://github.com/nedbat/coveragepy/issues/1010
.. _pull request 1066: https://github.com/nedbat/coveragepy/pull/1066
.. _changes_53:
```
### 5.3
```
--------------------------
- The ``source`` setting has always been interpreted as either a file path or a
module, depending on which existed. If both interpretations were valid, it
was assumed to be a file path. The new ``source_pkgs`` setting can be used
to name a package to disambiguate this case. Thanks, Thomas Grainger. Fixes
`issue 268`_.
- If a plugin was disabled due to an exception, we used to still try to record
its information, causing an exception, as reported in `issue 1011`_. This is
now fixed.
.. _issue 268: https://github.com/nedbat/coveragepy/issues/268
.. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011
.. _changes_521:
```
Links
- PyPI: https://pypi.org/project/coverage
- Changelog: https://pyup.io/changelogs/coverage/
- Repo: https://github.com/nedbat/coveragepy
Changelog
### 3.21.3
```
--------------------
Bugfixes
^^^^^^^^
- Fix a killed tox (via SIGTERM) leaving the commands subprocesses running
by handling it as if it were a KeyboardInterrupt - by :user:`dajose`
`1772 <https://github.com/tox-dev/tox/issues/1772>`_
```
### 3.21.2
```
--------------------
Bugfixes
^^^^^^^^
- Newer coverage tools update the ``COV_CORE_CONTEXT`` environment variable, add it to the list of environment variables
that can change in our pytest plugin - by :user:`gaborbernat`.
`1854 <https://github.com/tox-dev/tox/issues/1854>`_
```
### 3.21.1
```
--------------------
Bugfixes
^^^^^^^^
- Fix regression that broke using install_command in config replacements - by :user:`jayvdb`
`1777 <https://github.com/tox-dev/tox/issues/1777>`_
- Fix regression parsing posargs default containing colon. - by :user:`jayvdb`
`1785 <https://github.com/tox-dev/tox/issues/1785>`_
Features
^^^^^^^^
- Prevent .tox in envlist - by :user:`jayvdb`
`1684 <https://github.com/tox-dev/tox/issues/1684>`_
Miscellaneous
^^^^^^^^^^^^^
- Enable building tox with ``setuptools_scm`` 4 and 5 by :user:`hroncok`
`1799 <https://github.com/tox-dev/tox/issues/1799>`_
```
### 3.21.0
```
--------------------
Bugfixes
^^^^^^^^
- Fix the false ``congratulations`` message that appears when a ``KeyboardInterrupt`` occurs during package installation. - by :user:`gnikonorov`
`1453 <https://github.com/tox-dev/tox/issues/1453>`_
- Fix ``platform`` support for ``install_command``. - by :user:`jayvdb`
`1464 <https://github.com/tox-dev/tox/issues/1464>`_
- Fixed regression in v3.20.0 that caused escaped curly braces in setenv
to break usage of the variable elsewhere in tox.ini. - by :user:`jayvdb`
`1690 <https://github.com/tox-dev/tox/issues/1690>`_
- Prevent ``{}`` and require ``{:`` is only followed by ``}``. - by :user:`jayvdb`
`1711 <https://github.com/tox-dev/tox/issues/1711>`_
- Raise ``MissingSubstitution`` on access of broken ini setting. - by :user:`jayvdb`
`1716 <https://github.com/tox-dev/tox/issues/1716>`_
Features
^^^^^^^^
- Allow \{ and \} in default of {env:key:default}. - by :user:`jayvdb`
`1502 <https://github.com/tox-dev/tox/issues/1502>`_
- Allow {posargs} in setenv. - by :user:`jayvdb`
`1695 <https://github.com/tox-dev/tox/issues/1695>`_
- Allow {/} to refer to os.sep. - by :user:`jayvdb`
`1700 <https://github.com/tox-dev/tox/issues/1700>`_
- Make parsing [testenv] sections in setup.cfg official. - by :user:`mauvilsa`
`1727 <https://github.com/tox-dev/tox/issues/1727>`_
- Relax importlib requirement to allow 3.0.0 or any newer version - by
:user:`pkolbus`
`1763 <https://github.com/tox-dev/tox/issues/1763>`_
Documentation
^^^^^^^^^^^^^
- Document more info about using ``platform`` setting. - by :user:`prakhargurunani`
`1144 <https://github.com/tox-dev/tox/issues/1144>`_
- Replace ``indexserver`` in documentation with environment variables - by :user:`ziima`.
`1357 <https://github.com/tox-dev/tox/issues/1357>`_
- Document that the ``passenv`` environment setting is case insensitive. - by :user:`gnikonorov`
`1534 <https://github.com/tox-dev/tox/issues/1534>`_
```
### 3.20.1
```
--------------------
Bugfixes
^^^^^^^^
- Relax importlib requirement to allow version<3 - by :user:`usamasadiq`
`1682 <https://github.com/tox-dev/tox/issues/1682>`_
```
Links
- PyPI: https://pypi.org/project/tox
- Changelog: https://pyup.io/changelogs/tox/
- Docs: http://tox.readthedocs.org
Changelog
### 3.4.3
```
=====================================
Bugs fixed
----------
* 8655: autodoc: Failed to generate document if target module contains an
object that raises an exception on ``hasattr()``
```
### 3.4.2
```
=====================================
Bugs fixed
----------
* 8164: autodoc: Classes that inherit mocked class are not documented
* 8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the
non-datadescriptors unexpectedly
* 8616: autodoc: AttributeError is raised on non-class object is passed to
autoclass directive
```
### 3.4.1
```
=====================================
Bugs fixed
----------
* 8559: autodoc: AttributeError is raised when using forward-reference type
annotations
* 8568: autodoc: TypeError is raised on checking slots attribute
* 8567: autodoc: Instance attributes are incorrectly added to Parent class
* 8566: autodoc: The ``autodoc-process-docstring`` event is emitted to the
alias classes unexpectedly
* 8583: autodoc: Unnecessary object comparision via ``__eq__`` method
* 8565: linkcheck: Fix PriorityQueue crash when link tuples are not
comparable
```
### 3.4.0
```
=====================================
Incompatible changes
--------------------
* 8105: autodoc: the signature of class constructor will be shown for decorated
classes, not a signature of decorator
Deprecated
----------
* The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()``
* The ``no_docstring`` argument of
``sphinx.ext.autodoc.Documenter.add_content()``
* ``sphinx.ext.autodoc.Documenter.get_object_members()``
* ``sphinx.ext.autodoc.DataDeclarationDocumenter``
* ``sphinx.ext.autodoc.GenericAliasDocumenter``
* ``sphinx.ext.autodoc.InstanceAttributeDocumenter``
* ``sphinx.ext.autodoc.SlotsAttributeDocumenter``
* ``sphinx.ext.autodoc.TypeVarDocumenter``
* ``sphinx.ext.autodoc.importer._getannotations()``
* ``sphinx.ext.autodoc.importer._getmro()``
* ``sphinx.pycode.ModuleAnalyzer.parse()``
* ``sphinx.util.osutil.movefile()``
* ``sphinx.util.requests.is_ssl_error()``
Features added
--------------
* 8119: autodoc: Allow to determine whether a member not included in
``__all__`` attribute of the module should be documented or not via
:event:`autodoc-skip-member` event
* 8219: autodoc: Parameters for generic class are not shown when super class is
a generic class and show-inheritance option is given (in Python 3.7 or above)
* autodoc: Add ``Documenter.config`` as a shortcut to access the config object
* autodoc: Add Optional[t] to annotation of function and method if a default
value equal to None is set.
* 8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and
:rst:dir:`autodata` directive to suppress the default value of the variable
* 8460: autodoc: Support custom types defined by typing.NewType
* 8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints
on source code automatically if any type is specified in docstring
* 8236: napoleon: Support numpydoc's "Receives" section
* 6914: Add a new event :event:`warn-missing-reference` to custom warning
messages when failed to resolve a cross-reference
* 6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference
* 6629: linkcheck: The builder now handles rate limits. See
:confval:`linkcheck_retry_on_rate_limit` for details.
Bugs fixed
----------
* 7613: autodoc: autodoc does not respect __signature__ of the class
* 4606: autodoc: the location of the warning is incorrect for inherited method
* 8105: autodoc: the signature of class constructor is incorrect if the class
is decorated
* 8434: autodoc: :confval:`autodoc_type_aliases` does not effect to variables
and attributes
* 8443: autodoc: autodata directive can't create document for PEP-526 based
type annotated variables
* 8443: autodoc: autoattribute directive can't create document for PEP-526
based uninitalized variables
* 8480: autodoc: autoattribute could not create document for __slots__
attributes
* 8503: autodoc: autoattribute could not create document for a GenericAlias as
class attributes correctly
* 8534: autodoc: autoattribute could not create document for a commented
attribute in alias class
* 8452: autodoc: autodoc_type_aliases doesn't work when autodoc_typehints is
set to "description"
* 8541: autodoc: autodoc_type_aliases doesn't work for the type annotation to
instance attributes
* 8460: autodoc: autodata and autoattribute directives do not display type
information of TypeVars
* 8493: autodoc: references to builtins not working in class aliases
* 8522: autodoc: ``__bool__`` method could be called
* 8067: autodoc: A typehint for the instance variable having type_comment on
super class is not displayed
* 8545: autodoc: a __slots__ attribute is not documented even having docstring
* 741: autodoc: inherited-members doesn't work for instance attributes on super
class
* 8477: autosummary: non utf-8 reST files are generated when template contains
multibyte characters
* 8501: autosummary: summary extraction splits text after "el at." unexpectedly
* 8524: html: Wrong url_root has been generated on a document named "index"
* 8419: html search: Do not load ``language_data.js`` in non-search pages
* 8549: i18n: ``-D gettext_compact=0`` is no longer working
* 8454: graphviz: The layout option for graph and digraph directives don't work
* 8131: linkcheck: Use GET when HEAD requests cause Too Many Redirects, to
accommodate infinite redirect loops on HEAD
* 8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous
* 8365: py domain: ``:type:`` and ``:rtype:`` gives false ambiguous class
lookup warnings
* 8352: std domain: Failed to parse an option that starts with bracket
* 8519: LaTeX: Prevent page brake in the middle of a seealso
* 8520: C, fix copying of AliasNode.
```
### 3.3.1
```
=====================================
Bugs fixed
----------
* 8372: autodoc: autoclass directive became slower than Sphinx-3.2
* 7727: autosummary: raise PycodeError when documenting python package
without __init__.py
* 8350: autosummary: autosummary_mock_imports causes slow down builds
* 8364: C, properly initialize attributes in empty symbols.
* 8399: i18n: Put system locale path after the paths specified by configuration
```
### 3.3.0
```
=====================================
Deprecated
----------
* ``sphinx.builders.latex.LaTeXBuilder.usepackages``
* ``sphinx.builders.latex.LaTeXBuilder.usepackages_afger_hyperref``
* ``sphinx.ext.autodoc.SingledispatchFunctionDocumenter``
* ``sphinx.ext.autodoc.SingledispatchMethodDocumenter``
Features added
--------------
* 8100: html: Show a better error message for failures on copying
html_static_files
* 8141: C: added a ``maxdepth`` option to :rst:dir:`c:alias` to insert
nested declarations.
* 8081: LaTeX: Allow to add LaTeX package via ``app.add_latex_package()`` until
just before writing .tex file
* 7996: manpage: Add :confval:`man_make_section_directory` to make a section
directory on build man page
* 8289: epub: Allow to suppress "duplicated ToC entry found" warnings from epub
builder using :confval:`suppress_warnings`.
* 8298: sphinx-quickstart: Add :option:`sphinx-quickstart --no-sep` option
* 8304: sphinx.testing: Register public markers in sphinx.testing.fixtures
* 8051: napoleon: use the obj role for all See Also items
* 8050: napoleon: Apply :confval:`napoleon_preprocess_types` to every field
* C and C++, show line numbers for previous declarations when duplicates are
detected.
* 8183: Remove substitution_reference nodes from doctree only on LaTeX builds
Bugs fixed
----------
* 8085: i18n: Add support for having single text domain
* 6640: i18n: Failed to override system message translation
* 8143: autodoc: AttributeError is raised when False value is passed to
autodoc_default_options
* 8103: autodoc: functools.cached_property is not considered as a property
* 8190: autodoc: parsing error is raised if some extension replaces docstring
by string not ending with blank lines
* 8142: autodoc: Wrong constructor signature for the class derived from
typing.Generic
* 8157: autodoc: TypeError is raised when annotation has invalid __args__
* 7964: autodoc: Tuple in default value is wrongly rendered
* 8200: autodoc: type aliases break type formatting of autoattribute
* 7786: autodoc: can't detect overloaded methods defined in other file
* 8294: autodoc: single-string __slots__ is not handled correctly
* 7785: autodoc: autodoc_typehints='none' does not effect to overloaded functions
* 8192: napoleon: description is disappeared when it contains inline literals
* 8142: napoleon: Potential of regex denial of service in google style docs
* 8169: LaTeX: pxjahyper loaded even when latex_engine is not platex
* 8215: LaTeX: 'oneside' classoption causes build warning
* 8175: intersphinx: Potential of regex denial of service by broken inventory
* 8277: sphinx-build: missing and redundant spacing (and etc) for console
output on building
* 7973: imgconverter: Check availability of imagemagick many times
* 8255: py domain: number in default argument value is changed from hexadecimal
to decimal
* 8316: html: Prevent arrow keys changing page when button elements are focused
* 8343: html search: Fix unnecessary load of images when parsing the document
* 8254: html theme: Line numbers misalign with code lines
* 8093: The highlight warning has wrong location in some builders (LaTeX,
singlehtml and so on)
* 8215: Eliminate Fancyhdr build warnings for oneside documents
* 8239: Failed to refer a token in productionlist if it is indented
* 8268: linkcheck: Report HTTP errors when ``linkcheck_anchors`` is ``True``
* 8245: linkcheck: take source directory into account for local files
* 8321: linkcheck: ``tel:`` schema hyperlinks are detected as errors
* 8323: linkcheck: An exit status is incorrect when links having unsupported
schema found
* 8188: C, add missing items to internal object types dictionary,
e.g., preventing intersphinx from resolving them.
* C, fix anon objects in intersphinx.
* 8270, C++, properly reject functions as duplicate declarations if a
non-function declaration of the same name already exists.
* C, fix references to function parameters.
Link to the function instead of a non-existing anchor.
* 6914: figure numbers are unexpectedly assigned to uncaptioned items
* 8320: make "inline" line numbers un-selectable
Testing
--------
* 8257: Support parallel build in sphinx.testing
```
Links
- PyPI: https://pypi.org/project/sphinx
- Changelog: https://pyup.io/changelogs/sphinx/
- Homepage: http://sphinx-doc.org/
Changelog
### 6.2.2
```
=========================
Bug Fixes
---------
- `8152 <https://github.com/pytest-dev/pytest/issues/8152>`_: Fixed "(<Skipped instance>)" being shown as a skip reason in the verbose test summary line when the reason is empty.
- `8249 <https://github.com/pytest-dev/pytest/issues/8249>`_: Fix the ``faulthandler`` plugin for occasions when running with ``twisted.logger`` and using ``pytest --capture=no``.
```
### 6.2.1
```
=========================
Bug Fixes
---------
- `7678 <https://github.com/pytest-dev/pytest/issues/7678>`_: Fixed bug where ``ImportPathMismatchError`` would be raised for files compiled in
the host and loaded later from an UNC mounted path (Windows).
- `8132 <https://github.com/pytest-dev/pytest/issues/8132>`_: Fixed regression in ``approx``: in 6.2.0 ``approx`` no longer raises
``TypeError`` when dealing with non-numeric types, falling back to normal comparison.
Before 6.2.0, array types like tf.DeviceArray fell through to the scalar case,
and happened to compare correctly to a scalar if they had only one element.
After 6.2.0, these types began failing, because they inherited neither from
standard Python number hierarchy nor from ``numpy.ndarray``.
``approx`` now converts arguments to ``numpy.ndarray`` if they expose the array
protocol and are not scalars. This treats array-like objects like numpy arrays,
regardless of size.
```
### 6.2.0
```
=========================
Breaking Changes
----------------
- `7808 <https://github.com/pytest-dev/pytest/issues/7808>`_: pytest now supports python3.6+ only.
Deprecations
------------
- `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_: Directly constructing/calling the following classes/functions is now deprecated:
- ``_pytest.cacheprovider.Cache``
- ``_pytest.cacheprovider.Cache.for_config()``
- ``_pytest.cacheprovider.Cache.clear_cache()``
- ``_pytest.cacheprovider.Cache.cache_dir_from_config()``
- ``_pytest.capture.CaptureFixture``
- ``_pytest.fixtures.FixtureRequest``
- ``_pytest.fixtures.SubRequest``
- ``_pytest.logging.LogCaptureFixture``
- ``_pytest.pytester.Pytester``
- ``_pytest.pytester.Testdir``
- ``_pytest.recwarn.WarningsRecorder``
- ``_pytest.recwarn.WarningsChecker``
- ``_pytest.tmpdir.TempPathFactory``
- ``_pytest.tmpdir.TempdirFactory``
These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0.
- `7530 <https://github.com/pytest-dev/pytest/issues/7530>`_: The ``--strict`` command-line option has been deprecated, use ``--strict-markers`` instead.
We have plans to maybe in the future to reintroduce ``--strict`` and make it an encompassing flag for all strictness
related options (``--strict-markers`` and ``--strict-config`` at the moment, more might be introduced in the future).
- `7988 <https://github.com/pytest-dev/pytest/issues/7988>`_: The ``pytest.yield_fixture`` decorator/function is now deprecated. Use :func:`pytest.fixture` instead.
``yield_fixture`` has been an alias for ``fixture`` for a very long time, so can be search/replaced safely.
Features
--------
- `5299 <https://github.com/pytest-dev/pytest/issues/5299>`_: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8.
See :ref:`unraisable` for more information.
- `7425 <https://github.com/pytest-dev/pytest/issues/7425>`_: New :fixture:`pytester` fixture, which is identical to :fixture:`testdir` but its methods return :class:`pathlib.Path` when appropriate instead of ``py.path.local``.
This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future.
Internally, the old :class:`Testdir <_pytest.pytester.Testdir>` is now a thin wrapper around :class:`Pytester <_pytest.pytester.Pytester>`, preserving the old interface.
- `7695 <https://github.com/pytest-dev/pytest/issues/7695>`_: A new hook was added, `pytest_markeval_namespace` which should return a dictionary.
This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers.
Pseudo example
``conftest.py``:
.. code-block:: python
def pytest_markeval_namespace():
return {"color": "red"}
``test_func.py``:
.. code-block:: python
pytest.mark.skipif("color == 'blue'", reason="Color is not red")
def test_func():
assert False
- `8006 <https://github.com/pytest-dev/pytest/issues/8006>`_: It is now possible to construct a :class:`~pytest.MonkeyPatch` object directly as ``pytest.MonkeyPatch()``,
in cases when the :fixture:`monkeypatch` fixture cannot be used. Previously some users imported it
from the private `_pytest.monkeypatch.MonkeyPatch` namespace.
Additionally, :meth:`MonkeyPatch.context <pytest.MonkeyPatch.context>` is now a classmethod,
and can be used as ``with MonkeyPatch.context() as mp: ...``. This is the recommended way to use
``MonkeyPatch`` directly, since unlike the ``monkeypatch`` fixture, an instance created directly
is not ``undo()``-ed automatically.
Improvements
------------
- `1265 <https://github.com/pytest-dev/pytest/issues/1265>`_: Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method.
- `2044 <https://github.com/pytest-dev/pytest/issues/2044>`_: Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS".
- `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_ The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions.
The newly-exported types are:
- ``pytest.FixtureRequest`` for the :fixture:`request` fixture.
- ``pytest.Cache`` for the :fixture:`cache` fixture.
- ``pytest.CaptureFixture[str]`` for the :fixture:`capfd` and :fixture:`capsys` fixtures.
- ``pytest.CaptureFixture[bytes]`` for the :fixture:`capfdbinary` and :fixture:`capsysbinary` fixtures.
- ``pytest.LogCaptureFixture`` for the :fixture:`caplog` fixture.
- ``pytest.Pytester`` for the :fixture:`pytester` fixture.
- ``pytest.Testdir`` for the :fixture:`testdir` fixture.
- ``pytest.TempdirFactory`` for the :fixture:`tmpdir_factory` fixture.
- ``pytest.TempPathFactory`` for the :fixture:`tmp_path_factory` fixture.
- ``pytest.MonkeyPatch`` for the :fixture:`monkeypatch` fixture.
- ``pytest.WarningsRecorder`` for the :fixture:`recwarn` fixture.
Constructing them is not supported (except for `MonkeyPatch`); they are only meant for use in type annotations.
Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0.
Subclassing them is also not supported. This is not currently enforced at runtime, but is detected by type-checkers such as mypy.
- `7527 <https://github.com/pytest-dev/pytest/issues/7527>`_: When a comparison between :func:`namedtuple <collections.namedtuple>` instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes.
- `7615 <https://github.com/pytest-dev/pytest/issues/7615>`_: :meth:`Node.warn <_pytest.nodes.Node.warn>` now permits any subclass of :class:`Warning`, not just :class:`PytestWarning <pytest.PytestWarning>`.
- `7701 <https://github.com/pytest-dev/pytest/issues/7701>`_: Improved reporting when using ``--collected-only``. It will now show the number of collected tests in the summary stats.
- `7710 <https://github.com/pytest-dev/pytest/issues/7710>`_: Use strict equality comparison for non-numeric types in :func:`pytest.approx` instead of
raising :class:`TypeError`.
This was the undocumented behavior before 3.7, but is now officially a supported feature.
- `7938 <https://github.com/pytest-dev/pytest/issues/7938>`_: New ``--sw-skip`` argument which is a shorthand for ``--stepwise-skip``.
- `8023 <https://github.com/pytest-dev/pytest/issues/8023>`_: Added ``'node_modules'`` to default value for :confval:`norecursedirs`.
- `8032 <https://github.com/pytest-dev/pytest/issues/8032>`_: :meth:`doClassCleanups <unittest.TestCase.doClassCleanups>` (introduced in :mod:`unittest` in Python and 3.8) is now called appropriately.
Bug Fixes
---------
- `4824 <https://github.com/pytest-dev/pytest/issues/4824>`_: Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures.
- `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0.
- `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
- `7913 <https://github.com/pytest-dev/pytest/issues/7913>`_: Fixed a crash or hang in :meth:`pytester.spawn <_pytest.pytester.Pytester.spawn>` when the :mod:`readline` module is involved.
- `7951 <https://github.com/pytest-dev/pytest/issues/7951>`_: Fixed handling of recursive symlinks when collecting tests.
- `7981 <https://github.com/pytest-dev/pytest/issues/7981>`_: Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0.
- `8016 <https://github.com/pytest-dev/pytest/issues/8016>`_: Fixed only one doctest being collected when using ``pytest --doctest-modules path/to/an/__init__.py``.
Improved Documentation
----------------------
- `7429 <https://github.com/pytest-dev/pytest/issues/7429>`_: Add more information and use cases about skipping doctests.
- `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Classes which should not be inherited from are now marked ``final class`` in the API reference.
- `7872 <https://github.com/pytest-dev/pytest/issues/7872>`_: ``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``"string"``.
- `7878 <https://github.com/pytest-dev/pytest/issues/7878>`_: In pull request section, ask to commit after editing changelog and authors file.
Trivial/Internal Changes
------------------------
- `7802 <https://github.com/pytest-dev/pytest/issues/7802>`_: The ``attrs`` dependency requirement is now >=19.2.0 instead of >=17.4.0.
- `8014 <https://github.com/pytest-dev/pytest/issues/8014>`_: `.pyc` files created by pytest's assertion rewriting now conform to the newer PEP-552 format on Python>=3.7.
(These files are internal and only interpreted by pytest itself.)
```
### 6.1.2
```
=========================
Bug Fixes
---------
- `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0.
- `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by `tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
Improved Documentation
----------------------
- `7815 <https://github.com/pytest-dev/pytest/issues/7815>`_: Improve deprecation warning message for ``pytest._fillfuncargs()``.
```
### 6.1.1
```
=========================
Bug Fixes
---------
- `7807 <https://github.com/pytest-dev/pytest/issues/7807>`_: Fixed regression in pytest 6.1.0 causing incorrect rootdir to be determined in some non-trivial cases where parent directories have config files as well.
- `7814 <https://github.com/pytest-dev/pytest/issues/7814>`_: Fixed crash in header reporting when :confval:`testpaths` is used and contains absolute paths (regression in 6.1.0).
```
### 6.1.0
```
=========================
Breaking Changes
----------------
- `5585 <https://github.com/pytest-dev/pytest/issues/5585>`_: As per our policy, the following features which have been deprecated in the 5.X series are now
removed:
* The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute.
* ``pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead.
* Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead.
* The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file.
* The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly.
* The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin instead.
For more information consult
`Deprecations and Removals <https://docs.pytest.org/en/stable/deprecations.html>`__ in the docs.
Deprecations
------------
- `6981 <https://github.com/pytest-dev/pytest/issues/6981>`_: The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly.
- `7097 <https://github.com/pytest-dev/pytest/issues/7097>`_: The ``pytest._fillfuncargs`` function is deprecated. This function was kept
for backward compatibility with an older plugin.
It's functionality is not meant to be used directly, but if you must replace
it, use `function._request._fillfixtures()` instead, though note this is not
a public API and may break in the future.
- `7210 <https://github.com/pytest-dev/pytest/issues/7210>`_: The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'``
instead.
The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue
if you use this and want a replacement.
- `7255 <https://github.com/pytest-dev/pytest/issues/7255>`_: The :func:`pytest_warning_captured <_pytest.hookspec.pytest_warning_captured>` hook is deprecated in favor
of :func:`pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>`, and will be removed in a future version.
- `7648 <https://github.com/pytest-dev/pytest/issues/7648>`_: The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated;
use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead.
This should work on all pytest versions.
Features
--------
- `7667 <https://github.com/pytest-dev/pytest/issues/7667>`_: New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``.
Improvements
------------
- `6681 <https://github.com/pytest-dev/pytest/issues/6681>`_: Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``.
This also fixes a number of long standing issues: `2891 <https://github.com/pytest-dev/pytest/issues/2891>`__, `#7620 <https://github.com/pytest-dev/pytest/issues/7620>`__, `#7426 <https://github.com/pytest-dev/pytest/issues/7426>`__.
- `7572 <https://github.com/pytest-dev/pytest/issues/7572>`_: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace.
- `7685 <https://github.com/pytest-dev/pytest/issues/7685>`_: Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`.
These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes,
and should be preferred over them when possible.
- `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Public classes which are not designed to be inherited from are now marked `final <https://docs.python.org/3/library/typing.html#typing.final>`_.
Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime.
Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future.
Bug Fixes
---------
- `1953 <https://github.com/pytest-dev/pytest/issues/1953>`_: Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value.
.. code-block:: python
conftest.py
import pytest
pytest.fixture(params=[1, 2])
def foo(request):
return request.param
test_foo.py
import pytest
pytest.fixture
def foo(foo):
return foo * 2
- `4984 <https://github.com/pytest-dev/pytest/issues/4984>`_: Fixed an internal error crash with ``IndexError: list index out of range`` when
collecting a module which starts with a decorated function, the decorator
raises, and assertion rewriting is enabled.
- `7591 <https://github.com/pytest-dev/pytest/issues/7591>`_: pylint shouldn't complain anymore about unimplemented abstract methods when inheriting from :ref:`File <non-python tests>`.
- `7628 <https://github.com/pytest-dev/pytest/issues/7628>`_: Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``).
- `7638 <https://github.com/pytest-dev/pytest/issues/7638>`_: Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``.
- `7742 <https://github.com/pytest-dev/pytest/issues/7742>`_: Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``.
Improved Documentation
----------------------
- `1477 <https://github.com/pytest-dev/pytest/issues/1477>`_: Removed faq.rst and its reference in contents.rst.
Trivial/Internal Changes
------------------------
- `7536 <https://github.com/pytest-dev/pytest/issues/7536>`_: The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``.
The order of attributes in XML elements might differ. Some unneeded escaping is
no longer performed.
- `7587 <https://github.com/pytest-dev/pytest/issues/7587>`_: The dependency on the ``more-itertools`` package has been removed.
- `7631 <https://github.com/pytest-dev/pytest/issues/7631>`_: The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple,
but should behave like one in all respects. This was done for technical reasons.
- `7671 <https://github.com/pytest-dev/pytest/issues/7671>`_: When collecting tests, pytest finds test classes and functions by examining the
attributes of python objects (modules, classes and instances). To speed up this
process, pytest now ignores builtin attributes (like ``__class__``,
``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and
:confval:`python_functions` configuration options and without passing them to plugins
using the :func:`pytest_pycollect_makeitem <_pytest.hookspec.pytest_pycollect_makeitem>` hook.
```
### 6.0.2
```
=========================
Bug Fixes
---------
- `7148 <https://github.com/pytest-dev/pytest/issues/7148>`_: Fixed ``--log-cli`` potentially causing unrelated ``prin
Update pip from 20.2.2 to 21.0.1.
Changelog
### 21.0.1 ``` =================== Bug Fixes --------- - commands: debug: Use packaging.version.parse to compare between versions. (`9461 <https://github.com/pypa/pip/issues/9461>`_) - New resolver: Download and prepare a distribution only at the last possible moment to avoid unnecessary network access when the same version is already installed locally. (`9516 <https://github.com/pypa/pip/issues/9516>`_) Vendored Libraries ------------------ - Upgrade packaging to 20.9 ``` ### 21.0 ``` ================= Deprecations and Removals ------------------------- - Drop support for Python 2. (`6148 <https://github.com/pypa/pip/issues/6148>`_) - Remove support for legacy wheel cache entries that were created with pip versions older than 20.0. (`7502 <https://github.com/pypa/pip/issues/7502>`_) - Remove support for VCS pseudo URLs editable requirements. It was emitting deprecation warning since version 20.0. (`7554 <https://github.com/pypa/pip/issues/7554>`_) - Modernise the codebase after Python 2. (`8802 <https://github.com/pypa/pip/issues/8802>`_) - Drop support for Python 3.5. (`9189 <https://github.com/pypa/pip/issues/9189>`_) - Remove the VCS export feature that was used only with editable VCS requirements and had correctness issues. (`9338 <https://github.com/pypa/pip/issues/9338>`_) Features -------- - Add ``--ignore-requires-python`` support to pip download. (`1884 <https://github.com/pypa/pip/issues/1884>`_) - New resolver: Error message shown when a wheel contains inconsistent metadata is made more helpful by including both values from the file name and internal metadata. (`9186 <https://github.com/pypa/pip/issues/9186>`_) Bug Fixes --------- - Fix a regression that made ``pip wheel`` do a VCS export instead of a VCS clone for editable requirements. This broke VCS requirements that need the VCS information to build correctly. (`9273 <https://github.com/pypa/pip/issues/9273>`_) - Fix ``pip download`` of editable VCS requirements that need VCS information to build correctly. (`9337 <https://github.com/pypa/pip/issues/9337>`_) Vendored Libraries ------------------ - Upgrade msgpack to 1.0.2. - Upgrade requests to 2.25.1. Improved Documentation ---------------------- - Render the unreleased pip version change notes on the news page in docs. (`9172 <https://github.com/pypa/pip/issues/9172>`_) - Fix broken email link in docs feedback banners. (`9343 <https://github.com/pypa/pip/issues/9343>`_) .. note You should *NOT* be adding new change log entries to this file, this file is managed by towncrier. You *may* edit previous change logs to fix problems like typo corrections or such. To add a new change log entry, please see https://pip.pypa.io/en/latest/development/contributing/#news-entries .. towncrier release notes start ``` ### 20.3.4 ``` =================== Features -------- - ``pip wheel`` now verifies the built wheel contains valid metadata, and can be installed by a subsequent ``pip install``. This can be disabled with ``--no-verify``. (`9206 <https://github.com/pypa/pip/issues/9206>`_) - Improve presentation of XMLRPC errors in pip search. (`9315 <https://github.com/pypa/pip/issues/9315>`_) Bug Fixes --------- - Fixed hanging VCS subprocess calls when the VCS outputs a large amount of data on stderr. Restored logging of VCS errors that was inadvertently removed in pip 20.2. (`8876 <https://github.com/pypa/pip/issues/8876>`_) - Fix error when an existing incompatibility is unable to be applied to a backtracked state. (`9180 <https://github.com/pypa/pip/issues/9180>`_) - New resolver: Discard a faulty distribution, instead of quitting outright. This implementation is taken from 20.2.2, with a fix that always makes the resolver iterate through candidates from indexes lazily, to avoid downloading candidates we do not need. (`9203 <https://github.com/pypa/pip/issues/9203>`_) - New resolver: Discard a source distribution if it fails to generate metadata, instead of quitting outright. This implementation is taken from 20.2.2, with a fix that always makes the resolver iterate through candidates from indexes lazily, to avoid downloading candidates we do not need. (`9246 <https://github.com/pypa/pip/issues/9246>`_) Vendored Libraries ------------------ - Upgrade resolvelib to 0.5.4. ``` ### 20.3.3 ``` =================== Bug Fixes --------- - Revert "Skip candidate not providing valid metadata", as that caused pip to be overeager about downloading from the package index. (`9264 <https://github.com/pypa/pip/issues/9264>`_) ``` ### 20.3.2 ``` =================== Features -------- - New resolver: Resolve direct and pinned (``==`` or ``===``) requirements first to improve resolver performance. (`9185 <https://github.com/pypa/pip/issues/9185>`_) - Add a mechanism to delay resolving certain packages, and use it for setuptools. (`9249 <https://github.com/pypa/pip/issues/9249>`_) Bug Fixes --------- - New resolver: The "Requirement already satisfied" log is not printed only once for each package during resolution. (`9117 <https://github.com/pypa/pip/issues/9117>`_) - Fix crash when logic for redacting authentication information from URLs in ``--help`` is given a list of strings, instead of a single string. (`9191 <https://github.com/pypa/pip/issues/9191>`_) - New resolver: Correctly implement PEP 592. Do not return yanked versions from an index, unless the version range can only be satisfied by yanked candidates. (`9203 <https://github.com/pypa/pip/issues/9203>`_) - New resolver: Make constraints also apply to package variants with extras, so the resolver correctly avoids backtracking on them. (`9232 <https://github.com/pypa/pip/issues/9232>`_) - New resolver: Discard a candidate if it fails to provide metadata from source, or if the provided metadata is inconsistent, instead of quitting outright. (`9246 <https://github.com/pypa/pip/issues/9246>`_) Vendored Libraries ------------------ - Update vendoring to 20.8 Improved Documentation ---------------------- - Update documentation to reflect that pip still uses legacy resolver by default in Python 2 environments. (`9269 <https://github.com/pypa/pip/issues/9269>`_) ``` ### 20.3.1 ``` =================== Deprecations and Removals ------------------------- - The --build-dir option has been restored as a no-op, to soften the transition for tools that still used it. (`9193 <https://github.com/pypa/pip/issues/9193>`_) ``` ### 20.3 ``` - Introduce a new ResolutionImpossible error, raised when pip encounters un-satisfiable dependency conflicts (`8546 <https://github.com/pypa/pip/issues/8546>`_, `#8377 <https://github.com/pypa/pip/issues/8377>`_) - Add a subcommand ``debug`` to ``pip config`` to list available configuration sources and the key-value pairs defined in them. (`6741 <https://github.com/pypa/pip/issues/6741>`_) - Warn if index pages have unexpected content-type (`6754 <https://github.com/pypa/pip/issues/6754>`_) - Allow specifying ``--prefer-binary`` option in a requirements file (`7693 <https://github.com/pypa/pip/issues/7693>`_) - Generate PEP 376 REQUESTED metadata for user supplied requirements installed by pip. (`7811 <https://github.com/pypa/pip/issues/7811>`_) - Warn if package url is a vcs or an archive url with invalid scheme (`8128 <https://github.com/pypa/pip/issues/8128>`_) - Parallelize network operations in ``pip list``. (`8504 <https://github.com/pypa/pip/issues/8504>`_) - Allow the new resolver to obtain dependency information through wheels lazily downloaded using HTTP range requests. To enable this feature, invoke ``pip`` with ``--use-feature=fast-deps``. (`8588 <https://github.com/pypa/pip/issues/8588>`_) - Support ``--use-feature`` in requirements files (`8601 <https://github.com/pypa/pip/issues/8601>`_) Bug Fixes --------- - Use canonical package names while looking up already installed packages. (`5021 <https://github.com/pypa/pip/issues/5021>`_) - Fix normalizing path on Windows when installing package on another logical disk. (`7625 <https://github.com/pypa/pip/issues/7625>`_) - The VCS commands run by pip as subprocesses don't merge stdout and stderr anymore, improving the output parsing by subsequent commands. (`7968 <https://github.com/pypa/pip/issues/7968>`_) - Correctly treat non-ASCII entry point declarations in wheels so they can be installed on Windows. (`8342 <https://github.com/pypa/pip/issues/8342>`_) - Update author email in config and tests to reflect decommissioning of pypa-dev list. (`8454 <https://github.com/pypa/pip/issues/8454>`_) - Headers provided by wheels in .data directories are now correctly installed into the user-provided locations, such as ``--prefix``, instead of the virtual environment pip is running in. (`8521 <https://github.com/pypa/pip/issues/8521>`_) Vendored Libraries ------------------ - Vendored htmlib5 no longer imports deprecated xml.etree.cElementTree on Python 3. - Upgrade appdirs to 1.4.4 - Upgrade certifi to 2020.6.20 - Upgrade distlib to 0.3.1 - Upgrade html5lib to 1.1 - Upgrade idna to 2.10 - Upgrade packaging to 20.4 - Upgrade requests to 2.24.0 - Upgrade six to 1.15.0 - Upgrade toml to 0.10.1 - Upgrade urllib3 to 1.25.9 Improved Documentation ---------------------- - Add ``--no-input`` option to pip docs (`7688 <https://github.com/pypa/pip/issues/7688>`_) - List of options supported in requirements file are extracted from source of truth, instead of being maintained manually. (`7908 <https://github.com/pypa/pip/issues/7908>`_) - Fix pip config docstring so that the subcommands render correctly in the docs (`8072 <https://github.com/pypa/pip/issues/8072>`_) - replace links to the old pypa-dev mailing list with https://mail.python.org/mailman3/lists/distutils-sig.python.org/ (`#8353 <https://github.com/pypa/pip/issues/8353>`_) - Fix example for defining multiple values for options which support them (`8373 <https://github.com/pypa/pip/issues/8373>`_) - Add documentation for the ResolutionImpossible error that helps the user fix dependency conflicts (`8459 <https://github.com/pypa/pip/issues/8459>`_) - Add feature flags to docs (`8512 <https://github.com/pypa/pip/issues/8512>`_) - Document how to install package extras from git branch and source distributions. (`8576 <https://github.com/pypa/pip/issues/8576>`_) ``` ### 20.3b1 ``` =================== Deprecations and Removals ------------------------- - ``pip freeze`` will stop filtering the ``pip``, ``setuptools``, ``distribute`` and ``wheel`` packages from ``pip freeze`` output in a future version. To keep the previous behavior, users should use the new ``--exclude`` option. (`4256 <https://github.com/pypa/pip/issues/4256>`_) - Deprecate support for Python 3.5 (`8181 <https://github.com/pypa/pip/issues/8181>`_) - Document that certain removals can be fast tracked. (`8417 <https://github.com/pypa/pip/issues/8417>`_) - Document that Python versions are generally supported until PyPI usage falls below 5%. (`8927 <https://github.com/pypa/pip/issues/8927>`_) - Deprecate ``--find-links`` option in ``pip freeze`` (`9069 <https://github.com/pypa/pip/issues/9069>`_) Features -------- - Add ``--exclude`` option to ``pip freeze`` and ``pip list`` commands to explicitly exclude packages from the output. (`4256 <https://github.com/pypa/pip/issues/4256>`_) - Allow multiple values for --abi and --platform. (`6121 <https://github.com/pypa/pip/issues/6121>`_) - Add option ``--format`` to subcommand ``list`` of ``pip cache``, with ``abspath`` choice to output the full path of a wheel file. (`8355 <https://github.com/pypa/pip/issues/8355>`_) - Improve error message friendliness when an environment has packages with corrupted metadata. (`8676 <https://github.com/pypa/pip/issues/8676>`_) - Make the ``setup.py install`` deprecation warning less noisy. We warn only when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as situations where both fails are most probably irrelevant to this deprecation. (`8752 <https://github.com/pypa/pip/issues/8752>`_) - Check the download directory for existing wheels to possibly avoid fetching metadata when the ``fast-deps`` feature is used with ``pip wheel`` and ``pip download``. (`8804 <https://github.com/pypa/pip/issues/8804>`_) - When installing a git URL that refers to a commit that is not available locally after git clone, attempt to fetch it from the remote. (`8815 <https://github.com/pypa/pip/issues/8815>`_) - Include http subdirectory in ``pip cache info`` and ``pip cache purge`` commands. (`8892 <https://github.com/pypa/pip/issues/8892>`_) - Cache package listings on index packages so they are guarenteed to stay stable during a pip command session. This also improves performance when a index page is accessed multiple times during the command session. (`8905 <https://github.com/pypa/pip/issues/8905>`_) - New resolver: Tweak resolution logic to improve user experience when user-supplied requirements conflict. (`8924 <https://github.com/pypa/pip/issues/8924>`_) - Support Python 3.9. (`8971 <https://github.com/pypa/pip/issues/8971>`_) - Log an informational message when backtracking takes multiple rounds on a specific package. (`8975 <https://github.com/pypa/pip/issues/8975>`_) - Switch to the new dependency resolver by default. (`9019 <https://github.com/pypa/pip/issues/9019>`_) - Remove the ``--build-dir`` option, as per the deprecation. (`9049 <https://github.com/pypa/pip/issues/9049>`_) Bug Fixes --------- - Propagate ``--extra-index-url`` from requirements file properly to session auth, so that keyring auth will work as expected. (`8103 <https://github.com/pypa/pip/issues/8103>`_) - Allow specifying verbosity and quiet level via configuration files and environment variables. Previously these options were treated as boolean values when read from there while through CLI the level can be specified. (`8578 <https://github.com/pypa/pip/issues/8578>`_) - Only converts Windows path to unicode on Python 2 to avoid regressions when a POSIX environment does not configure the file system encoding correctly. (`8658 <https://github.com/pypa/pip/issues/8658>`_) - List downloaded distributions before exiting ``pip download`` when using the new resolver to make the behavior the same as that on the legacy resolver. (`8696 <https://github.com/pypa/pip/issues/8696>`_) - New resolver: Pick up hash declarations in constraints files and use them to filter available distributions. (`8792 <https://github.com/pypa/pip/issues/8792>`_) - Avoid polluting the destination directory by resolution artifacts when the new resolver is used for ``pip download`` or ``pip wheel``. (`8827 <https://github.com/pypa/pip/issues/8827>`_) - New resolver: If a package appears multiple times in user specification with different ``--hash`` options, only hashes that present in all specifications should be allowed. (`8839 <https://github.com/pypa/pip/issues/8839>`_) - Tweak the output during dependency resolution in the new resolver. (`8861 <https://github.com/pypa/pip/issues/8861>`_) - Correctly search for installed distributions in new resolver logic in order to not miss packages (virtualenv packages from system-wide-packages for example) (`8963 <https://github.com/pypa/pip/issues/8963>`_) - Do not fail in pip freeze when encountering a ``direct_url.json`` metadata file with editable=True. Render it as a non-editable ``file://`` URL until modern editable installs are standardized and supported. (`8996 <https://github.com/pypa/pip/issues/8996>`_) Vendored Libraries ------------------ - Fix devendoring instructions to explicitly state that ``vendor.txt`` should not be removed. It is mandatory for ``pip debug`` command. Improved Documentation ---------------------- - Add documentation for '.netrc' support. (`7231 <https://github.com/pypa/pip/issues/7231>`_) - Add OS tabs for OS-specific commands. (`7311 <https://github.com/pypa/pip/issues/7311>`_) - Add note and example on keyring support for index basic-auth (`8636 <https://github.com/pypa/pip/issues/8636>`_) - Added initial UX feedback widgets to docs. (`8783 <https://github.com/pypa/pip/issues/8783>`_, `#8848 <https://github.com/pypa/pip/issues/8848>`_) - Add ux documentation (`8807 <https://github.com/pypa/pip/issues/8807>`_) - Update user docs to reflect new resolver as default in 20.3. (`9044 <https://github.com/pypa/pip/issues/9044>`_) - Improve migration guide to reflect changes in new resolver behavior. (`9056 <https://github.com/pypa/pip/issues/9056>`_) ``` ### 20.2.4 ``` =================== Deprecations and Removals ------------------------- - Document that certain removals can be fast tracked. (`8417 <https://github.com/pypa/pip/issues/8417>`_) - Document that Python versions are generally supported until PyPI usage falls below 5%. (`8927 <https://github.com/pypa/pip/issues/8927>`_) Features -------- - New resolver: Avoid accessing indexes when the installed candidate is preferred and considered good enough. (`8023 <https://github.com/pypa/pip/issues/8023>`_) - Improve error message friendliness when an environment has packages with corrupted metadata. (`8676 <https://github.com/pypa/pip/issues/8676>`_) - Cache package listings on index packages so they are guarenteed to stay stable during a pip command session. This also improves performance when a index page is accessed multiple times during the command session. (`8905 <https://github.com/pypa/pip/issues/8905>`_) - New resolver: Tweak resolution logic to improve user experience when user-supplied requirements conflict. (`8924 <https://github.com/pypa/pip/issues/8924>`_) Bug Fixes --------- - New resolver: Correctly respect ``Requires-Python`` metadata to reject incompatible packages in ``--no-deps`` mode. (`8758 <https://github.com/pypa/pip/issues/8758>`_) - New resolver: Pick up hash declarations in constraints files and use them to filter available distributions. (`8792 <https://github.com/pypa/pip/issues/8792>`_) - New resolver: If a package appears multiple times in user specification with different ``--hash`` options, only hashes that present in all specifications should be allowed. (`8839 <https://github.com/pypa/pip/issues/8839>`_) Improved Documentation ---------------------- - Add ux documentation (`8807 <https://github.com/pypa/pip/issues/8807>`_) ``` ### 20.2.3 ``` =================== Deprecations and Removals ------------------------- - Deprecate support for Python 3.5 (`8181 <https://github.com/pypa/pip/issues/8181>`_) Features -------- - Make the ``setup.py install`` deprecation warning less noisy. We warn only when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as situations where both fails are most probably irrelevant to this deprecation. (`8752 <https://github.com/pypa/pip/issues/8752>`_) ```Links
- PyPI: https://pypi.org/project/pip - Changelog: https://pyup.io/changelogs/pip/ - Homepage: https://pip.pypa.io/Update wheel from 0.35.1 to 0.36.2.
Changelog
### 0.36.2 ``` - Updated vendored ``packaging`` library to v20.8 - Fixed wheel sdist missing ``LICENSE.txt`` - Don't use default ``macos/arm64`` deployment target in calculating the platform tag for fat binaries (PR by Ronald Oussoren) ``` ### 0.36.1 ``` - Fixed ``AssertionError`` when ``MACOSX_DEPLOYMENT_TARGET`` was set to ``11`` (PR by Grzegorz Bokota and François-Xavier Coudert) - Fixed regression introduced in 0.36.0 on Python 2.7 when a custom generator name was passed as unicode (Scikit-build) (``TypeError: 'unicode' does not have the buffer interface``) ``` ### 0.36.0 ``` - Added official Python 3.9 support - Updated vendored ``packaging`` library to v20.7 - Switched to always using LF as line separator when generating ``WHEEL`` files (on Windows, CRLF was being used instead) - The ABI tag is taken from the sysconfig SOABI value. On PyPy the SOABI value is ``pypy37-pp73`` which is not compliant with PEP 3149, as it should have both the API tag and the platform tag. This change future-proofs any change in PyPy's SOABI tag to make sure only the ABI tag is used by wheel. - Fixed regression and test for ``bdist_wheel --plat-name``. It was ignored for C extensions in v0.35, but the regression was not detected by tests. ```Links
- PyPI: https://pypi.org/project/wheel - Changelog: https://pyup.io/changelogs/wheel/ - Repo: https://github.com/pypa/wheelUpdate watchdog from 0.10.3 to 1.0.2.
Changelog
### 1.0.2 ``` ~~~~~ 202x-xx-xx • `full history <https://github.com/gorakhargosh/watchdog/compare/v1.0.1...master>`__ - [mac] Fix missing ``event_id`` attribute in ``fsevents`` (`721 <https://github.com/gorakhargosh/watchdog/pull/721>`_) - [mac] Add compatibility with old macOS versions (`733` <https://github.com/gorakhargosh/watchdog/pull/733>`_) - Thanks to our beloved contributors: SamSchott, CCP-Aporia ``` ### 1.0.1 ``` ~~~~~ 2020-12-10 • Fix version with good metadatas. ``` ### 1.0.0 ``` ~~~~~ 2020-12-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.4...v1.0.0>`__ - Versioning is now following the `semver <https://semver.org/>`_ - Drop support for Python 2.7, 3.4 and 3.5 - [mac] Regression fixes for native ``fsevents`` (`717 <https://github.com/gorakhargosh/watchdog/pull/717>`_) - [windows] ``winapi.BUFFER_SIZE`` now defaults to ``64000`` (instead of ``2048``) (`700 <https://github.com/gorakhargosh/watchdog/pull/700>`_) - [windows] Introduced ``winapi.PATH_BUFFER_SIZE`` (defaults to ``2048``) to keep the old behavior with path-realted functions (`700 <https://github.com/gorakhargosh/watchdog/pull/700>`_) - Use ``pathlib`` from the standard library, instead of pathtools (`556 <https://github.com/gorakhargosh/watchdog/pull/556>`_) - Allow file paths on Unix that don't follow the file system encoding (`703 <https://github.com/gorakhargosh/watchdog/pull/703>`_) - Removed the long-time deprecated ``events.LoggingFileSystemEventHandler`` class, use ``LoggingEventHandler`` instead - Thanks to our beloved contributors: SamSchott, bstaletic, BoboTiG, CCP-Aporia ``` ### 0.10.4 ``` ~~~~~~ 2020-11-21 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.3...v0.10.4>`__ - Add ``logger`` parameter for the ``LoggingEventHandler`` (`676 <https://github.com/gorakhargosh/watchdog/pull/676>`_) - Replace mutable default arguments with ``if None`` implementation (`677 <https://github.com/gorakhargosh/watchdog/pull/677>`_) - Expand tests to Python 2.7 and 3.5-3.10 for GNU/Linux, macOS and Windows - [mac] Performance improvements for the ``fsevents`` module (`680 <https://github.com/gorakhargosh/watchdog/pull/680>`_) - [mac] Prevent compilation of ``watchdog_fsevents.c`` on non-macOS machines (`687 <https://github.com/gorakhargosh/watchdog/pull/687>`_) - [watchmedo] Handle shutdown events from ``SIGTERM`` and ``SIGINT`` more reliably (`693 <https://github.com/gorakhargosh/watchdog/pull/693>`_) - Thanks to our beloved contributors: Sraw, CCP-Aporia, BoboTiG, maybe-sybr ```Links
- PyPI: https://pypi.org/project/watchdog - Changelog: https://pyup.io/changelogs/watchdog/ - Repo: http://github.com/gorakhargosh/watchdog - Docs: https://pythonhosted.org/watchdog/Update flake8 from 3.8.3 to 3.8.4.
Changelog
### 3.8.4 ``` ------------------- You can view the `3.8.4 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix multiprocessing errors on platforms without ``sem_open`` syscall. (See also `GitLab!448`_) - Fix skipping of physical checks on the last line of a file which does not end in a newline (See also `GitLab!451`_) .. all links .. _3.8.4 milestone: https://gitlab.com/pycqa/flake8/-/milestones/37 .. merge request links .. _GitLab!448: https://gitlab.com/pycqa/flake8/merge_requests/448 .. _GitLab!451: https://gitlab.com/pycqa/flake8/merge_requests/451 ```Links
- PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://gitlab.com/pycqa/flake8Update coverage from 5.2.1 to 5.4.
Changelog
### 5.4 ``` -------------------------- - The text report produced by ``coverage report`` now always outputs a TOTAL line, even if only one Python file is reported. This makes regex parsing of the output easier. Thanks, Judson Neer. This had been requested a number of times (`issue 1086`_, `issue 922`_, `issue 732`_). - The ``skip_covered`` and ``skip_empty`` settings in the configuration file can now be specified in the ``[html]`` section, so that text reports and HTML reports can use separate settings. The HTML report will still use the ``[report]`` settings if there isn't a value in the ``[html]`` section. Closes `issue 1090`_. - Combining files on Windows across drives how works properly, fixing `issue 577`_. Thanks, `Valentine Lab <pr1080_>`_. - Fix an obscure warning from deep in the _decimal module, as reported in `issue 1084`_. - Update to support Python 3.10 alphas in progress, including `PEP 626: Precise line numbers for debugging and other tools <pep626_>`_. .. _issue 577: https://github.com/nedbat/coveragepy/issues/577 .. _issue 732: https://github.com/nedbat/coveragepy/issues/732 .. _issue 922: https://github.com/nedbat/coveragepy/issues/922 .. _issue 1084: https://github.com/nedbat/coveragepy/issues/1084 .. _issue 1086: https://github.com/nedbat/coveragepy/issues/1086 .. _issue 1090: https://github.com/nedbat/coveragepy/issues/1090 .. _pr1080: https://github.com/nedbat/coveragepy/pull/1080 .. _pep626: https://www.python.org/dev/peps/pep-0626/ .. _changes_531: ``` ### 5.3.1 ``` ---------------------------- - When using ``--source`` on a large source tree, v5.x was slower than previous versions. This performance regression is now fixed, closing `issue 1037`_. - Mysterious SQLite errors can happen on PyPy, as reported in `issue 1010`_. An immediate retry seems to fix the problem, although it is an unsatisfying solution. - The HTML report now saves the sort order in a more widely supported way, fixing `issue 986`_. Thanks, Sebastián Ramírez (`pull request 1066`_). - The HTML report pages now have a :ref:`Sleepy Snake <sleepy>` favicon. - Wheels are now provided for manylinux2010, and for PyPy3 (pp36 and pp37). - Continuous integration has moved from Travis and AppVeyor to GitHub Actions. .. _issue 986: https://github.com/nedbat/coveragepy/issues/986 .. _issue 1037: https://github.com/nedbat/coveragepy/issues/1037 .. _issue 1010: https://github.com/nedbat/coveragepy/issues/1010 .. _pull request 1066: https://github.com/nedbat/coveragepy/pull/1066 .. _changes_53: ``` ### 5.3 ``` -------------------------- - The ``source`` setting has always been interpreted as either a file path or a module, depending on which existed. If both interpretations were valid, it was assumed to be a file path. The new ``source_pkgs`` setting can be used to name a package to disambiguate this case. Thanks, Thomas Grainger. Fixes `issue 268`_. - If a plugin was disabled due to an exception, we used to still try to record its information, causing an exception, as reported in `issue 1011`_. This is now fixed. .. _issue 268: https://github.com/nedbat/coveragepy/issues/268 .. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011 .. _changes_521: ```Links
- PyPI: https://pypi.org/project/coverage - Changelog: https://pyup.io/changelogs/coverage/ - Repo: https://github.com/nedbat/coveragepyUpdate tox from 3.20.0 to 3.21.3.
Changelog
### 3.21.3 ``` -------------------- Bugfixes ^^^^^^^^ - Fix a killed tox (via SIGTERM) leaving the commands subprocesses running by handling it as if it were a KeyboardInterrupt - by :user:`dajose` `1772 <https://github.com/tox-dev/tox/issues/1772>`_ ``` ### 3.21.2 ``` -------------------- Bugfixes ^^^^^^^^ - Newer coverage tools update the ``COV_CORE_CONTEXT`` environment variable, add it to the list of environment variables that can change in our pytest plugin - by :user:`gaborbernat`. `1854 <https://github.com/tox-dev/tox/issues/1854>`_ ``` ### 3.21.1 ``` -------------------- Bugfixes ^^^^^^^^ - Fix regression that broke using install_command in config replacements - by :user:`jayvdb` `1777 <https://github.com/tox-dev/tox/issues/1777>`_ - Fix regression parsing posargs default containing colon. - by :user:`jayvdb` `1785 <https://github.com/tox-dev/tox/issues/1785>`_ Features ^^^^^^^^ - Prevent .tox in envlist - by :user:`jayvdb` `1684 <https://github.com/tox-dev/tox/issues/1684>`_ Miscellaneous ^^^^^^^^^^^^^ - Enable building tox with ``setuptools_scm`` 4 and 5 by :user:`hroncok` `1799 <https://github.com/tox-dev/tox/issues/1799>`_ ``` ### 3.21.0 ``` -------------------- Bugfixes ^^^^^^^^ - Fix the false ``congratulations`` message that appears when a ``KeyboardInterrupt`` occurs during package installation. - by :user:`gnikonorov` `1453 <https://github.com/tox-dev/tox/issues/1453>`_ - Fix ``platform`` support for ``install_command``. - by :user:`jayvdb` `1464 <https://github.com/tox-dev/tox/issues/1464>`_ - Fixed regression in v3.20.0 that caused escaped curly braces in setenv to break usage of the variable elsewhere in tox.ini. - by :user:`jayvdb` `1690 <https://github.com/tox-dev/tox/issues/1690>`_ - Prevent ``{}`` and require ``{:`` is only followed by ``}``. - by :user:`jayvdb` `1711 <https://github.com/tox-dev/tox/issues/1711>`_ - Raise ``MissingSubstitution`` on access of broken ini setting. - by :user:`jayvdb` `1716 <https://github.com/tox-dev/tox/issues/1716>`_ Features ^^^^^^^^ - Allow \{ and \} in default of {env:key:default}. - by :user:`jayvdb` `1502 <https://github.com/tox-dev/tox/issues/1502>`_ - Allow {posargs} in setenv. - by :user:`jayvdb` `1695 <https://github.com/tox-dev/tox/issues/1695>`_ - Allow {/} to refer to os.sep. - by :user:`jayvdb` `1700 <https://github.com/tox-dev/tox/issues/1700>`_ - Make parsing [testenv] sections in setup.cfg official. - by :user:`mauvilsa` `1727 <https://github.com/tox-dev/tox/issues/1727>`_ - Relax importlib requirement to allow 3.0.0 or any newer version - by :user:`pkolbus` `1763 <https://github.com/tox-dev/tox/issues/1763>`_ Documentation ^^^^^^^^^^^^^ - Document more info about using ``platform`` setting. - by :user:`prakhargurunani` `1144 <https://github.com/tox-dev/tox/issues/1144>`_ - Replace ``indexserver`` in documentation with environment variables - by :user:`ziima`. `1357 <https://github.com/tox-dev/tox/issues/1357>`_ - Document that the ``passenv`` environment setting is case insensitive. - by :user:`gnikonorov` `1534 <https://github.com/tox-dev/tox/issues/1534>`_ ``` ### 3.20.1 ``` -------------------- Bugfixes ^^^^^^^^ - Relax importlib requirement to allow version<3 - by :user:`usamasadiq` `1682 <https://github.com/tox-dev/tox/issues/1682>`_ ```Links
- PyPI: https://pypi.org/project/tox - Changelog: https://pyup.io/changelogs/tox/ - Docs: http://tox.readthedocs.orgUpdate Sphinx from 3.2.1 to 3.4.3.
Changelog
### 3.4.3 ``` ===================================== Bugs fixed ---------- * 8655: autodoc: Failed to generate document if target module contains an object that raises an exception on ``hasattr()`` ``` ### 3.4.2 ``` ===================================== Bugs fixed ---------- * 8164: autodoc: Classes that inherit mocked class are not documented * 8602: autodoc: The ``autodoc-process-docstring`` event is emitted to the non-datadescriptors unexpectedly * 8616: autodoc: AttributeError is raised on non-class object is passed to autoclass directive ``` ### 3.4.1 ``` ===================================== Bugs fixed ---------- * 8559: autodoc: AttributeError is raised when using forward-reference type annotations * 8568: autodoc: TypeError is raised on checking slots attribute * 8567: autodoc: Instance attributes are incorrectly added to Parent class * 8566: autodoc: The ``autodoc-process-docstring`` event is emitted to the alias classes unexpectedly * 8583: autodoc: Unnecessary object comparision via ``__eq__`` method * 8565: linkcheck: Fix PriorityQueue crash when link tuples are not comparable ``` ### 3.4.0 ``` ===================================== Incompatible changes -------------------- * 8105: autodoc: the signature of class constructor will be shown for decorated classes, not a signature of decorator Deprecated ---------- * The ``follow_wrapped`` argument of ``sphinx.util.inspect.signature()`` * The ``no_docstring`` argument of ``sphinx.ext.autodoc.Documenter.add_content()`` * ``sphinx.ext.autodoc.Documenter.get_object_members()`` * ``sphinx.ext.autodoc.DataDeclarationDocumenter`` * ``sphinx.ext.autodoc.GenericAliasDocumenter`` * ``sphinx.ext.autodoc.InstanceAttributeDocumenter`` * ``sphinx.ext.autodoc.SlotsAttributeDocumenter`` * ``sphinx.ext.autodoc.TypeVarDocumenter`` * ``sphinx.ext.autodoc.importer._getannotations()`` * ``sphinx.ext.autodoc.importer._getmro()`` * ``sphinx.pycode.ModuleAnalyzer.parse()`` * ``sphinx.util.osutil.movefile()`` * ``sphinx.util.requests.is_ssl_error()`` Features added -------------- * 8119: autodoc: Allow to determine whether a member not included in ``__all__`` attribute of the module should be documented or not via :event:`autodoc-skip-member` event * 8219: autodoc: Parameters for generic class are not shown when super class is a generic class and show-inheritance option is given (in Python 3.7 or above) * autodoc: Add ``Documenter.config`` as a shortcut to access the config object * autodoc: Add Optional[t] to annotation of function and method if a default value equal to None is set. * 8209: autodoc: Add ``:no-value:`` option to :rst:dir:`autoattribute` and :rst:dir:`autodata` directive to suppress the default value of the variable * 8460: autodoc: Support custom types defined by typing.NewType * 8285: napoleon: Add :confval:`napoleon_attr_annotations` to merge type hints on source code automatically if any type is specified in docstring * 8236: napoleon: Support numpydoc's "Receives" section * 6914: Add a new event :event:`warn-missing-reference` to custom warning messages when failed to resolve a cross-reference * 6914: Emit a detailed warning when failed to resolve a ``:ref:`` reference * 6629: linkcheck: The builder now handles rate limits. See :confval:`linkcheck_retry_on_rate_limit` for details. Bugs fixed ---------- * 7613: autodoc: autodoc does not respect __signature__ of the class * 4606: autodoc: the location of the warning is incorrect for inherited method * 8105: autodoc: the signature of class constructor is incorrect if the class is decorated * 8434: autodoc: :confval:`autodoc_type_aliases` does not effect to variables and attributes * 8443: autodoc: autodata directive can't create document for PEP-526 based type annotated variables * 8443: autodoc: autoattribute directive can't create document for PEP-526 based uninitalized variables * 8480: autodoc: autoattribute could not create document for __slots__ attributes * 8503: autodoc: autoattribute could not create document for a GenericAlias as class attributes correctly * 8534: autodoc: autoattribute could not create document for a commented attribute in alias class * 8452: autodoc: autodoc_type_aliases doesn't work when autodoc_typehints is set to "description" * 8541: autodoc: autodoc_type_aliases doesn't work for the type annotation to instance attributes * 8460: autodoc: autodata and autoattribute directives do not display type information of TypeVars * 8493: autodoc: references to builtins not working in class aliases * 8522: autodoc: ``__bool__`` method could be called * 8067: autodoc: A typehint for the instance variable having type_comment on super class is not displayed * 8545: autodoc: a __slots__ attribute is not documented even having docstring * 741: autodoc: inherited-members doesn't work for instance attributes on super class * 8477: autosummary: non utf-8 reST files are generated when template contains multibyte characters * 8501: autosummary: summary extraction splits text after "el at." unexpectedly * 8524: html: Wrong url_root has been generated on a document named "index" * 8419: html search: Do not load ``language_data.js`` in non-search pages * 8549: i18n: ``-D gettext_compact=0`` is no longer working * 8454: graphviz: The layout option for graph and digraph directives don't work * 8131: linkcheck: Use GET when HEAD requests cause Too Many Redirects, to accommodate infinite redirect loops on HEAD * 8437: Makefile: ``make clean`` with empty BUILDDIR is dangerous * 8365: py domain: ``:type:`` and ``:rtype:`` gives false ambiguous class lookup warnings * 8352: std domain: Failed to parse an option that starts with bracket * 8519: LaTeX: Prevent page brake in the middle of a seealso * 8520: C, fix copying of AliasNode. ``` ### 3.3.1 ``` ===================================== Bugs fixed ---------- * 8372: autodoc: autoclass directive became slower than Sphinx-3.2 * 7727: autosummary: raise PycodeError when documenting python package without __init__.py * 8350: autosummary: autosummary_mock_imports causes slow down builds * 8364: C, properly initialize attributes in empty symbols. * 8399: i18n: Put system locale path after the paths specified by configuration ``` ### 3.3.0 ``` ===================================== Deprecated ---------- * ``sphinx.builders.latex.LaTeXBuilder.usepackages`` * ``sphinx.builders.latex.LaTeXBuilder.usepackages_afger_hyperref`` * ``sphinx.ext.autodoc.SingledispatchFunctionDocumenter`` * ``sphinx.ext.autodoc.SingledispatchMethodDocumenter`` Features added -------------- * 8100: html: Show a better error message for failures on copying html_static_files * 8141: C: added a ``maxdepth`` option to :rst:dir:`c:alias` to insert nested declarations. * 8081: LaTeX: Allow to add LaTeX package via ``app.add_latex_package()`` until just before writing .tex file * 7996: manpage: Add :confval:`man_make_section_directory` to make a section directory on build man page * 8289: epub: Allow to suppress "duplicated ToC entry found" warnings from epub builder using :confval:`suppress_warnings`. * 8298: sphinx-quickstart: Add :option:`sphinx-quickstart --no-sep` option * 8304: sphinx.testing: Register public markers in sphinx.testing.fixtures * 8051: napoleon: use the obj role for all See Also items * 8050: napoleon: Apply :confval:`napoleon_preprocess_types` to every field * C and C++, show line numbers for previous declarations when duplicates are detected. * 8183: Remove substitution_reference nodes from doctree only on LaTeX builds Bugs fixed ---------- * 8085: i18n: Add support for having single text domain * 6640: i18n: Failed to override system message translation * 8143: autodoc: AttributeError is raised when False value is passed to autodoc_default_options * 8103: autodoc: functools.cached_property is not considered as a property * 8190: autodoc: parsing error is raised if some extension replaces docstring by string not ending with blank lines * 8142: autodoc: Wrong constructor signature for the class derived from typing.Generic * 8157: autodoc: TypeError is raised when annotation has invalid __args__ * 7964: autodoc: Tuple in default value is wrongly rendered * 8200: autodoc: type aliases break type formatting of autoattribute * 7786: autodoc: can't detect overloaded methods defined in other file * 8294: autodoc: single-string __slots__ is not handled correctly * 7785: autodoc: autodoc_typehints='none' does not effect to overloaded functions * 8192: napoleon: description is disappeared when it contains inline literals * 8142: napoleon: Potential of regex denial of service in google style docs * 8169: LaTeX: pxjahyper loaded even when latex_engine is not platex * 8215: LaTeX: 'oneside' classoption causes build warning * 8175: intersphinx: Potential of regex denial of service by broken inventory * 8277: sphinx-build: missing and redundant spacing (and etc) for console output on building * 7973: imgconverter: Check availability of imagemagick many times * 8255: py domain: number in default argument value is changed from hexadecimal to decimal * 8316: html: Prevent arrow keys changing page when button elements are focused * 8343: html search: Fix unnecessary load of images when parsing the document * 8254: html theme: Line numbers misalign with code lines * 8093: The highlight warning has wrong location in some builders (LaTeX, singlehtml and so on) * 8215: Eliminate Fancyhdr build warnings for oneside documents * 8239: Failed to refer a token in productionlist if it is indented * 8268: linkcheck: Report HTTP errors when ``linkcheck_anchors`` is ``True`` * 8245: linkcheck: take source directory into account for local files * 8321: linkcheck: ``tel:`` schema hyperlinks are detected as errors * 8323: linkcheck: An exit status is incorrect when links having unsupported schema found * 8188: C, add missing items to internal object types dictionary, e.g., preventing intersphinx from resolving them. * C, fix anon objects in intersphinx. * 8270, C++, properly reject functions as duplicate declarations if a non-function declaration of the same name already exists. * C, fix references to function parameters. Link to the function instead of a non-existing anchor. * 6914: figure numbers are unexpectedly assigned to uncaptioned items * 8320: make "inline" line numbers un-selectable Testing -------- * 8257: Support parallel build in sphinx.testing ```Links
- PyPI: https://pypi.org/project/sphinx - Changelog: https://pyup.io/changelogs/sphinx/ - Homepage: http://sphinx-doc.org/Update numpy from 1.19.1 to 1.20.0.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/numpy - Homepage: https://www.numpy.orgUpdate pytest from 6.0.1 to 6.2.2.
Changelog
### 6.2.2 ``` ========================= Bug Fixes --------- - `8152 <https://github.com/pytest-dev/pytest/issues/8152>`_: Fixed "(<Skipped instance>)" being shown as a skip reason in the verbose test summary line when the reason is empty. - `8249 <https://github.com/pytest-dev/pytest/issues/8249>`_: Fix the ``faulthandler`` plugin for occasions when running with ``twisted.logger`` and using ``pytest --capture=no``. ``` ### 6.2.1 ``` ========================= Bug Fixes --------- - `7678 <https://github.com/pytest-dev/pytest/issues/7678>`_: Fixed bug where ``ImportPathMismatchError`` would be raised for files compiled in the host and loaded later from an UNC mounted path (Windows). - `8132 <https://github.com/pytest-dev/pytest/issues/8132>`_: Fixed regression in ``approx``: in 6.2.0 ``approx`` no longer raises ``TypeError`` when dealing with non-numeric types, falling back to normal comparison. Before 6.2.0, array types like tf.DeviceArray fell through to the scalar case, and happened to compare correctly to a scalar if they had only one element. After 6.2.0, these types began failing, because they inherited neither from standard Python number hierarchy nor from ``numpy.ndarray``. ``approx`` now converts arguments to ``numpy.ndarray`` if they expose the array protocol and are not scalars. This treats array-like objects like numpy arrays, regardless of size. ``` ### 6.2.0 ``` ========================= Breaking Changes ---------------- - `7808 <https://github.com/pytest-dev/pytest/issues/7808>`_: pytest now supports python3.6+ only. Deprecations ------------ - `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_: Directly constructing/calling the following classes/functions is now deprecated: - ``_pytest.cacheprovider.Cache`` - ``_pytest.cacheprovider.Cache.for_config()`` - ``_pytest.cacheprovider.Cache.clear_cache()`` - ``_pytest.cacheprovider.Cache.cache_dir_from_config()`` - ``_pytest.capture.CaptureFixture`` - ``_pytest.fixtures.FixtureRequest`` - ``_pytest.fixtures.SubRequest`` - ``_pytest.logging.LogCaptureFixture`` - ``_pytest.pytester.Pytester`` - ``_pytest.pytester.Testdir`` - ``_pytest.recwarn.WarningsRecorder`` - ``_pytest.recwarn.WarningsChecker`` - ``_pytest.tmpdir.TempPathFactory`` - ``_pytest.tmpdir.TempdirFactory`` These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0. - `7530 <https://github.com/pytest-dev/pytest/issues/7530>`_: The ``--strict`` command-line option has been deprecated, use ``--strict-markers`` instead. We have plans to maybe in the future to reintroduce ``--strict`` and make it an encompassing flag for all strictness related options (``--strict-markers`` and ``--strict-config`` at the moment, more might be introduced in the future). - `7988 <https://github.com/pytest-dev/pytest/issues/7988>`_: The ``pytest.yield_fixture`` decorator/function is now deprecated. Use :func:`pytest.fixture` instead. ``yield_fixture`` has been an alias for ``fixture`` for a very long time, so can be search/replaced safely. Features -------- - `5299 <https://github.com/pytest-dev/pytest/issues/5299>`_: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8. See :ref:`unraisable` for more information. - `7425 <https://github.com/pytest-dev/pytest/issues/7425>`_: New :fixture:`pytester` fixture, which is identical to :fixture:`testdir` but its methods return :class:`pathlib.Path` when appropriate instead of ``py.path.local``. This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future. Internally, the old :class:`Testdir <_pytest.pytester.Testdir>` is now a thin wrapper around :class:`Pytester <_pytest.pytester.Pytester>`, preserving the old interface. - `7695 <https://github.com/pytest-dev/pytest/issues/7695>`_: A new hook was added, `pytest_markeval_namespace` which should return a dictionary. This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers. Pseudo example ``conftest.py``: .. code-block:: python def pytest_markeval_namespace(): return {"color": "red"} ``test_func.py``: .. code-block:: python pytest.mark.skipif("color == 'blue'", reason="Color is not red") def test_func(): assert False - `8006 <https://github.com/pytest-dev/pytest/issues/8006>`_: It is now possible to construct a :class:`~pytest.MonkeyPatch` object directly as ``pytest.MonkeyPatch()``, in cases when the :fixture:`monkeypatch` fixture cannot be used. Previously some users imported it from the private `_pytest.monkeypatch.MonkeyPatch` namespace. Additionally, :meth:`MonkeyPatch.context <pytest.MonkeyPatch.context>` is now a classmethod, and can be used as ``with MonkeyPatch.context() as mp: ...``. This is the recommended way to use ``MonkeyPatch`` directly, since unlike the ``monkeypatch`` fixture, an instance created directly is not ``undo()``-ed automatically. Improvements ------------ - `1265 <https://github.com/pytest-dev/pytest/issues/1265>`_: Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method. - `2044 <https://github.com/pytest-dev/pytest/issues/2044>`_: Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS". - `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_ The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions. The newly-exported types are: - ``pytest.FixtureRequest`` for the :fixture:`request` fixture. - ``pytest.Cache`` for the :fixture:`cache` fixture. - ``pytest.CaptureFixture[str]`` for the :fixture:`capfd` and :fixture:`capsys` fixtures. - ``pytest.CaptureFixture[bytes]`` for the :fixture:`capfdbinary` and :fixture:`capsysbinary` fixtures. - ``pytest.LogCaptureFixture`` for the :fixture:`caplog` fixture. - ``pytest.Pytester`` for the :fixture:`pytester` fixture. - ``pytest.Testdir`` for the :fixture:`testdir` fixture. - ``pytest.TempdirFactory`` for the :fixture:`tmpdir_factory` fixture. - ``pytest.TempPathFactory`` for the :fixture:`tmp_path_factory` fixture. - ``pytest.MonkeyPatch`` for the :fixture:`monkeypatch` fixture. - ``pytest.WarningsRecorder`` for the :fixture:`recwarn` fixture. Constructing them is not supported (except for `MonkeyPatch`); they are only meant for use in type annotations. Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0. Subclassing them is also not supported. This is not currently enforced at runtime, but is detected by type-checkers such as mypy. - `7527 <https://github.com/pytest-dev/pytest/issues/7527>`_: When a comparison between :func:`namedtuple <collections.namedtuple>` instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes. - `7615 <https://github.com/pytest-dev/pytest/issues/7615>`_: :meth:`Node.warn <_pytest.nodes.Node.warn>` now permits any subclass of :class:`Warning`, not just :class:`PytestWarning <pytest.PytestWarning>`. - `7701 <https://github.com/pytest-dev/pytest/issues/7701>`_: Improved reporting when using ``--collected-only``. It will now show the number of collected tests in the summary stats. - `7710 <https://github.com/pytest-dev/pytest/issues/7710>`_: Use strict equality comparison for non-numeric types in :func:`pytest.approx` instead of raising :class:`TypeError`. This was the undocumented behavior before 3.7, but is now officially a supported feature. - `7938 <https://github.com/pytest-dev/pytest/issues/7938>`_: New ``--sw-skip`` argument which is a shorthand for ``--stepwise-skip``. - `8023 <https://github.com/pytest-dev/pytest/issues/8023>`_: Added ``'node_modules'`` to default value for :confval:`norecursedirs`. - `8032 <https://github.com/pytest-dev/pytest/issues/8032>`_: :meth:`doClassCleanups <unittest.TestCase.doClassCleanups>` (introduced in :mod:`unittest` in Python and 3.8) is now called appropriately. Bug Fixes --------- - `4824 <https://github.com/pytest-dev/pytest/issues/4824>`_: Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures. - `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0. - `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites. - `7913 <https://github.com/pytest-dev/pytest/issues/7913>`_: Fixed a crash or hang in :meth:`pytester.spawn <_pytest.pytester.Pytester.spawn>` when the :mod:`readline` module is involved. - `7951 <https://github.com/pytest-dev/pytest/issues/7951>`_: Fixed handling of recursive symlinks when collecting tests. - `7981 <https://github.com/pytest-dev/pytest/issues/7981>`_: Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0. - `8016 <https://github.com/pytest-dev/pytest/issues/8016>`_: Fixed only one doctest being collected when using ``pytest --doctest-modules path/to/an/__init__.py``. Improved Documentation ---------------------- - `7429 <https://github.com/pytest-dev/pytest/issues/7429>`_: Add more information and use cases about skipping doctests. - `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Classes which should not be inherited from are now marked ``final class`` in the API reference. - `7872 <https://github.com/pytest-dev/pytest/issues/7872>`_: ``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``"string"``. - `7878 <https://github.com/pytest-dev/pytest/issues/7878>`_: In pull request section, ask to commit after editing changelog and authors file. Trivial/Internal Changes ------------------------ - `7802 <https://github.com/pytest-dev/pytest/issues/7802>`_: The ``attrs`` dependency requirement is now >=19.2.0 instead of >=17.4.0. - `8014 <https://github.com/pytest-dev/pytest/issues/8014>`_: `.pyc` files created by pytest's assertion rewriting now conform to the newer PEP-552 format on Python>=3.7. (These files are internal and only interpreted by pytest itself.) ``` ### 6.1.2 ``` ========================= Bug Fixes --------- - `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0. - `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by `tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites. Improved Documentation ---------------------- - `7815 <https://github.com/pytest-dev/pytest/issues/7815>`_: Improve deprecation warning message for ``pytest._fillfuncargs()``. ``` ### 6.1.1 ``` ========================= Bug Fixes --------- - `7807 <https://github.com/pytest-dev/pytest/issues/7807>`_: Fixed regression in pytest 6.1.0 causing incorrect rootdir to be determined in some non-trivial cases where parent directories have config files as well. - `7814 <https://github.com/pytest-dev/pytest/issues/7814>`_: Fixed crash in header reporting when :confval:`testpaths` is used and contains absolute paths (regression in 6.1.0). ``` ### 6.1.0 ``` ========================= Breaking Changes ---------------- - `5585 <https://github.com/pytest-dev/pytest/issues/5585>`_: As per our policy, the following features which have been deprecated in the 5.X series are now removed: * The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute. * ``pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead. * Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead. * The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file. * The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly. * The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin instead. For more information consult `Deprecations and Removals <https://docs.pytest.org/en/stable/deprecations.html>`__ in the docs. Deprecations ------------ - `6981 <https://github.com/pytest-dev/pytest/issues/6981>`_: The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly. - `7097 <https://github.com/pytest-dev/pytest/issues/7097>`_: The ``pytest._fillfuncargs`` function is deprecated. This function was kept for backward compatibility with an older plugin. It's functionality is not meant to be used directly, but if you must replace it, use `function._request._fillfixtures()` instead, though note this is not a public API and may break in the future. - `7210 <https://github.com/pytest-dev/pytest/issues/7210>`_: The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'`` instead. The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue if you use this and want a replacement. - `7255 <https://github.com/pytest-dev/pytest/issues/7255>`_: The :func:`pytest_warning_captured <_pytest.hookspec.pytest_warning_captured>` hook is deprecated in favor of :func:`pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>`, and will be removed in a future version. - `7648 <https://github.com/pytest-dev/pytest/issues/7648>`_: The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated; use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead. This should work on all pytest versions. Features -------- - `7667 <https://github.com/pytest-dev/pytest/issues/7667>`_: New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``. Improvements ------------ - `6681 <https://github.com/pytest-dev/pytest/issues/6681>`_: Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``. This also fixes a number of long standing issues: `2891 <https://github.com/pytest-dev/pytest/issues/2891>`__, `#7620 <https://github.com/pytest-dev/pytest/issues/7620>`__, `#7426 <https://github.com/pytest-dev/pytest/issues/7426>`__. - `7572 <https://github.com/pytest-dev/pytest/issues/7572>`_: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace. - `7685 <https://github.com/pytest-dev/pytest/issues/7685>`_: Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`. These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes, and should be preferred over them when possible. - `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Public classes which are not designed to be inherited from are now marked `final <https://docs.python.org/3/library/typing.html#typing.final>`_. Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime. Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future. Bug Fixes --------- - `1953 <https://github.com/pytest-dev/pytest/issues/1953>`_: Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value. .. code-block:: python conftest.py import pytest pytest.fixture(params=[1, 2]) def foo(request): return request.param test_foo.py import pytest pytest.fixture def foo(foo): return foo * 2 - `4984 <https://github.com/pytest-dev/pytest/issues/4984>`_: Fixed an internal error crash with ``IndexError: list index out of range`` when collecting a module which starts with a decorated function, the decorator raises, and assertion rewriting is enabled. - `7591 <https://github.com/pytest-dev/pytest/issues/7591>`_: pylint shouldn't complain anymore about unimplemented abstract methods when inheriting from :ref:`File <non-python tests>`. - `7628 <https://github.com/pytest-dev/pytest/issues/7628>`_: Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``). - `7638 <https://github.com/pytest-dev/pytest/issues/7638>`_: Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``. - `7742 <https://github.com/pytest-dev/pytest/issues/7742>`_: Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``. Improved Documentation ---------------------- - `1477 <https://github.com/pytest-dev/pytest/issues/1477>`_: Removed faq.rst and its reference in contents.rst. Trivial/Internal Changes ------------------------ - `7536 <https://github.com/pytest-dev/pytest/issues/7536>`_: The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``. The order of attributes in XML elements might differ. Some unneeded escaping is no longer performed. - `7587 <https://github.com/pytest-dev/pytest/issues/7587>`_: The dependency on the ``more-itertools`` package has been removed. - `7631 <https://github.com/pytest-dev/pytest/issues/7631>`_: The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple, but should behave like one in all respects. This was done for technical reasons. - `7671 <https://github.com/pytest-dev/pytest/issues/7671>`_: When collecting tests, pytest finds test classes and functions by examining the attributes of python objects (modules, classes and instances). To speed up this process, pytest now ignores builtin attributes (like ``__class__``, ``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and :confval:`python_functions` configuration options and without passing them to plugins using the :func:`pytest_pycollect_makeitem <_pytest.hookspec.pytest_pycollect_makeitem>` hook. ``` ### 6.0.2 ``` ========================= Bug Fixes --------- - `7148 <https://github.com/pytest-dev/pytest/issues/7148>`_: Fixed ``--log-cli`` potentially causing unrelated ``prin