Changelog
### 2.1.9
```
~~~~~
2022-06-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.8...v2.1.9>`__
- [fsevents] Fix flakey test to assert that there are no errors when stopping the emitter.
- [inotify] Suppress occasional ``OSError: [Errno 9] Bad file descriptor`` at shutdown. (`805 <https://github.com/gorakhargosh/watchdog/issues/805>`__)
- [watchmedo] Make ``auto-restart`` restart the sub-process if it terminates. (`896 <https://github.com/gorakhargosh/watchdog/pull/896>`__)
- [watchmedo] Avoid zombie sub-processes when running ``shell-command`` without ``--wait``. (`405 <https://github.com/gorakhargosh/watchdog/issues/405>`__)
- Thanks to our beloved contributors: samschott, taleinat, altendky, BoboTiG
```
### 2.1.8
```
~~~~~
2022-05-15 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.7...v2.1.8>`__
- Fix adding failed emitters on observer schedule. (`872 <https://github.com/gorakhargosh/watchdog/issues/872>`__)
- [inotify] Fix hang when unscheduling watch on a path in an unmounted filesystem. (`869 <https://github.com/gorakhargosh/watchdog/pull/869>`__)
- [watchmedo] Fix broken parsing of ``--kill-after`` argument for the ``auto-restart`` command. (`870 <https://github.com/gorakhargosh/watchdog/issues/870>`__)
- [watchmedo] Fix broken parsing of boolean arguments. (`887 <https://github.com/gorakhargosh/watchdog/issues/887>`__)
- [watchmedo] Fix broken parsing of commands from ``auto-restart``, and ``shell-command``. (`888 <https://github.com/gorakhargosh/watchdog/issues/888>`__)
- [watchmedo] Support setting verbosity level via ``-q/--quiet`` and ``-v/--verbose`` arguments. (`889 <https://github.com/gorakhargosh/watchdog/pull/889>`__)
- Thanks to our beloved contributors: taleinat, kianmeng, palfrey, IlayRosenberg, BoboTiG
```
### 2.1.7
```
~~~~~
2022-03-25 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.6...v2.1.7>`__
- Eliminate timeout in waiting on event queue. (`861 <https://github.com/gorakhargosh/watchdog/pull/861>`__)
- [inotify] Fix ``not`` equality implementation for ``InotifyEvent``. (`848 <https://github.com/gorakhargosh/watchdog/pull/848>`__)
- [watchmedo] Fix calling commands from within a Python script. (`879 <https://github.com/gorakhargosh/watchdog/pull/879>`__)
- [watchmedo] ``PyYAML`` is loaded only when strictly necessary. Simple usages of ``watchmedo`` are possible without the module being installed. (`847 <https://github.com/gorakhargosh/watchdog/pull/847>`__)
- Thanks to our beloved contributors: sattlerc, JanzenLiu, BoboTiG
```
### 2.1.6
```
~~~~~
2021-10-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.5...v2.1.6>`__
- [bsd] Fixed returned paths in ``kqueue.py`` and restored the overall results of the test suite. (`842 <https://github.com/gorakhargosh/watchdog/pull/842>`__)
- [bsd] Updated FreeBSD CI support .(`841 <https://github.com/gorakhargosh/watchdog/pull/841>`__)
- [watchmedo] Removed the ``argh`` dependency in favor of the builtin ``argparse`` module. (`836 <https://github.com/gorakhargosh/watchdog/pull/836>`__)
- [watchmedo] Removed unexistant ``WindowsApiAsyncObserver`` references and ``--debug-force-winapi-async`` arguments.
- [watchmedo] Improved the help output.
- Thanks to our beloved contributors: knobix, AndreaRe9, BoboTiG
```
Links
- PyPI: https://pypi.org/project/watchdog
- Changelog: https://pyup.io/changelogs/watchdog/
- Repo: https://github.com/gorakhargosh/watchdog
- Docs: https://pythonhosted.org/watchdog/
Changelog
### 6.5.0
```
--------------------------
- The JSON report now includes details of which branches were taken, and which
are missing for each file. Thanks, Christoph Blessing (`pull 1438`_). Closes
`issue 1425`_.
- Starting with coverage.py 6.2, ``class`` statements were marked as a branch.
This wasn't right, and has been reverted, fixing `issue 1449`_. Note this
will very slightly reduce your coverage total if you are measuring branch
coverage.
- Packaging is now compliant with `PEP 517`_, closing `issue 1395`_.
- A new debug option ``--debug=pathmap`` shows details of the remapping of
paths that happens during combine due to the ``[paths]`` setting.
- Fix an internal problem with caching of invalid Python parsing. Found by
OSS-Fuzz, fixing their `bug 50381`_.
.. _bug 50381: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50381
.. _PEP 517: https://peps.python.org/pep-0517/
.. _issue 1395: https://github.com/nedbat/coveragepy/issues/1395
.. _issue 1425: https://github.com/nedbat/coveragepy/issues/1425
.. _pull 1438: https://github.com/nedbat/coveragepy/pull/1438
.. _issue 1449: https://github.com/nedbat/coveragepy/issues/1449
.. _changes_6-4-4:
```
### 6.4.4
```
--------------------------
- Wheels are now provided for Python 3.11.
.. _changes_6-4-3:
```
### 6.4.3
```
--------------------------
- Fix a failure when combining data files if the file names contained
glob-like patterns (`pull 1405`_). Thanks, Michael Krebs and Benjamin
Schubert.
- Fix a messaging failure when combining Windows data files on a different
drive than the current directory. (`pull 1430`_, fixing `issue 1428`_).
Thanks, Lorenzo Micò.
- Fix path calculations when running in the root directory, as you might do in
a Docker container: `pull 1403`_, thanks Arthur Rio.
- Filtering in the HTML report wouldn't work when reloading the index page.
This is now fixed (`pull 1413`_). Thanks, Marc Legendre.
- Fix a problem with Cython code measurement (`pull 1347`_, fixing `issue
972`_). Thanks, Matus Valo.
.. _issue 972: https://github.com/nedbat/coveragepy/issues/972
.. _pull 1347: https://github.com/nedbat/coveragepy/pull/1347
.. _pull 1403: https://github.com/nedbat/coveragepy/issues/1403
.. _pull 1405: https://github.com/nedbat/coveragepy/issues/1405
.. _pull 1413: https://github.com/nedbat/coveragepy/issues/1413
.. _issue 1428: https://github.com/nedbat/coveragepy/issues/1428
.. _pull 1430: https://github.com/nedbat/coveragepy/pull/1430
.. _changes_6-4-2:
```
### 6.4.2
```
--------------------------
- Updated for a small change in Python 3.11.0 beta 4: modules now start with a
line with line number 0, which is ignored. This line cannnot be executed, so
coverage totals were thrown off. This line is now ignored by coverage.py,
but this also means that truly empty modules (like ``__init__.py``) have no
lines in them, rather than one phantom line. Fixes `issue 1419`_.
- Internal debugging data added to sys.modules is now an actual module, to
avoid confusing code that examines everything in sys.modules. Thanks,
Yilei Yang (`pull 1399`_).
.. _pull 1399: https://github.com/nedbat/coveragepy/pull/1399
.. _issue 1419: https://github.com/nedbat/coveragepy/issues/1419
.. _changes_6-4-1:
```
### 6.4.1
```
--------------------------
- Greatly improved performance on PyPy, and other environments that need the
pure Python trace function. Thanks, Carl Friedrich Bolz-Tereick (`pull
1381`_ and `pull 1388`_). Slightly improved performance when using the C
trace function, as most environments do. Closes `issue 1339`_.
- The conditions for using tomllib from the standard library have been made
more precise, so that 3.11 alphas will continue to work. Closes `issue
1390`_.
.. _issue 1339: https://github.com/nedbat/coveragepy/issues/1339
.. _pull 1381: https://github.com/nedbat/coveragepy/pull/1381
.. _pull 1388: https://github.com/nedbat/coveragepy/pull/1388
.. _issue 1390: https://github.com/nedbat/coveragepy/issues/1390
.. _changes_64:
```
### 6.4
```
------------------------
- A new setting, :ref:`config_run_sigterm`, controls whether a SIGTERM signal
handler is used. In 6.3, the signal handler was always installed, to capture
data at unusual process ends. Unfortunately, this introduced other problems
(see `issue 1310`_). Now the signal handler is only used if you opt-in by
setting ``[run] sigterm = true``.
- Small changes to the HTML report:
- Added links to next and previous file, and more keyboard shortcuts: ``[``
and ``]`` for next file and previous file; ``u`` for up to the index; and
``?`` to open/close the help panel. Thanks, `J. M. F. Tsang
<pull 1364_>`_.
- The timestamp and version are displayed at the top of the report. Thanks,
`Ammar Askar <pull 1354_>`_. Closes `issue 1351`_.
- A new debug option ``debug=sqldata`` adds more detail to ``debug=sql``,
logging all the data being written to the database.
- Previously, running ``coverage report`` (or any of the reporting commands) in
an empty directory would create a .coverage data file. Now they do not,
fixing `issue 1328`_.
- On Python 3.11, the ``[toml]`` extra no longer installs tomli, instead using
tomllib from the standard library. Thanks `Shantanu <pull 1359_>`_.
- In-memory CoverageData objects now properly update(), closing `issue 1323`_.
.. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310
.. _issue 1323: https://github.com/nedbat/coveragepy/issues/1323
.. _issue 1328: https://github.com/nedbat/coveragepy/issues/1328
.. _issue 1351: https://github.com/nedbat/coveragepy/issues/1351
.. _pull 1354: https://github.com/nedbat/coveragepy/pull/1354
.. _pull 1359: https://github.com/nedbat/coveragepy/pull/1359
.. _pull 1364: https://github.com/nedbat/coveragepy/pull/1364
.. _changes_633:
```
### 6.3.3
```
--------------------------
- Fix: Coverage.py now builds successfully on CPython 3.11 (3.11.0b1) again.
Closes `issue 1367`_. Some results for generators may have changed.
.. _issue 1367: https://github.com/nedbat/coveragepy/issues/1367
.. _changes_632:
```
### 6.3.2
```
--------------------------
- Fix: adapt to pypy3.9's decorator tracing behavior. It now traces function
decorators like CPython 3.8: both the -line and the def-line are traced.
Fixes `issue 1326`_.
- Debug: added ``pybehave`` to the list of :ref:`coverage debug <cmd_debug>`
and :ref:`cmd_run_debug` options.
- Fix: show an intelligible error message if ``--concurrency=multiprocessing``
is used without a configuration file. Closes `issue 1320`_.
.. _issue 1320: https://github.com/nedbat/coveragepy/issues/1320
.. _issue 1326: https://github.com/nedbat/coveragepy/issues/1326
.. _changes_631:
```
### 6.3.1
```
--------------------------
- Fix: deadlocks could occur when terminating processes. Some of these
deadlocks (described in `issue 1310`_) are now fixed.
- Fix: a signal handler was being set from multiple threads, causing an error:
"ValueError: signal only works in main thread". This is now fixed, closing
`issue 1312`_.
- Fix: ``--precision`` on the command-line was being ignored while considering
``--fail-under``. This is now fixed, thanks to
`Marcelo Trylesinski <pull 1317_>`_.
- Fix: releases no longer provide 3.11.0-alpha wheels. Coverage.py uses CPython
internal fields which are moving during the alpha phase. Fixes `issue 1316`_.
.. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310
.. _issue 1312: https://github.com/nedbat/coveragepy/issues/1312
.. _issue 1316: https://github.com/nedbat/coveragepy/issues/1316
.. _pull 1317: https://github.com/nedbat/coveragepy/pull/1317
.. _changes_63:
```
### 6.3
```
------------------------
- Feature: Added the ``lcov`` command to generate reports in LCOV format.
Thanks, `Bradley Burns <pull 1289_>`_. Closes issues `587 <issue 587_>`_
and `626 <issue 626_>`_.
- Feature: the coverage data file can now be specified on the command line with
the ``--data-file`` option in any command that reads or writes data. This is
in addition to the existing ``COVERAGE_FILE`` environment variable. Closes
`issue 624`_. Thanks, `Nikita Bloshchanevich <pull 1304_>`_.
- Feature: coverage measurement data will now be written when a SIGTERM signal
is received by the process. This includes
:meth:`Process.terminate <python:multiprocessing.Process.terminate>`,
and other ways to terminate a process. Currently this is only on Linux and
Mac; Windows is not supported. Fixes `issue 1307`_.
- Dropped support for Python 3.6, which reached end-of-life on 2021-12-23.
- Updated Python 3.11 support to 3.11.0a4, fixing `issue 1294`_.
- Fix: the coverage data file is now created in a more robust way, to avoid
problems when multiple processes are trying to write data at once. Fixes
issues `1303 <issue 1303_>`_ and `883 <issue 883_>`_.
- Fix: a .gitignore file will only be written into the HTML report output
directory if the directory is empty. This should prevent certain unfortunate
accidents of writing the file where it is not wanted.
- Releases now have MacOS arm64 wheels for Apple Silicon, fixing `issue 1288`_.
.. _issue 587: https://github.com/nedbat/coveragepy/issues/587
.. _issue 624: https://github.com/nedbat/coveragepy/issues/624
.. _issue 626: https://github.com/nedbat/coveragepy/issues/626
.. _issue 883: https://github.com/nedbat/coveragepy/issues/883
.. _issue 1288: https://github.com/nedbat/coveragepy/issues/1288
.. _issue 1294: https://github.com/nedbat/coveragepy/issues/1294
.. _issue 1303: https://github.com/nedbat/coveragepy/issues/1303
.. _issue 1307: https://github.com/nedbat/coveragepy/issues/1307
.. _pull 1289: https://github.com/nedbat/coveragepy/pull/1289
.. _pull 1304: https://github.com/nedbat/coveragepy/pull/1304
.. _changes_62:
```
### 6.2
```
------------------------
- Feature: Now the ``--concurrency`` setting can now have a list of values, so
that threads and another lightweight threading package can be measured
together, such as ``--concurrency=gevent,thread``. Closes `issue 1012`_ and
`issue 1082`_.
- Fix: A module specified as the ``source`` setting is imported during startup,
before the user program imports it. This could cause problems if the rest of
the program isn't ready yet. For example, `issue 1203`_ describes a Django
setting that is accessed before settings have been configured. Now the early
import is wrapped in a try/except so errors then don't stop execution.
- Fix: A colon in a decorator expression would cause an exclusion to end too
early, preventing the exclusion of the decorated function. This is now fixed.
- Fix: The HTML report now will not overwrite a .gitignore file that already
exists in the HTML output directory (follow-on for `issue 1244`_).
- API: The exceptions raised by Coverage.py have been specialized, to provide
finer-grained catching of exceptions by third-party code.
- API: Using ``suffix=False`` when constructing a Coverage object with
multiprocessing wouldn't suppress the data file suffix (`issue 989`_). This
is now fixed.
- Debug: The ``coverage debug data`` command will now sniff out combinable data
files, and report on all of them.
- Debug: The ``coverage debug`` command used to accept a number of topics at a
time, and show all of them, though this was never documented. This no longer
works, to allow for command-line options in the future.
.. _issue 989: https://github.com/nedbat/coveragepy/issues/989
.. _issue 1012: https://github.com/nedbat/coveragepy/issues/1012
.. _issue 1082: https://github.com/nedbat/coveragepy/issues/1082
.. _issue 1203: https://github.com/nedbat/coveragepy/issues/1203
.. _changes_612:
```
### 6.1.2
```
--------------------------
- Python 3.11 is supported (tested with 3.11.0a2). One still-open issue has to
do with `exits through with-statements <issue 1270_>`_.
- Fix: When remapping file paths through the ``[paths]`` setting while
combining, the ``[run] relative_files`` setting was ignored, resulting in
absolute paths for remapped file names (`issue 1147`_). This is now fixed.
- Fix: Complex conditionals over excluded lines could have incorrectly reported
a missing branch (`issue 1271`_). This is now fixed.
- Fix: More exceptions are now handled when trying to parse source files for
reporting. Problems that used to terminate coverage.py can now be handled
with ``[report] ignore_errors``. This helps with plugins failing to read
files (`django_coverage_plugin issue 78`_).
- Fix: Removed another vestige of jQuery from the source tarball
(`issue 840`_).
- Fix: Added a default value for a new-to-6.x argument of an internal class.
This unsupported class is being used by coveralls (`issue 1273`_). Although
I'd rather not "fix" unsupported interfaces, it's actually nicer with a
default value.
.. _django_coverage_plugin issue 78: https://github.com/nedbat/django_coverage_plugin/issues/78
.. _issue 1147: https://github.com/nedbat/coveragepy/issues/1147
.. _issue 1270: https://github.com/nedbat/coveragepy/issues/1270
.. _issue 1271: https://github.com/nedbat/coveragepy/issues/1271
.. _issue 1273: https://github.com/nedbat/coveragepy/issues/1273
.. _changes_611:
```
### 6.1.1
```
--------------------------
- Fix: The sticky header on the HTML report didn't work unless you had branch
coverage enabled. This is now fixed: the sticky header works for everyone.
(Do people still use coverage without branch measurement!? j/k)
- Fix: When using explicitly declared namespace packages, the "already imported
a file that will be measured" warning would be issued (`issue 888`_). This
is now fixed.
.. _issue 888: https://github.com/nedbat/coveragepy/issues/888
.. _changes_61:
```
### 6.1
```
------------------------
- Deprecated: The ``annotate`` command and the ``Coverage.annotate`` function
will be removed in a future version, unless people let me know that they are
using it. Instead, the ``html`` command gives better-looking (and more
accurate) output, and the ``report -m`` command will tell you line numbers of
missing lines. Please get in touch if you have a reason to use ``annotate``
over those better options: nednedbatchelder.com.
- Feature: Coverage now sets an environment variable, ``COVERAGE_RUN`` when
running your code with the ``coverage run`` command. The value is not
important, and may change in the future. Closes `issue 553`_.
- Feature: The HTML report pages for Python source files now have a sticky
header so the file name and controls are always visible.
- Feature: The ``xml`` and ``json`` commands now describe what they wrote
where.
- Feature: The ``html``, ``combine``, ``xml``, and ``json`` commands all accept
a ``-q/--quiet`` option to suppress the messages they write to stdout about
what they are doing (`issue 1254`_).
- Feature: The ``html`` command writes a ``.gitignore`` file into the HTML
output directory, to prevent the report from being committed to git. If you
want to commit it, you will need to delete that file. Closes `issue 1244`_.
- Feature: Added support for PyPy 3.8.
- Fix: More generated code is now excluded from measurement. Code such as
`attrs`_ boilerplate, or doctest code, was being measured though the
synthetic line numbers meant they were never reported. Once Cython was
involved though, the generated .so files were parsed as Python, raising
syntax errors, as reported in `issue 1160`_. This is now fixed.
- Fix: When sorting human-readable names, numeric components are sorted
correctly: file10.py will appear after file9.py. This applies to file names,
module names, environment variables, and test contexts.
- Performance: Branch coverage measurement is faster, though you might only
notice on code that is executed many times, such as long-running loops.
- Build: jQuery is no longer used or vendored (`issue 840`_ and `issue 1118`_).
Huge thanks to Nils Kattenbeck (septatrix) for the conversion to vanilla
JavaScript in `pull request 1248`_.
.. _issue 553: https://github.com/nedbat/coveragepy/issues/553
.. _issue 840: https://github.com/nedbat/coveragepy/issues/840
.. _issue 1118: https://github.com/nedbat/coveragepy/issues/1118
.. _issue 1160: https://github.com/nedbat/coveragepy/issues/1160
.. _issue 1244: https://github.com/nedbat/coveragepy/issues/1244
.. _pull request 1248: https://github.com/nedbat/coveragepy/pull/1248
.. _issue 1254: https://github.com/nedbat/coveragepy/issues/1254
.. _attrs: https://www.attrs.org/
.. _changes_602:
```
### 6.0.2
```
--------------------------
- Namespace packages being measured weren't properly handled by the new code
that ignores third-party packages. If the namespace package was installed, it
was ignored as a third-party package. That problem (`issue 1231`_) is now
fixed.
- Packages named as "source packages" (with ``source``, or ``source_pkgs``, or
pytest-cov's ``--cov``) might have been only partially measured. Their
top-level statements could be marked as unexecuted, because they were
imported by coverage.py before measurement began (`issue 1232`_). This is
now fixed, but the package will be imported twice, once by coverage.py, then
again by your test suite. This could cause problems if importing the package
has side effects.
- The :meth:`.CoverageData.contexts_by_lineno` method was documented to return
a dict, but was returning a defaultdict. Now it returns a plain dict. It
also no longer returns negative numbered keys.
.. _issue 1231: https://github.com/nedbat/coveragepy/issues/1231
.. _issue 1232: https://github.com/nedbat/coveragepy/issues/1232
.. _changes_601:
```
### 6.0.1
```
--------------------------
- In 6.0, the coverage.py exceptions moved from coverage.misc to
coverage.exceptions. These exceptions are not part of the public supported
API, CoverageException is. But a number of other third-party packages were
importing the exceptions from coverage.misc, so they are now available from
there again (`issue 1226`_).
- Changed an internal detail of how tomli is imported, so that tomli can use
coverage.py for their own test suite (`issue 1228`_).
- Defend against an obscure possibility under code obfuscation, where a
function can have an argument called "self", but no local named "self"
(`pull request 1210`_). Thanks, Ben Carlsson.
.. _pull request 1210: https://github.com/nedbat/coveragepy/pull/1210
.. _issue 1226: https://github.com/nedbat/coveragepy/issues/1226
.. _issue 1228: https://github.com/nedbat/coveragepy/issues/1228
.. _changes_60:
```
### 6.0
```
------------------------
- The ``coverage html`` command now prints a message indicating where the HTML
report was written. Fixes `issue 1195`_.
- The ``coverage combine`` command now prints messages indicating each data
file being combined. Fixes `issue 1105`_.
- The HTML report now includes a sentence about skipped files due to
``skip_covered`` or ``skip_empty`` settings. Fixes `issue 1163`_.
- Unrecognized options in the configuration file are no longer errors. They are
now warnings, to ease the use of coverage across versions. Fixes `issue
1035`_.
- Fix handling of exceptions through context managers in Python 3.10. A missing
exception is no longer considered a missing branch from the with statement.
Fixes `issue 1205`_.
- Fix another rarer instance of "Error binding parameter 0 - probably
unsupported type." (`issue 1010`_).
- Creating a directory for the coverage data file now is safer against
conflicts when two coverage runs happen simultaneously (`pull 1220`_).
Thanks, Clément Pit-Claudel.
.. _issue 1035: https://github.com/nedbat/coveragepy/issues/1035
.. _issue 1105: https://github.com/nedbat/coveragepy/issues/1105
.. _issue 1163: https://github.com/nedbat/coveragepy/issues/1163
.. _issue 1195: https://github.com/nedbat/coveragepy/issues/1195
.. _issue 1205: https://github.com/nedbat/coveragepy/issues/1205
.. _pull 1220: https://github.com/nedbat/coveragepy/pull/1220
.. _changes_60b1:
```
### 6.0b1
```
--------------------------
- Dropped support for Python 2.7, PyPy 2, and Python 3.5.
- Added support for the Python 3.10 ``match/case`` syntax.
- Data collection is now thread-safe. There may have been rare instances of
exceptions raised in multi-threaded programs.
- Plugins (like the `Django coverage plugin`_) were generating "Already
imported a file that will be measured" warnings about Django itself. These
have been fixed, closing `issue 1150`_.
- Warnings generated by coverage.py are now real Python warnings.
- Using ``--fail-under=100`` with coverage near 100% could result in the
self-contradictory message :code:`total of 100 is less than fail-under=100`.
This bug (`issue 1168`_) is now fixed.
- The ``COVERAGE_DEBUG_FILE`` environment variable now accepts ``stdout`` and
``stderr`` to write to those destinations.
- TOML parsing now uses the `tomli`_ library.
- Some minor changes to usually invisible details of the HTML report:
- Use a modern hash algorithm when fingerprinting, for high-security
environments (`issue 1189`_). When generating the HTML report, we save the
hash of the data, to avoid regenerating an unchanged HTML page. We used to
use MD5 to generate the hash, and now use SHA-3-256. This was never a
security concern, but security scanners would notice the MD5 algorithm and
raise a false alarm.
- Change how report file names are generated, to avoid leading underscores
(`issue 1167`_), to avoid rare file name collisions (`issue 584`_), and to
avoid file names becoming too long (`issue 580`_).
.. _Django coverage plugin: https://pypi.org/project/django-coverage-plugin/
.. _issue 580: https://github.com/nedbat/coveragepy/issues/580
.. _issue 584: https://github.com/nedbat/coveragepy/issues/584
.. _issue 1150: https://github.com/nedbat/coveragepy/issues/1150
.. _issue 1167: https://github.com/nedbat/coveragepy/issues/1167
.. _issue 1168: https://github.com/nedbat/coveragepy/issues/1168
.. _issue 1189: https://github.com/nedbat/coveragepy/issues/1189
.. _tomli: https://pypi.org/project/tomli/
.. _changes_56b1:
```
### 5.6b1
```
--------------------------
Note: 5.6 final was never released. These changes are part of 6.0.
- Third-party packages are now ignored in coverage reporting. This solves a
few problems:
- Coverage will no longer report about other people's code (`issue 876`_).
This is true even when using ``--source=.`` with a venv in the current
directory.
- Coverage will no longer generate "Already imported a file that will be
measured" warnings about coverage itself (`issue 905`_).
- The HTML report uses j/k to move up and down among the highlighted chunks of
code. They used to highlight the current chunk, but 5.0 broke that behavior.
Now the highlighting is working again.
- The JSON report now includes ``percent_covered_display``, a string with the
total percentage, rounded to the same number of decimal places as the other
reports' totals.
.. _issue 876: https://github.com/nedbat/coveragepy/issues/876
.. _issue 905: https://github.com/nedbat/coveragepy/issues/905
.. _changes_55:
```
Links
- PyPI: https://pypi.org/project/coverage
- Changelog: https://pyup.io/changelogs/coverage/
- Repo: https://github.com/nedbat/coveragepy
Changelog
### 3.26.0
```
--------------------
Bugfixes
^^^^^^^^
- Fix fallback to ``python`` environment when ``isolated_build = true`` is set -- by :user:`Unrud`
`2474 <https://github.com/tox-dev/tox/issues/2474>`_
- Fixed ``SetuptoolsDeprecationWarning`` about using ``--global-option`` -- by :user:`adamchainz`
`2478 <https://github.com/tox-dev/tox/issues/2478>`_
Features
^^^^^^^^
- Use ``tomllib`` on Python 3.11 or later and ``tomli`` instead of ``toml`` library on lower versions - by :user:`hroncok`.
`2463 <https://github.com/tox-dev/tox/issues/2463>`_
```
### 3.25.1
```
--------------------
Bugfixes
^^^^^^^^
- ``sitepackages = true`` will add user's site-package to the python path on Windows as expected -- by :user:`niander`
`2402 <https://github.com/tox-dev/tox/issues/2402>`_
- Avoid importing ``pipes`` on Python 3.3+ to avoid ``DeprecationWarning`` on Python 3.11 -- by :user:`adamchainz`
`2417 <https://github.com/tox-dev/tox/issues/2417>`_
- Fix ``isolated_build`` when the build process produces stderr at exit.
`2449 <https://github.com/tox-dev/tox/issues/2449>`_
Documentation
^^^^^^^^^^^^^
- Explain advantages of ``PIP_CONSTRAINT`` environment variable over ``--constraint`` argument.
`2423 <https://github.com/tox-dev/tox/issues/2423>`_
```
### 3.25.0
```
--------------------
Bugfixes
^^^^^^^^
- Fixed failing isolated_build because setuptools warning was captured
in ``build_requires``. -- by :user:`zariiii9003`
`2332 <https://github.com/tox-dev/tox/issues/2332>`_
- Avoid potential 30s delay caused by socket.getfqdn(). -- by :user:`ssbarnea`
`2375 <https://github.com/tox-dev/tox/issues/2375>`_
Features
^^^^^^^^
- Ignore missing commands if they are prefixed by ``-``
-- by :user:`cdown`.
`2315 <https://github.com/tox-dev/tox/issues/2315>`_
- Add default environment variables (such as http_proxy) regardless of their case to passenv on UNIX -- by :user:`poggenhans`.
`2372 <https://github.com/tox-dev/tox/issues/2372>`_
- On Windows ``PROGRAMFILES``, ``PROGRAMFILES(X86)``, and ``PROGRAMDATA`` environment variables are now passed through, unmasking system values necessary to locate resources such as a C compiler.
`2382 <https://github.com/tox-dev/tox/issues/2382>`_
Documentation
^^^^^^^^^^^^^
- Deleted the tox mailing list -- by :user:`jugmac00`
`2364 <https://github.com/tox-dev/tox/issues/2364>`_
```
### 3.24.5
```
--------------------
Bugfixes
^^^^^^^^
- Fixed an issue where ``usedevelop`` would cause an invocation error if setup.py does not exist. -- by :user:`VincentVanlaer`
`2197 <https://github.com/tox-dev/tox/issues/2197>`_
```
Links
- PyPI: https://pypi.org/project/tox
- Changelog: https://pyup.io/changelogs/tox/
- Docs: https://tox.readthedocs.io
Changelog
### 5.2.3
```
=====================================
* 10878: Fix base64 image embedding in ``sphinx.ext.imgmath``
* 10886: Add ``:nocontentsentry:`` flag and global domain table of contents
entry control option. Patch by Adam Turner
```
### 5.2.2
```
=====================================
* 10872: Restore link targets for autodoc modules to the top of content.
Patch by Dominic Davis-Foster.
```
### 5.2.1
```
=====================================
Bugs fixed
----------
* 10861: Always normalise the ``pycon3`` lexer to ``pycon``.
* Fix using ``sphinx.ext.autosummary`` with modules containing titles in the
module-level docstring.
```
### 5.2.0.post0
```
===========================================
* Recreated source tarballs for Debian maintainers.
```
### 5.2.0
```
=====================================
Dependencies
------------
* 10356: Sphinx now uses declarative metadata with ``pyproject.toml`` to
create packages, using PyPA's ``flit`` project as a build backend. Patch by
Adam Turner.
Deprecated
----------
* 10843: Support for HTML 4 output. Patch by Adam Turner.
Features added
--------------
* 10738: napoleon: Add support for docstring types using 'of', like
``type of type``. Example: ``tuple of int``.
* 10286: C++, support requires clauses not just between the template
parameter lists and the declaration.
* 10755: linkcheck: Check the source URL of raw directives that use the ``url``
option.
* 10781: Allow :rst:role:`ref` role to be used with definitions and fields.
* 10717: HTML Search: Increase priority for full title and
subtitle matches in search results
* 10718: HTML Search: Save search result score to the HTML element for debugging
* 10673: Make toctree accept 'genindex', 'modindex' and 'search' docnames
* 6316, 10804: Add domain objects to the table of contents. Patch by Adam Turner
* 6692: HTML Search: Include explicit :rst:dir:`index` directive index entries
in the search index and search results. Patch by Adam Turner
* 10816: imgmath: Allow embedding images in HTML as base64
* 10854: HTML Search: Use browser localstorage for highlight control, stop
storing highlight parameters in URL query strings. Patch by Adam Turner.
Bugs fixed
----------
* 10723: LaTeX: 5.1.0 has made the 'sphinxsetup' ``verbatimwithframe=false``
become without effect.
* 10257: C++, ensure consistent non-specialization template argument
representation.
* 10729: C++, fix parsing of certain non-type template parameter packs.
* 10715: Revert 10520: "Fix" use of sidebar classes in ``agogo.css_t``
```
### 5.1.1
```
=====================================
Bugs fixed
----------
* 10701: Fix ValueError in the new ``deque`` based ``sphinx.ext.napolean``
iterator implementation.
* 10702: Restore compatability with third-party builders.
```
### 5.1.0
```
=====================================
Dependencies
------------
* 10656: Support `Docutils 0.19`_. Patch by Adam Turner.
.. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05
Deprecated
----------
* 10467: Deprecated ``sphinx.util.stemmer`` in favour of ``snowballstemmer``.
Patch by Adam Turner.
* 9856: Deprecated ``sphinx.ext.napoleon.iterators``.
Features added
--------------
* 10444: html theme: Allow specifying multiple CSS files through the ``stylesheet``
setting in ``theme.conf`` or by setting ``html_style`` to an iterable of strings.
* 10366: std domain: Add support for emphasising placeholders in :rst:dir:`option`
directives through a new :confval:`option_emphasise_placeholders` configuration
option.
* 10439: std domain: Use the repr of some variables when displaying warnings,
making whitespace issues easier to identify.
* 10571: quickstart: Reduce content in the generated ``conf.py`` file. Patch by
Pradyun Gedam.
* 10648: LaTeX: CSS-named-alike additional :ref:`'sphinxsetup' <latexsphinxsetup>`
keys allow to configure four separate border-widths, four paddings, four
corner radii, a shadow (possibly inset), colours for border, background, shadow
for each of the code-block, topic, attention, caution, danger, error and warning
directives.
* 10655: LaTeX: Explain non-standard encoding in LatinRules.xdy
* 10599: HTML Theme: Wrap consecutive footnotes in an ``<aside>`` element when
using Docutils 0.18 or later, to allow for easier styling. This matches the
behaviour introduced in Docutils 0.19. Patch by Adam Turner.
* 10518: config: Add ``include_patterns`` as the opposite of ``exclude_patterns``.
Patch by Adam Turner.
Bugs fixed
----------
* 10594: HTML Theme: field term colons are doubled if using Docutils 0.18+
* 10596: Build failure if Docutils version is 0.18 (not 0.18.1) due
to missing ``Node.findall()``
* 10506: LaTeX: build error if highlighting inline code role in figure caption
(refs: 10251)
* 10634: Make -P (pdb) option work better with exceptions triggered from events
* 10550: py domain: Fix spurious whitespace in unparsing various operators (``+``,
``-``, ``~``, and ``**``). Patch by Adam Turner (refs: 10551).
* 10460: logging: Always show node source locations as absolute paths.
* HTML Search: HTML tags are displayed as a part of object name
* HTML Search: search snipets should not be folded
* HTML Search: Minor errors are emitted on fetching search snipets
* HTML Search: The markers for header links are shown in the search result
* 10520: HTML Theme: Fix use of sidebar classes in ``agogo.css_t``.
* 6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme.
* 10566: HTML Theme: Fix enable_search_shortcuts does not work
* 8686: LaTeX: Text can fall out of code-block at end of page and leave artifact
on next page
* 10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may
cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_
bug
* 10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted
diffs using Pygments style ``'manni'``) inherit thickness of code-block frame
* 10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node
even if it has multiple node IDs
* 10579: i18n: UnboundLocalError is raised on translating raw directive
* 9577, 10088: py domain: Fix warning for duplicate Python references when
using ``:any:`` and autodoc.
* 10548: HTML Search: fix minor summary issues.
```
### 5.0.2
```
=====================================
Features added
--------------
* 10523: HTML Theme: Expose the Docutils's version info tuple as a template
variable, ``docutils_version_info``. Patch by Adam Turner.
Bugs fixed
----------
* 10538: autodoc: Inherited class attribute having docstring is documented even
if :confval:`autodoc_inherit_docstring` is disabled
* 10509: autosummary: autosummary fails with a shared library
* 10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner.
* 10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+.
Patch by Adam Turner.
* 10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner.
```
### 5.0.1
```
=====================================
Bugs fixed
----------
* 10498: gettext: TypeError is raised when sorting warning messages if a node
has no line number. Patch by Adam Turner.
* 10493: HTML Theme: :rst:dir:`topic` directive is rendered incorrectly with
Docutils 0.18. Patch by Adam Turner.
* 10495: IndexError is raised for a :rst:role:`kbd` role having a separator.
Patch by Adam Turner.
```
### 5.0.0
```
* 9575: autodoc: The annotation of return value should not be shown when
``autodoc_typehints="description"``
* 9648: autodoc: ``*args`` and ``**kwargs`` entries are duplicated when
``autodoc_typehints="description"``
* 8180: autodoc: Docstring metadata ignored for attributes
* 10443: epub: EPUB builder can't detect the mimetype of .webp file
* 10104: gettext: Duplicated locations are shown if 3rd party extension does
not provide correct information
* 10456: py domain: ``:meta:`` fields are displayed if docstring contains two
or more meta-field
* 9096: sphinx-build: the value of progress bar for paralle build is wrong
* 10110: sphinx-build: exit code is not changed when error is raised on
builder-finished event
```
### 4.5.0
```
=====================================
Incompatible changes
--------------------
* 10112: extlinks: Disable hardcoded links detector by default
* 9993, 10177: std domain: Disallow to refer an inline target via
:rst:role:`ref` role
Deprecated
----------
* ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()``
Features added
--------------
* 10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring
* 10234: autosummary: Add "autosummary" CSS class to summary tables
* 10125: extlinks: Improve suggestion message for a reference having title
* 10112: extlinks: Add :confval:`extlinks_detect_hardcoded_links` to enable
hardcoded links detector feature
* 9494, 9456: html search: Add a config variable
:confval:`html_show_search_summary` to enable/disable the search summaries
* 9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:`/` as
a Quick search shortcut and :kbd:`Esc` shortcut that
removes search highlighting.
* 10107: i18n: Allow to suppress translation warnings by adding ``noqa``
comment to the tail of each translation message
* 10252: C++, support attributes on classes, unions, and enums.
* 10253: :rst:role:`pep` role now generates URLs based on `peps.python.org
<https://peps.python.org>`_
Bugs fixed
----------
* 9876: autodoc: Failed to document an imported class that is built from native
binary module
* 10133: autodoc: Crashed when mocked module is used for type annotation
* 10146: autodoc: :confval:`autodoc_default_options` does not support
``no-value`` option
* 9971: autodoc: TypeError is raised when the target object is annotated by
unhashable object
* 10205: extlinks: Failed to compile regexp on checking hardcoded links
* 10277: html search: Could not search short words (ex. "use")
* 9529: LaTeX: named auto numbered footnote (ex. ``[named]``) that is referred
multiple times was rendered to a question mark
* 9924: LaTeX: multi-line :rst:dir:`cpp:function` directive has big vertical
spacing in Latexpdf
* 10158: LaTeX: excessive whitespace since v4.4.0 for undocumented
variables/structure members
* 10175: LaTeX: named footnote reference is linked to an incorrect footnote if
the name is also used in the different document
* 10269: manpage: Failed to resolve the title of :rst:role:`ref` cross references
* 10179: i18n: suppress "rST localization" warning
* 10118: imgconverter: Unnecessary availablity check is called for remote URIs
* 10181: napoleon: attributes are displayed like class attributes for google
style docstrings when :confval:`napoleon_use_ivar` is enabled
* 10122: sphinx-build: make.bat does not check the installation of sphinx-build
command before showing help
```
### 4.4.0
```
=====================================
Dependencies
------------
* 10007: Use ``importlib_metadata`` for python-3.9 or older
* 10007: Drop ``setuptools``
Features added
--------------
* 9075: autodoc: Add a config variable :confval:`autodoc_typehints_format`
to suppress the leading module names of typehints of function signatures (ex.
``io.StringIO`` -> ``StringIO``)
* 9831: Autosummary now documents only the members specified in a module's
``__all__`` attribute if :confval:`autosummary_ignore_module_all` is set to
``False``. The default behaviour is unchanged. Autogen also now supports
this behavior with the ``--respect-module-all`` switch.
* 9555: autosummary: Improve error messages on failure to load target object
* 9800: extlinks: Emit warning if a hardcoded link is replaceable
by an extlink, suggesting a replacement.
* 9961: html: Support nested <kbd> HTML elements in other HTML builders
* 10013: html: Allow to change the loading method of JS via ``loading_method``
parameter for :meth:`.Sphinx.add_js_file()`
* 9551: html search: "Hide Search Matches" link removes "highlight" parameter
from URL
* 9815: html theme: Wrap sidebar components in div to allow customizing their
layout via CSS
* 9827: i18n: Sort items in glossary by translated terms
* 9899: py domain: Allows to specify cross-reference specifier (``.`` and
``~``) as ``:type:`` option
* 9894: linkcheck: add option ``linkcheck_exclude_documents`` to disable link
checking in matched documents.
* 9793: sphinx-build: Allow to use the parallel build feature in macOS on macOS
and Python3.8+
* 10055: sphinx-build: Create directories when ``-w`` option given
* 9993: std domain: Allow to refer an inline target (ex. ``_`target name)
via :rst:role:`ref` role
* 9981: std domain: Strip value part of the option directive from general index
* 9391: texinfo: improve variable in ``samp`` role
* 9578: texinfo: Add :confval:`texinfo_cross_references` to disable cross
references for readability with standalone readers
* 9822 (and 9062), add new Intersphinx role :rst:role:`external` for explict
lookup in the external projects, without resolving to the local project.
Bugs fixed
----------
* 9866: autodoc: doccomment for the imported class was ignored
* 9883: autodoc: doccomment for the alias to mocked object was ignored
* 9908: autodoc: debug message is shown on building document using NewTypes
with Python 3.10
* 9968: autodoc: instance variables are not shown if __init__ method has
position-only-arguments
* 9194: autodoc: types under the "typing" module are not hyperlinked
* 10009: autodoc: Crashes if target object raises an error on getting docstring
* 10058: autosummary: Imported members are not shown when
``autodoc_class_signature = 'separated'``
* 9947: i18n: topic directive having a bullet list can't be translatable
* 9878: mathjax: MathJax configuration is placed after loading MathJax itself
* 9932: napoleon: empty "returns" section is generated even if no description
* 9857: Generated RFC links use outdated base url
* 9909: HTML, prevent line-wrapping in literal text.
* 10061: html theme: Configuration values added by themes are not be able to
override from conf.py
* 10073: imgconverter: Unnecessary availablity check is called for "data" URIs
* 9925: LaTeX: prohibit also with ``'xelatex'`` line splitting at dashes of
inline and parsed literals
* 9944: LaTeX: extra vertical whitespace for some nested declarations
* 9940: LaTeX: Multi-function declaration in Python domain has cramped
vertical spacing in latexpdf output
* 10015: py domain: types under the "typing" module are not hyperlinked defined
at info-field-list
* 9390: texinfo: Do not emit labels inside footnotes
* 9413: xml: Invalid XML was generated when cross referencing python objects
* 9979: Error level messages were displayed as warning messages
* 10057: Failed to scan documents if the project is placed onto the root
directory
* 9636: code-block: ``:dedent:`` without argument did strip newlines
```
### 4.3.2
```
=====================================
Bugs fixed
----------
* 9917: C and C++, parse fundamental types no matter the order of simple type
specifiers.
```
### 4.3.1
```
=====================================
Features added
--------------
* 9864: mathjax: Support chnaging the loading method of MathJax to "defer" via
:confval:`mathjax_options`
Bugs fixed
----------
* 9838: autodoc: AttributeError is raised on building document for functions
decorated by functools.lru_cache
* 9879: autodoc: AttributeError is raised on building document for an object
having invalid __doc__ attribute
* 9844: autodoc: Failed to process a function wrapped with functools.partial if
:confval:`autodoc_preserve_defaults` enabled
* 9872: html: Class namespace collision between autodoc signatures and
docutils-0.17
* 9868: imgmath: Crashed if the dvisvgm command failed to convert equation
* 9864: mathjax: Failed to render equations via MathJax v2. The loading method
of MathJax is back to "async" method again
```
### 4.3.0
```
=====================================
Dependencies
------------
* Support Python 3.10
Incompatible changes
--------------------
* 9649: ``searchindex.js``: the embedded data has changed format to allow
objects with the same name in different domains.
* 9672: The rendering of Python domain declarations is implemented
with more docutils nodes to allow better CSS styling.
It may break existing styling.
* 9672: the signature of
``domains.python.PyObject.get_signature_prefix`` has changed to
return a list of nodes instead of a plain string.
* 9695: ``domains.js.JSObject.display_prefix`` has been changed into a method
``get_display_prefix`` which now returns a list of nodes
instead of a plain string.
* 9695: The rendering of Javascript domain declarations is implemented
with more docutils nodes to allow better CSS styling.
It may break existing styling.
* 9450: mathjax: Load MathJax via "defer" strategy
Deprecated
----------
* ``sphinx.ext.autodoc.AttributeDocumenter._datadescriptor``
* ``sphinx.writers.html.HTMLTranslator._fieldlist_row_index``
* ``sphinx.writers.html.HTMLTranslator._table_row_index``
* ``sphinx.writers.html5.HTML5Translator._fieldlist_row_index``
* ``sphinx.writers.html5.HTML5Translator._table_row_index``
Features added
--------------
* 9639: autodoc: Support asynchronous generator functions
* 9664: autodoc: ``autodoc-process-bases`` supports to inject reST snippet as a
base class
* 9691: C, added new info-field ``retval``
for :rst:dir:`c:function` and :rst:dir:`c:macro`.
* C++, added new info-field ``retval`` for :rst:dir:`cpp:function`.
* 9618: i18n: Add :confval:`gettext_allow_fuzzy_translations` to allow "fuzzy"
messages for translation
* 9672: More CSS classes on Python domain descriptions
* 9695: More CSS classes on Javascript domain descriptions
* 9683: Revert the removal of ``add_stylesheet()`` API. It will be kept until
the Sphinx-6.0 release
* 2068, add :confval:`intersphinx_disabled_reftypes` for disabling
interphinx resolution of cross-references that do not have an explicit
inventory specification. Specific types of cross-references can be disabled,
e.g., ``std:doc`` or all cross-references in a specific domain,
e.g., ``std:*``.
* 9623: Allow to suppress "toctree contains reference to excluded document"
warnings using :confval:`suppress_warnings`
Bugs fixed
----------
* 9630: autodoc: Failed to build cross references if :confval:`primary_domain`
is not 'py'
* 9644: autodoc: Crashed on getting source info from problematic object
* 9655: autodoc: mocked object having doc comment is warned unexpectedly
* 9651: autodoc: return type field is not generated even if
:confval:`autodoc_typehints_description_target` is set to "documented" when
its info-field-list contains ``:returns:`` field
* 9657: autodoc: The base class for a subclass of mocked object is incorrect
* 9607: autodoc: Incorrect base class detection for the subclasses of the
generic class
* 9755: autodoc: memory addresses are shown for aliases
* 9752: autodoc: Failed to detect type annotation for slots attribute
* 9756: autodoc: Crashed if classmethod does not have __func__ attribute
* 9757: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to
overridden classmethods
* 9781: autodoc: :confval:`autodoc_preserve_defaults` does not support
hexadecimal numeric
* 9630: autosummary: Failed to build summary table if :confval:`primary_domain`
is not 'py'
* 9670: html: Fix download file with special characters
* 9710: html: Wrong styles for even/odd rows in nested tables
* 9763: html: parameter name and its type annotation are not separated in HTML
* 9649: HTML search: when objects have the same name but in different domains,
return all of them as result instead of just one.
* 7634: intersphinx: references on the file in sub directory are broken
* 9737: LaTeX: hlist is rendered as a list containing "aggedright" text
* 9678: linkcheck: file extension was shown twice in warnings
* 9697: py domain: An index entry with parens was registered for ``py:method``
directive with ``:property:`` option
* 9775: py domain: Literal typehint was converted to a cross reference when
:confval:`autodoc_typehints='description'`
* 9708: needs_extension failed to check double-digit version correctly
* 9688: Fix Sphinx patched :dudir:`code` does not recognize ``:class:`` option
* 9733: Fix for logging handler flushing warnings in the middle of the docs
build
* 9656: Fix warnings without subtype being incorrectly suppressed
* Intersphinx, for unresolved references with an explicit inventory,
e.g., ``proj:myFunc``, leave the inventory prefix in the unresolved text.
```
Links
- PyPI: https://pypi.org/project/sphinx
- Changelog: https://pyup.io/changelogs/sphinx/
Changelog
### 7.1.3
```
=========================
Bug Fixes
---------
- `10060 <https://github.com/pytest-dev/pytest/issues/10060>`_: When running with ``--pdb``, ``TestCase.tearDown`` is no longer called for tests when the *class* has been skipped via ``unittest.skip`` or ``pytest.mark.skip``.
- `10190 <https://github.com/pytest-dev/pytest/issues/10190>`_: Invalid XML characters in setup or teardown error messages are now properly escaped for JUnit XML reports.
- `10230 <https://github.com/pytest-dev/pytest/issues/10230>`_: Ignore ``.py`` files created by ``pyproject.toml``-based editable builds introduced in `pip 21.3 <https://pip.pypa.io/en/stable/news/#v21-3>`__.
- `3396 <https://github.com/pytest-dev/pytest/issues/3396>`_: Doctests now respect the ``--import-mode`` flag.
- `9514 <https://github.com/pytest-dev/pytest/issues/9514>`_: Type-annotate ``FixtureRequest.param`` as ``Any`` as a stop gap measure until :issue:`8073` is fixed.
- `9791 <https://github.com/pytest-dev/pytest/issues/9791>`_: Fixed a path handling code in ``rewrite.py`` that seems to work fine, but was incorrect and fails in some systems.
- `9917 <https://github.com/pytest-dev/pytest/issues/9917>`_: Fixed string representation for :func:`pytest.approx` when used to compare tuples.
Improved Documentation
----------------------
- `9937 <https://github.com/pytest-dev/pytest/issues/9937>`_: Explicit note that :fixture:`tmpdir` fixture is discouraged in favour of :fixture:`tmp_path`.
Trivial/Internal Changes
------------------------
- `10114 <https://github.com/pytest-dev/pytest/issues/10114>`_: Replace `atomicwrites <https://github.com/untitaker/python-atomicwrites>`__ dependency on windows with `os.replace`.
```
### 7.1.2
```
=========================
Bug Fixes
---------
- `9726 <https://github.com/pytest-dev/pytest/issues/9726>`_: An unnecessary ``numpy`` import inside :func:`pytest.approx` was removed.
- `9820 <https://github.com/pytest-dev/pytest/issues/9820>`_: Fix comparison of ``dataclasses`` with ``InitVar``.
- `9869 <https://github.com/pytest-dev/pytest/issues/9869>`_: Increase ``stacklevel`` for the ``NODE_CTOR_FSPATH_ARG`` deprecation to point to the
user's code, not pytest.
- `9871 <https://github.com/pytest-dev/pytest/issues/9871>`_: Fix a bizarre (and fortunately rare) bug where the `temp_path` fixture could raise
an internal error while attempting to get the current user's username.
```
### 7.1.1
```
=========================
Bug Fixes
---------
- `9767 <https://github.com/pytest-dev/pytest/issues/9767>`_: Fixed a regression in pytest 7.1.0 where some conftest.py files outside of the source tree (e.g. in the `site-packages` directory) were not picked up.
```
### 7.1.0
```
=========================
Breaking Changes
----------------
- `8838 <https://github.com/pytest-dev/pytest/issues/8838>`_: As per our policy, the following features have been deprecated in the 6.X series and are now
removed:
* ``pytest._fillfuncargs`` function.
* ``pytest_warning_captured`` hook - use ``pytest_warning_recorded`` instead.
* ``-k -foobar`` syntax - use ``-k 'not foobar'`` instead.
* ``-k foobar:`` syntax.
* ``pytest.collect`` module - import from ``pytest`` directly.
For more information consult
`Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs.
- `9437 <https://github.com/pytest-dev/pytest/issues/9437>`_: Dropped support for Python 3.6, which reached `end-of-life <https://devguide.python.org/#status-of-python-branches>`__ at 2021-12-23.
Improvements
------------
- `5192 <https://github.com/pytest-dev/pytest/issues/5192>`_: Fixed test output for some data types where ``-v`` would show less information.
Also, when showing diffs for sequences, ``-q`` would produce full diffs instead of the expected diff.
- `9362 <https://github.com/pytest-dev/pytest/issues/9362>`_: pytest now avoids specialized assert formatting when it is detected that the default ``__eq__`` is overridden in ``attrs`` or ``dataclasses``.
- `9536 <https://github.com/pytest-dev/pytest/issues/9536>`_: When ``-vv`` is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width.
- `9644 <https://github.com/pytest-dev/pytest/issues/9644>`_: More information about the location of resources that led Python to raise :class:`ResourceWarning` can now
be obtained by enabling :mod:`tracemalloc`.
See :ref:`resource-warnings` for more information.
- `9678 <https://github.com/pytest-dev/pytest/issues/9678>`_: More types are now accepted in the ``ids`` argument to ``pytest.mark.parametrize``.
Previously only `str`, `float`, `int` and `bool` were accepted;
now `bytes`, `complex`, `re.Pattern`, `Enum` and anything with a `__name__` are also accepted.
- `9692 <https://github.com/pytest-dev/pytest/issues/9692>`_: :func:`pytest.approx` now raises a :class:`TypeError` when given an unordered sequence (such as :class:`set`).
Note that this implies that custom classes which only implement ``__iter__`` and ``__len__`` are no longer supported as they don't guarantee order.
Bug Fixes
---------
- `8242 <https://github.com/pytest-dev/pytest/issues/8242>`_: The deprecation of raising :class:`unittest.SkipTest` to skip collection of
tests during the pytest collection phase is reverted - this is now a supported
feature again.
- `9493 <https://github.com/pytest-dev/pytest/issues/9493>`_: Symbolic link components are no longer resolved in conftest paths.
This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice.
For example, given
tests/real/conftest.py
tests/real/test_it.py
tests/link -> tests/real
running ``pytest tests`` now imports the conftest twice, once as ``tests/real/conftest.py`` and once as ``tests/link/conftest.py``.
This is a fix to match a similar change made to test collection itself in pytest 6.0 (see :pull:`6523` for details).
- `9626 <https://github.com/pytest-dev/pytest/issues/9626>`_: Fixed count of selected tests on terminal collection summary when there were errors or skipped modules.
If there were errors or skipped modules on collection, pytest would mistakenly subtract those from the selected count.
- `9645 <https://github.com/pytest-dev/pytest/issues/9645>`_: Fixed regression where ``--import-mode=importlib`` used together with :envvar:`PYTHONPATH` or :confval:`pythonpath` would cause import errors in test suites.
- `9708 <https://github.com/pytest-dev/pytest/issues/9708>`_: :fixture:`pytester` now requests a :fixture:`monkeypatch` fixture instead of creating one internally. This solves some issues with tests that involve pytest environment variables.
- `9730 <https://github.com/pytest-dev/pytest/issues/9730>`_: Malformed ``pyproject.toml`` files now produce a clearer error message.
```
### 7.0.1
```
=========================
Bug Fixes
---------
- `9608 <https://github.com/pytest-dev/pytest/issues/9608>`_: Fix invalid importing of ``importlib.readers`` in Python 3.9.
- `9610 <https://github.com/pytest-dev/pytest/issues/9610>`_: Restore `UnitTestFunction.obj` to return unbound rather than bound method.
Fixes a crash during a failed teardown in unittest TestCases with non-default `__init__`.
Regressed in pytest 7.0.0.
- `9636 <https://github.com/pytest-dev/pytest/issues/9636>`_: The ``pythonpath`` plugin was renamed to ``python_path``. This avoids a conflict with the ``pytest-pythonpath`` plugin.
- `9642 <https://github.com/pytest-dev/pytest/issues/9642>`_: Fix running tests by id with ``::`` in the parametrize portion.
- `9643 <https://github.com/pytest-dev/pytest/issues/9643>`_: Delay issuing a :class:`~pytest.PytestWarning` about diamond inheritance involving :class:`~pytest.Item` and
:class:`~pytest.Collector` so it can be filtered using :ref:`standard warning filters <warnings>`.
```
### 7.0.0
```
=========================
(**Please see the full set of changes for this release also in the 7.0.0rc1 notes below**)
Deprecations
------------
- `9488 <https://github.com/pytest-dev/pytest/issues/9488>`_: If custom subclasses of nodes like :class:`pytest.Item` override the
``__init__`` method, they should take ``**kwargs``. See
:ref:`uncooperative-constructors-deprecated` for details.
Note that a deprection warning is only emitted when there is a conflict in the
arguments pytest expected to pass. This deprecation was already part of pytest
7.0.0rc1 but wasn't documented.
Bug Fixes
---------
- `9355 <https://github.com/pytest-dev/pytest/issues/9355>`_: Fixed error message prints function decorators when using assert in Python 3.8 and above.
- `9396 <https://github.com/pytest-dev/pytest/issues/9396>`_: Ensure :attr:`pytest.Config.inifile` is available during the :func:`pytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>` hook (regression during ``7.0.0rc1``).
Improved Documentation
----------------------
- `9404 <https://github.com/pytest-dev/pytest/issues/9404>`_: Added extra documentation on alternatives to common misuses of `pytest.warns(None)` ahead of its deprecation.
- `9505 <https://github.com/pytest-dev/pytest/issues/9505>`_: Clarify where the configuration files are located. To avoid confusions documentation mentions
that configuration file is located in the root of the repository.
Trivial/Internal Changes
------------------------
- `9521 <https://github.com/pytest-dev/pytest/issues/9521>`_: Add test coverage to assertion rewrite path.
```
### 7.0.0rc1
```
============================
Breaking Changes
----------------
- `7259 <https://github.com/pytest-dev/pytest/issues/7259>`_: The :ref:`Node.reportinfo() <non-python tests>` function first return value type has been expanded from `py.path.local | str` to `os.PathLike[str] | str`.
Most plugins which refer to `reportinfo()` only define it as part of a custom :class:`pytest.Item` implementation.
Since `py.path.local` is a `os.PathLike[str]`, these plugins are unaffacted.
Plugins and users which call `reportinfo()`, use the first return value and interact with it as a `py.path.local`, would need to adjust by calling `py.path.local(fspath)`.
Although preferably, avoid the legacy `py.path.local` and use `pathlib.Path`, or use `item.location` or `item.path`, instead.
Note: pytest was not able to provide a deprecation period for this change.
- `8246 <https://github.com/pytest-dev/pytest/issues/8246>`_: ``--version`` now writes
Update wheel from 0.37.0 to 0.37.1.
Changelog
### 0.37.1 ``` - Fixed ``wheel pack`` duplicating the ``WHEEL`` contents when the build number has changed (415) - Fixed parsing of file names containing commas in ``RECORD`` (PR by Hood Chatham) ```Links
- PyPI: https://pypi.org/project/wheel - Changelog: https://pyup.io/changelogs/wheel/ - Repo: https://github.com/pypa/wheelUpdate watchdog from 2.1.5 to 2.1.9.
Changelog
### 2.1.9 ``` ~~~~~ 2022-06-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.8...v2.1.9>`__ - [fsevents] Fix flakey test to assert that there are no errors when stopping the emitter. - [inotify] Suppress occasional ``OSError: [Errno 9] Bad file descriptor`` at shutdown. (`805 <https://github.com/gorakhargosh/watchdog/issues/805>`__) - [watchmedo] Make ``auto-restart`` restart the sub-process if it terminates. (`896 <https://github.com/gorakhargosh/watchdog/pull/896>`__) - [watchmedo] Avoid zombie sub-processes when running ``shell-command`` without ``--wait``. (`405 <https://github.com/gorakhargosh/watchdog/issues/405>`__) - Thanks to our beloved contributors: samschott, taleinat, altendky, BoboTiG ``` ### 2.1.8 ``` ~~~~~ 2022-05-15 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.7...v2.1.8>`__ - Fix adding failed emitters on observer schedule. (`872 <https://github.com/gorakhargosh/watchdog/issues/872>`__) - [inotify] Fix hang when unscheduling watch on a path in an unmounted filesystem. (`869 <https://github.com/gorakhargosh/watchdog/pull/869>`__) - [watchmedo] Fix broken parsing of ``--kill-after`` argument for the ``auto-restart`` command. (`870 <https://github.com/gorakhargosh/watchdog/issues/870>`__) - [watchmedo] Fix broken parsing of boolean arguments. (`887 <https://github.com/gorakhargosh/watchdog/issues/887>`__) - [watchmedo] Fix broken parsing of commands from ``auto-restart``, and ``shell-command``. (`888 <https://github.com/gorakhargosh/watchdog/issues/888>`__) - [watchmedo] Support setting verbosity level via ``-q/--quiet`` and ``-v/--verbose`` arguments. (`889 <https://github.com/gorakhargosh/watchdog/pull/889>`__) - Thanks to our beloved contributors: taleinat, kianmeng, palfrey, IlayRosenberg, BoboTiG ``` ### 2.1.7 ``` ~~~~~ 2022-03-25 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.6...v2.1.7>`__ - Eliminate timeout in waiting on event queue. (`861 <https://github.com/gorakhargosh/watchdog/pull/861>`__) - [inotify] Fix ``not`` equality implementation for ``InotifyEvent``. (`848 <https://github.com/gorakhargosh/watchdog/pull/848>`__) - [watchmedo] Fix calling commands from within a Python script. (`879 <https://github.com/gorakhargosh/watchdog/pull/879>`__) - [watchmedo] ``PyYAML`` is loaded only when strictly necessary. Simple usages of ``watchmedo`` are possible without the module being installed. (`847 <https://github.com/gorakhargosh/watchdog/pull/847>`__) - Thanks to our beloved contributors: sattlerc, JanzenLiu, BoboTiG ``` ### 2.1.6 ``` ~~~~~ 2021-10-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.5...v2.1.6>`__ - [bsd] Fixed returned paths in ``kqueue.py`` and restored the overall results of the test suite. (`842 <https://github.com/gorakhargosh/watchdog/pull/842>`__) - [bsd] Updated FreeBSD CI support .(`841 <https://github.com/gorakhargosh/watchdog/pull/841>`__) - [watchmedo] Removed the ``argh`` dependency in favor of the builtin ``argparse`` module. (`836 <https://github.com/gorakhargosh/watchdog/pull/836>`__) - [watchmedo] Removed unexistant ``WindowsApiAsyncObserver`` references and ``--debug-force-winapi-async`` arguments. - [watchmedo] Improved the help output. - Thanks to our beloved contributors: knobix, AndreaRe9, BoboTiG ```Links
- PyPI: https://pypi.org/project/watchdog - Changelog: https://pyup.io/changelogs/watchdog/ - Repo: https://github.com/gorakhargosh/watchdog - Docs: https://pythonhosted.org/watchdog/Update flake8 from 3.9.2 to 5.0.4.
The bot wasn't able to find a changelog for this release. Got an idea?
Links
- PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://github.com/pycqa/flake8Update coverage from 5.5 to 6.5.0.
Changelog
### 6.5.0 ``` -------------------------- - The JSON report now includes details of which branches were taken, and which are missing for each file. Thanks, Christoph Blessing (`pull 1438`_). Closes `issue 1425`_. - Starting with coverage.py 6.2, ``class`` statements were marked as a branch. This wasn't right, and has been reverted, fixing `issue 1449`_. Note this will very slightly reduce your coverage total if you are measuring branch coverage. - Packaging is now compliant with `PEP 517`_, closing `issue 1395`_. - A new debug option ``--debug=pathmap`` shows details of the remapping of paths that happens during combine due to the ``[paths]`` setting. - Fix an internal problem with caching of invalid Python parsing. Found by OSS-Fuzz, fixing their `bug 50381`_. .. _bug 50381: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=50381 .. _PEP 517: https://peps.python.org/pep-0517/ .. _issue 1395: https://github.com/nedbat/coveragepy/issues/1395 .. _issue 1425: https://github.com/nedbat/coveragepy/issues/1425 .. _pull 1438: https://github.com/nedbat/coveragepy/pull/1438 .. _issue 1449: https://github.com/nedbat/coveragepy/issues/1449 .. _changes_6-4-4: ``` ### 6.4.4 ``` -------------------------- - Wheels are now provided for Python 3.11. .. _changes_6-4-3: ``` ### 6.4.3 ``` -------------------------- - Fix a failure when combining data files if the file names contained glob-like patterns (`pull 1405`_). Thanks, Michael Krebs and Benjamin Schubert. - Fix a messaging failure when combining Windows data files on a different drive than the current directory. (`pull 1430`_, fixing `issue 1428`_). Thanks, Lorenzo Micò. - Fix path calculations when running in the root directory, as you might do in a Docker container: `pull 1403`_, thanks Arthur Rio. - Filtering in the HTML report wouldn't work when reloading the index page. This is now fixed (`pull 1413`_). Thanks, Marc Legendre. - Fix a problem with Cython code measurement (`pull 1347`_, fixing `issue 972`_). Thanks, Matus Valo. .. _issue 972: https://github.com/nedbat/coveragepy/issues/972 .. _pull 1347: https://github.com/nedbat/coveragepy/pull/1347 .. _pull 1403: https://github.com/nedbat/coveragepy/issues/1403 .. _pull 1405: https://github.com/nedbat/coveragepy/issues/1405 .. _pull 1413: https://github.com/nedbat/coveragepy/issues/1413 .. _issue 1428: https://github.com/nedbat/coveragepy/issues/1428 .. _pull 1430: https://github.com/nedbat/coveragepy/pull/1430 .. _changes_6-4-2: ``` ### 6.4.2 ``` -------------------------- - Updated for a small change in Python 3.11.0 beta 4: modules now start with a line with line number 0, which is ignored. This line cannnot be executed, so coverage totals were thrown off. This line is now ignored by coverage.py, but this also means that truly empty modules (like ``__init__.py``) have no lines in them, rather than one phantom line. Fixes `issue 1419`_. - Internal debugging data added to sys.modules is now an actual module, to avoid confusing code that examines everything in sys.modules. Thanks, Yilei Yang (`pull 1399`_). .. _pull 1399: https://github.com/nedbat/coveragepy/pull/1399 .. _issue 1419: https://github.com/nedbat/coveragepy/issues/1419 .. _changes_6-4-1: ``` ### 6.4.1 ``` -------------------------- - Greatly improved performance on PyPy, and other environments that need the pure Python trace function. Thanks, Carl Friedrich Bolz-Tereick (`pull 1381`_ and `pull 1388`_). Slightly improved performance when using the C trace function, as most environments do. Closes `issue 1339`_. - The conditions for using tomllib from the standard library have been made more precise, so that 3.11 alphas will continue to work. Closes `issue 1390`_. .. _issue 1339: https://github.com/nedbat/coveragepy/issues/1339 .. _pull 1381: https://github.com/nedbat/coveragepy/pull/1381 .. _pull 1388: https://github.com/nedbat/coveragepy/pull/1388 .. _issue 1390: https://github.com/nedbat/coveragepy/issues/1390 .. _changes_64: ``` ### 6.4 ``` ------------------------ - A new setting, :ref:`config_run_sigterm`, controls whether a SIGTERM signal handler is used. In 6.3, the signal handler was always installed, to capture data at unusual process ends. Unfortunately, this introduced other problems (see `issue 1310`_). Now the signal handler is only used if you opt-in by setting ``[run] sigterm = true``. - Small changes to the HTML report: - Added links to next and previous file, and more keyboard shortcuts: ``[`` and ``]`` for next file and previous file; ``u`` for up to the index; and ``?`` to open/close the help panel. Thanks, `J. M. F. Tsang <pull 1364_>`_. - The timestamp and version are displayed at the top of the report. Thanks, `Ammar Askar <pull 1354_>`_. Closes `issue 1351`_. - A new debug option ``debug=sqldata`` adds more detail to ``debug=sql``, logging all the data being written to the database. - Previously, running ``coverage report`` (or any of the reporting commands) in an empty directory would create a .coverage data file. Now they do not, fixing `issue 1328`_. - On Python 3.11, the ``[toml]`` extra no longer installs tomli, instead using tomllib from the standard library. Thanks `Shantanu <pull 1359_>`_. - In-memory CoverageData objects now properly update(), closing `issue 1323`_. .. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310 .. _issue 1323: https://github.com/nedbat/coveragepy/issues/1323 .. _issue 1328: https://github.com/nedbat/coveragepy/issues/1328 .. _issue 1351: https://github.com/nedbat/coveragepy/issues/1351 .. _pull 1354: https://github.com/nedbat/coveragepy/pull/1354 .. _pull 1359: https://github.com/nedbat/coveragepy/pull/1359 .. _pull 1364: https://github.com/nedbat/coveragepy/pull/1364 .. _changes_633: ``` ### 6.3.3 ``` -------------------------- - Fix: Coverage.py now builds successfully on CPython 3.11 (3.11.0b1) again. Closes `issue 1367`_. Some results for generators may have changed. .. _issue 1367: https://github.com/nedbat/coveragepy/issues/1367 .. _changes_632: ``` ### 6.3.2 ``` -------------------------- - Fix: adapt to pypy3.9's decorator tracing behavior. It now traces function decorators like CPython 3.8: both the -line and the def-line are traced. Fixes `issue 1326`_. - Debug: added ``pybehave`` to the list of :ref:`coverage debug <cmd_debug>` and :ref:`cmd_run_debug` options. - Fix: show an intelligible error message if ``--concurrency=multiprocessing`` is used without a configuration file. Closes `issue 1320`_. .. _issue 1320: https://github.com/nedbat/coveragepy/issues/1320 .. _issue 1326: https://github.com/nedbat/coveragepy/issues/1326 .. _changes_631: ``` ### 6.3.1 ``` -------------------------- - Fix: deadlocks could occur when terminating processes. Some of these deadlocks (described in `issue 1310`_) are now fixed. - Fix: a signal handler was being set from multiple threads, causing an error: "ValueError: signal only works in main thread". This is now fixed, closing `issue 1312`_. - Fix: ``--precision`` on the command-line was being ignored while considering ``--fail-under``. This is now fixed, thanks to `Marcelo Trylesinski <pull 1317_>`_. - Fix: releases no longer provide 3.11.0-alpha wheels. Coverage.py uses CPython internal fields which are moving during the alpha phase. Fixes `issue 1316`_. .. _issue 1310: https://github.com/nedbat/coveragepy/issues/1310 .. _issue 1312: https://github.com/nedbat/coveragepy/issues/1312 .. _issue 1316: https://github.com/nedbat/coveragepy/issues/1316 .. _pull 1317: https://github.com/nedbat/coveragepy/pull/1317 .. _changes_63: ``` ### 6.3 ``` ------------------------ - Feature: Added the ``lcov`` command to generate reports in LCOV format. Thanks, `Bradley Burns <pull 1289_>`_. Closes issues `587 <issue 587_>`_ and `626 <issue 626_>`_. - Feature: the coverage data file can now be specified on the command line with the ``--data-file`` option in any command that reads or writes data. This is in addition to the existing ``COVERAGE_FILE`` environment variable. Closes `issue 624`_. Thanks, `Nikita Bloshchanevich <pull 1304_>`_. - Feature: coverage measurement data will now be written when a SIGTERM signal is received by the process. This includes :meth:`Process.terminate <python:multiprocessing.Process.terminate>`, and other ways to terminate a process. Currently this is only on Linux and Mac; Windows is not supported. Fixes `issue 1307`_. - Dropped support for Python 3.6, which reached end-of-life on 2021-12-23. - Updated Python 3.11 support to 3.11.0a4, fixing `issue 1294`_. - Fix: the coverage data file is now created in a more robust way, to avoid problems when multiple processes are trying to write data at once. Fixes issues `1303 <issue 1303_>`_ and `883 <issue 883_>`_. - Fix: a .gitignore file will only be written into the HTML report output directory if the directory is empty. This should prevent certain unfortunate accidents of writing the file where it is not wanted. - Releases now have MacOS arm64 wheels for Apple Silicon, fixing `issue 1288`_. .. _issue 587: https://github.com/nedbat/coveragepy/issues/587 .. _issue 624: https://github.com/nedbat/coveragepy/issues/624 .. _issue 626: https://github.com/nedbat/coveragepy/issues/626 .. _issue 883: https://github.com/nedbat/coveragepy/issues/883 .. _issue 1288: https://github.com/nedbat/coveragepy/issues/1288 .. _issue 1294: https://github.com/nedbat/coveragepy/issues/1294 .. _issue 1303: https://github.com/nedbat/coveragepy/issues/1303 .. _issue 1307: https://github.com/nedbat/coveragepy/issues/1307 .. _pull 1289: https://github.com/nedbat/coveragepy/pull/1289 .. _pull 1304: https://github.com/nedbat/coveragepy/pull/1304 .. _changes_62: ``` ### 6.2 ``` ------------------------ - Feature: Now the ``--concurrency`` setting can now have a list of values, so that threads and another lightweight threading package can be measured together, such as ``--concurrency=gevent,thread``. Closes `issue 1012`_ and `issue 1082`_. - Fix: A module specified as the ``source`` setting is imported during startup, before the user program imports it. This could cause problems if the rest of the program isn't ready yet. For example, `issue 1203`_ describes a Django setting that is accessed before settings have been configured. Now the early import is wrapped in a try/except so errors then don't stop execution. - Fix: A colon in a decorator expression would cause an exclusion to end too early, preventing the exclusion of the decorated function. This is now fixed. - Fix: The HTML report now will not overwrite a .gitignore file that already exists in the HTML output directory (follow-on for `issue 1244`_). - API: The exceptions raised by Coverage.py have been specialized, to provide finer-grained catching of exceptions by third-party code. - API: Using ``suffix=False`` when constructing a Coverage object with multiprocessing wouldn't suppress the data file suffix (`issue 989`_). This is now fixed. - Debug: The ``coverage debug data`` command will now sniff out combinable data files, and report on all of them. - Debug: The ``coverage debug`` command used to accept a number of topics at a time, and show all of them, though this was never documented. This no longer works, to allow for command-line options in the future. .. _issue 989: https://github.com/nedbat/coveragepy/issues/989 .. _issue 1012: https://github.com/nedbat/coveragepy/issues/1012 .. _issue 1082: https://github.com/nedbat/coveragepy/issues/1082 .. _issue 1203: https://github.com/nedbat/coveragepy/issues/1203 .. _changes_612: ``` ### 6.1.2 ``` -------------------------- - Python 3.11 is supported (tested with 3.11.0a2). One still-open issue has to do with `exits through with-statements <issue 1270_>`_. - Fix: When remapping file paths through the ``[paths]`` setting while combining, the ``[run] relative_files`` setting was ignored, resulting in absolute paths for remapped file names (`issue 1147`_). This is now fixed. - Fix: Complex conditionals over excluded lines could have incorrectly reported a missing branch (`issue 1271`_). This is now fixed. - Fix: More exceptions are now handled when trying to parse source files for reporting. Problems that used to terminate coverage.py can now be handled with ``[report] ignore_errors``. This helps with plugins failing to read files (`django_coverage_plugin issue 78`_). - Fix: Removed another vestige of jQuery from the source tarball (`issue 840`_). - Fix: Added a default value for a new-to-6.x argument of an internal class. This unsupported class is being used by coveralls (`issue 1273`_). Although I'd rather not "fix" unsupported interfaces, it's actually nicer with a default value. .. _django_coverage_plugin issue 78: https://github.com/nedbat/django_coverage_plugin/issues/78 .. _issue 1147: https://github.com/nedbat/coveragepy/issues/1147 .. _issue 1270: https://github.com/nedbat/coveragepy/issues/1270 .. _issue 1271: https://github.com/nedbat/coveragepy/issues/1271 .. _issue 1273: https://github.com/nedbat/coveragepy/issues/1273 .. _changes_611: ``` ### 6.1.1 ``` -------------------------- - Fix: The sticky header on the HTML report didn't work unless you had branch coverage enabled. This is now fixed: the sticky header works for everyone. (Do people still use coverage without branch measurement!? j/k) - Fix: When using explicitly declared namespace packages, the "already imported a file that will be measured" warning would be issued (`issue 888`_). This is now fixed. .. _issue 888: https://github.com/nedbat/coveragepy/issues/888 .. _changes_61: ``` ### 6.1 ``` ------------------------ - Deprecated: The ``annotate`` command and the ``Coverage.annotate`` function will be removed in a future version, unless people let me know that they are using it. Instead, the ``html`` command gives better-looking (and more accurate) output, and the ``report -m`` command will tell you line numbers of missing lines. Please get in touch if you have a reason to use ``annotate`` over those better options: nednedbatchelder.com. - Feature: Coverage now sets an environment variable, ``COVERAGE_RUN`` when running your code with the ``coverage run`` command. The value is not important, and may change in the future. Closes `issue 553`_. - Feature: The HTML report pages for Python source files now have a sticky header so the file name and controls are always visible. - Feature: The ``xml`` and ``json`` commands now describe what they wrote where. - Feature: The ``html``, ``combine``, ``xml``, and ``json`` commands all accept a ``-q/--quiet`` option to suppress the messages they write to stdout about what they are doing (`issue 1254`_). - Feature: The ``html`` command writes a ``.gitignore`` file into the HTML output directory, to prevent the report from being committed to git. If you want to commit it, you will need to delete that file. Closes `issue 1244`_. - Feature: Added support for PyPy 3.8. - Fix: More generated code is now excluded from measurement. Code such as `attrs`_ boilerplate, or doctest code, was being measured though the synthetic line numbers meant they were never reported. Once Cython was involved though, the generated .so files were parsed as Python, raising syntax errors, as reported in `issue 1160`_. This is now fixed. - Fix: When sorting human-readable names, numeric components are sorted correctly: file10.py will appear after file9.py. This applies to file names, module names, environment variables, and test contexts. - Performance: Branch coverage measurement is faster, though you might only notice on code that is executed many times, such as long-running loops. - Build: jQuery is no longer used or vendored (`issue 840`_ and `issue 1118`_). Huge thanks to Nils Kattenbeck (septatrix) for the conversion to vanilla JavaScript in `pull request 1248`_. .. _issue 553: https://github.com/nedbat/coveragepy/issues/553 .. _issue 840: https://github.com/nedbat/coveragepy/issues/840 .. _issue 1118: https://github.com/nedbat/coveragepy/issues/1118 .. _issue 1160: https://github.com/nedbat/coveragepy/issues/1160 .. _issue 1244: https://github.com/nedbat/coveragepy/issues/1244 .. _pull request 1248: https://github.com/nedbat/coveragepy/pull/1248 .. _issue 1254: https://github.com/nedbat/coveragepy/issues/1254 .. _attrs: https://www.attrs.org/ .. _changes_602: ``` ### 6.0.2 ``` -------------------------- - Namespace packages being measured weren't properly handled by the new code that ignores third-party packages. If the namespace package was installed, it was ignored as a third-party package. That problem (`issue 1231`_) is now fixed. - Packages named as "source packages" (with ``source``, or ``source_pkgs``, or pytest-cov's ``--cov``) might have been only partially measured. Their top-level statements could be marked as unexecuted, because they were imported by coverage.py before measurement began (`issue 1232`_). This is now fixed, but the package will be imported twice, once by coverage.py, then again by your test suite. This could cause problems if importing the package has side effects. - The :meth:`.CoverageData.contexts_by_lineno` method was documented to return a dict, but was returning a defaultdict. Now it returns a plain dict. It also no longer returns negative numbered keys. .. _issue 1231: https://github.com/nedbat/coveragepy/issues/1231 .. _issue 1232: https://github.com/nedbat/coveragepy/issues/1232 .. _changes_601: ``` ### 6.0.1 ``` -------------------------- - In 6.0, the coverage.py exceptions moved from coverage.misc to coverage.exceptions. These exceptions are not part of the public supported API, CoverageException is. But a number of other third-party packages were importing the exceptions from coverage.misc, so they are now available from there again (`issue 1226`_). - Changed an internal detail of how tomli is imported, so that tomli can use coverage.py for their own test suite (`issue 1228`_). - Defend against an obscure possibility under code obfuscation, where a function can have an argument called "self", but no local named "self" (`pull request 1210`_). Thanks, Ben Carlsson. .. _pull request 1210: https://github.com/nedbat/coveragepy/pull/1210 .. _issue 1226: https://github.com/nedbat/coveragepy/issues/1226 .. _issue 1228: https://github.com/nedbat/coveragepy/issues/1228 .. _changes_60: ``` ### 6.0 ``` ------------------------ - The ``coverage html`` command now prints a message indicating where the HTML report was written. Fixes `issue 1195`_. - The ``coverage combine`` command now prints messages indicating each data file being combined. Fixes `issue 1105`_. - The HTML report now includes a sentence about skipped files due to ``skip_covered`` or ``skip_empty`` settings. Fixes `issue 1163`_. - Unrecognized options in the configuration file are no longer errors. They are now warnings, to ease the use of coverage across versions. Fixes `issue 1035`_. - Fix handling of exceptions through context managers in Python 3.10. A missing exception is no longer considered a missing branch from the with statement. Fixes `issue 1205`_. - Fix another rarer instance of "Error binding parameter 0 - probably unsupported type." (`issue 1010`_). - Creating a directory for the coverage data file now is safer against conflicts when two coverage runs happen simultaneously (`pull 1220`_). Thanks, Clément Pit-Claudel. .. _issue 1035: https://github.com/nedbat/coveragepy/issues/1035 .. _issue 1105: https://github.com/nedbat/coveragepy/issues/1105 .. _issue 1163: https://github.com/nedbat/coveragepy/issues/1163 .. _issue 1195: https://github.com/nedbat/coveragepy/issues/1195 .. _issue 1205: https://github.com/nedbat/coveragepy/issues/1205 .. _pull 1220: https://github.com/nedbat/coveragepy/pull/1220 .. _changes_60b1: ``` ### 6.0b1 ``` -------------------------- - Dropped support for Python 2.7, PyPy 2, and Python 3.5. - Added support for the Python 3.10 ``match/case`` syntax. - Data collection is now thread-safe. There may have been rare instances of exceptions raised in multi-threaded programs. - Plugins (like the `Django coverage plugin`_) were generating "Already imported a file that will be measured" warnings about Django itself. These have been fixed, closing `issue 1150`_. - Warnings generated by coverage.py are now real Python warnings. - Using ``--fail-under=100`` with coverage near 100% could result in the self-contradictory message :code:`total of 100 is less than fail-under=100`. This bug (`issue 1168`_) is now fixed. - The ``COVERAGE_DEBUG_FILE`` environment variable now accepts ``stdout`` and ``stderr`` to write to those destinations. - TOML parsing now uses the `tomli`_ library. - Some minor changes to usually invisible details of the HTML report: - Use a modern hash algorithm when fingerprinting, for high-security environments (`issue 1189`_). When generating the HTML report, we save the hash of the data, to avoid regenerating an unchanged HTML page. We used to use MD5 to generate the hash, and now use SHA-3-256. This was never a security concern, but security scanners would notice the MD5 algorithm and raise a false alarm. - Change how report file names are generated, to avoid leading underscores (`issue 1167`_), to avoid rare file name collisions (`issue 584`_), and to avoid file names becoming too long (`issue 580`_). .. _Django coverage plugin: https://pypi.org/project/django-coverage-plugin/ .. _issue 580: https://github.com/nedbat/coveragepy/issues/580 .. _issue 584: https://github.com/nedbat/coveragepy/issues/584 .. _issue 1150: https://github.com/nedbat/coveragepy/issues/1150 .. _issue 1167: https://github.com/nedbat/coveragepy/issues/1167 .. _issue 1168: https://github.com/nedbat/coveragepy/issues/1168 .. _issue 1189: https://github.com/nedbat/coveragepy/issues/1189 .. _tomli: https://pypi.org/project/tomli/ .. _changes_56b1: ``` ### 5.6b1 ``` -------------------------- Note: 5.6 final was never released. These changes are part of 6.0. - Third-party packages are now ignored in coverage reporting. This solves a few problems: - Coverage will no longer report about other people's code (`issue 876`_). This is true even when using ``--source=.`` with a venv in the current directory. - Coverage will no longer generate "Already imported a file that will be measured" warnings about coverage itself (`issue 905`_). - The HTML report uses j/k to move up and down among the highlighted chunks of code. They used to highlight the current chunk, but 5.0 broke that behavior. Now the highlighting is working again. - The JSON report now includes ``percent_covered_display``, a string with the total percentage, rounded to the same number of decimal places as the other reports' totals. .. _issue 876: https://github.com/nedbat/coveragepy/issues/876 .. _issue 905: https://github.com/nedbat/coveragepy/issues/905 .. _changes_55: ```Links
- PyPI: https://pypi.org/project/coverage - Changelog: https://pyup.io/changelogs/coverage/ - Repo: https://github.com/nedbat/coveragepyUpdate tox from 3.24.4 to 3.26.0.
Changelog
### 3.26.0 ``` -------------------- Bugfixes ^^^^^^^^ - Fix fallback to ``python`` environment when ``isolated_build = true`` is set -- by :user:`Unrud` `2474 <https://github.com/tox-dev/tox/issues/2474>`_ - Fixed ``SetuptoolsDeprecationWarning`` about using ``--global-option`` -- by :user:`adamchainz` `2478 <https://github.com/tox-dev/tox/issues/2478>`_ Features ^^^^^^^^ - Use ``tomllib`` on Python 3.11 or later and ``tomli`` instead of ``toml`` library on lower versions - by :user:`hroncok`. `2463 <https://github.com/tox-dev/tox/issues/2463>`_ ``` ### 3.25.1 ``` -------------------- Bugfixes ^^^^^^^^ - ``sitepackages = true`` will add user's site-package to the python path on Windows as expected -- by :user:`niander` `2402 <https://github.com/tox-dev/tox/issues/2402>`_ - Avoid importing ``pipes`` on Python 3.3+ to avoid ``DeprecationWarning`` on Python 3.11 -- by :user:`adamchainz` `2417 <https://github.com/tox-dev/tox/issues/2417>`_ - Fix ``isolated_build`` when the build process produces stderr at exit. `2449 <https://github.com/tox-dev/tox/issues/2449>`_ Documentation ^^^^^^^^^^^^^ - Explain advantages of ``PIP_CONSTRAINT`` environment variable over ``--constraint`` argument. `2423 <https://github.com/tox-dev/tox/issues/2423>`_ ``` ### 3.25.0 ``` -------------------- Bugfixes ^^^^^^^^ - Fixed failing isolated_build because setuptools warning was captured in ``build_requires``. -- by :user:`zariiii9003` `2332 <https://github.com/tox-dev/tox/issues/2332>`_ - Avoid potential 30s delay caused by socket.getfqdn(). -- by :user:`ssbarnea` `2375 <https://github.com/tox-dev/tox/issues/2375>`_ Features ^^^^^^^^ - Ignore missing commands if they are prefixed by ``-`` -- by :user:`cdown`. `2315 <https://github.com/tox-dev/tox/issues/2315>`_ - Add default environment variables (such as http_proxy) regardless of their case to passenv on UNIX -- by :user:`poggenhans`. `2372 <https://github.com/tox-dev/tox/issues/2372>`_ - On Windows ``PROGRAMFILES``, ``PROGRAMFILES(X86)``, and ``PROGRAMDATA`` environment variables are now passed through, unmasking system values necessary to locate resources such as a C compiler. `2382 <https://github.com/tox-dev/tox/issues/2382>`_ Documentation ^^^^^^^^^^^^^ - Deleted the tox mailing list -- by :user:`jugmac00` `2364 <https://github.com/tox-dev/tox/issues/2364>`_ ``` ### 3.24.5 ``` -------------------- Bugfixes ^^^^^^^^ - Fixed an issue where ``usedevelop`` would cause an invocation error if setup.py does not exist. -- by :user:`VincentVanlaer` `2197 <https://github.com/tox-dev/tox/issues/2197>`_ ```Links
- PyPI: https://pypi.org/project/tox - Changelog: https://pyup.io/changelogs/tox/ - Docs: https://tox.readthedocs.ioUpdate Sphinx from 4.2.0 to 5.2.3.
Changelog
### 5.2.3 ``` ===================================== * 10878: Fix base64 image embedding in ``sphinx.ext.imgmath`` * 10886: Add ``:nocontentsentry:`` flag and global domain table of contents entry control option. Patch by Adam Turner ``` ### 5.2.2 ``` ===================================== * 10872: Restore link targets for autodoc modules to the top of content. Patch by Dominic Davis-Foster. ``` ### 5.2.1 ``` ===================================== Bugs fixed ---------- * 10861: Always normalise the ``pycon3`` lexer to ``pycon``. * Fix using ``sphinx.ext.autosummary`` with modules containing titles in the module-level docstring. ``` ### 5.2.0.post0 ``` =========================================== * Recreated source tarballs for Debian maintainers. ``` ### 5.2.0 ``` ===================================== Dependencies ------------ * 10356: Sphinx now uses declarative metadata with ``pyproject.toml`` to create packages, using PyPA's ``flit`` project as a build backend. Patch by Adam Turner. Deprecated ---------- * 10843: Support for HTML 4 output. Patch by Adam Turner. Features added -------------- * 10738: napoleon: Add support for docstring types using 'of', like ``type of type``. Example: ``tuple of int``. * 10286: C++, support requires clauses not just between the template parameter lists and the declaration. * 10755: linkcheck: Check the source URL of raw directives that use the ``url`` option. * 10781: Allow :rst:role:`ref` role to be used with definitions and fields. * 10717: HTML Search: Increase priority for full title and subtitle matches in search results * 10718: HTML Search: Save search result score to the HTML element for debugging * 10673: Make toctree accept 'genindex', 'modindex' and 'search' docnames * 6316, 10804: Add domain objects to the table of contents. Patch by Adam Turner * 6692: HTML Search: Include explicit :rst:dir:`index` directive index entries in the search index and search results. Patch by Adam Turner * 10816: imgmath: Allow embedding images in HTML as base64 * 10854: HTML Search: Use browser localstorage for highlight control, stop storing highlight parameters in URL query strings. Patch by Adam Turner. Bugs fixed ---------- * 10723: LaTeX: 5.1.0 has made the 'sphinxsetup' ``verbatimwithframe=false`` become without effect. * 10257: C++, ensure consistent non-specialization template argument representation. * 10729: C++, fix parsing of certain non-type template parameter packs. * 10715: Revert 10520: "Fix" use of sidebar classes in ``agogo.css_t`` ``` ### 5.1.1 ``` ===================================== Bugs fixed ---------- * 10701: Fix ValueError in the new ``deque`` based ``sphinx.ext.napolean`` iterator implementation. * 10702: Restore compatability with third-party builders. ``` ### 5.1.0 ``` ===================================== Dependencies ------------ * 10656: Support `Docutils 0.19`_. Patch by Adam Turner. .. _Docutils 0.19: https://docutils.sourceforge.io/RELEASE-NOTES.html#release-0-19-2022-07-05 Deprecated ---------- * 10467: Deprecated ``sphinx.util.stemmer`` in favour of ``snowballstemmer``. Patch by Adam Turner. * 9856: Deprecated ``sphinx.ext.napoleon.iterators``. Features added -------------- * 10444: html theme: Allow specifying multiple CSS files through the ``stylesheet`` setting in ``theme.conf`` or by setting ``html_style`` to an iterable of strings. * 10366: std domain: Add support for emphasising placeholders in :rst:dir:`option` directives through a new :confval:`option_emphasise_placeholders` configuration option. * 10439: std domain: Use the repr of some variables when displaying warnings, making whitespace issues easier to identify. * 10571: quickstart: Reduce content in the generated ``conf.py`` file. Patch by Pradyun Gedam. * 10648: LaTeX: CSS-named-alike additional :ref:`'sphinxsetup' <latexsphinxsetup>` keys allow to configure four separate border-widths, four paddings, four corner radii, a shadow (possibly inset), colours for border, background, shadow for each of the code-block, topic, attention, caution, danger, error and warning directives. * 10655: LaTeX: Explain non-standard encoding in LatinRules.xdy * 10599: HTML Theme: Wrap consecutive footnotes in an ``<aside>`` element when using Docutils 0.18 or later, to allow for easier styling. This matches the behaviour introduced in Docutils 0.19. Patch by Adam Turner. * 10518: config: Add ``include_patterns`` as the opposite of ``exclude_patterns``. Patch by Adam Turner. Bugs fixed ---------- * 10594: HTML Theme: field term colons are doubled if using Docutils 0.18+ * 10596: Build failure if Docutils version is 0.18 (not 0.18.1) due to missing ``Node.findall()`` * 10506: LaTeX: build error if highlighting inline code role in figure caption (refs: 10251) * 10634: Make -P (pdb) option work better with exceptions triggered from events * 10550: py domain: Fix spurious whitespace in unparsing various operators (``+``, ``-``, ``~``, and ``**``). Patch by Adam Turner (refs: 10551). * 10460: logging: Always show node source locations as absolute paths. * HTML Search: HTML tags are displayed as a part of object name * HTML Search: search snipets should not be folded * HTML Search: Minor errors are emitted on fetching search snipets * HTML Search: The markers for header links are shown in the search result * 10520: HTML Theme: Fix use of sidebar classes in ``agogo.css_t``. * 6679: HTML Theme: Fix inclusion of hidden toctrees in the agogo theme. * 10566: HTML Theme: Fix enable_search_shortcuts does not work * 8686: LaTeX: Text can fall out of code-block at end of page and leave artifact on next page * 10633: LaTeX: user injected ``\color`` commands in topic or admonition boxes may cause color leaks in PDF due to upstream `framed.sty <https://ctan.org/pkg/framed>`_ bug * 10638: LaTeX: framed coloured boxes in highlighted code (e.g. highlighted diffs using Pygments style ``'manni'``) inherit thickness of code-block frame * 10647: LaTeX: Only one ``\label`` is generated for ``desc_signature`` node even if it has multiple node IDs * 10579: i18n: UnboundLocalError is raised on translating raw directive * 9577, 10088: py domain: Fix warning for duplicate Python references when using ``:any:`` and autodoc. * 10548: HTML Search: fix minor summary issues. ``` ### 5.0.2 ``` ===================================== Features added -------------- * 10523: HTML Theme: Expose the Docutils's version info tuple as a template variable, ``docutils_version_info``. Patch by Adam Turner. Bugs fixed ---------- * 10538: autodoc: Inherited class attribute having docstring is documented even if :confval:`autodoc_inherit_docstring` is disabled * 10509: autosummary: autosummary fails with a shared library * 10497: py domain: Failed to resolve strings in Literal. Patch by Adam Turner. * 10523: HTML Theme: Fix double brackets on citation references in Docutils 0.18+. Patch by Adam Turner. * 10534: Missing CSS for nav.contents in Docutils 0.18+. Patch by Adam Turner. ``` ### 5.0.1 ``` ===================================== Bugs fixed ---------- * 10498: gettext: TypeError is raised when sorting warning messages if a node has no line number. Patch by Adam Turner. * 10493: HTML Theme: :rst:dir:`topic` directive is rendered incorrectly with Docutils 0.18. Patch by Adam Turner. * 10495: IndexError is raised for a :rst:role:`kbd` role having a separator. Patch by Adam Turner. ``` ### 5.0.0 ``` * 9575: autodoc: The annotation of return value should not be shown when ``autodoc_typehints="description"`` * 9648: autodoc: ``*args`` and ``**kwargs`` entries are duplicated when ``autodoc_typehints="description"`` * 8180: autodoc: Docstring metadata ignored for attributes * 10443: epub: EPUB builder can't detect the mimetype of .webp file * 10104: gettext: Duplicated locations are shown if 3rd party extension does not provide correct information * 10456: py domain: ``:meta:`` fields are displayed if docstring contains two or more meta-field * 9096: sphinx-build: the value of progress bar for paralle build is wrong * 10110: sphinx-build: exit code is not changed when error is raised on builder-finished event ``` ### 4.5.0 ``` ===================================== Incompatible changes -------------------- * 10112: extlinks: Disable hardcoded links detector by default * 9993, 10177: std domain: Disallow to refer an inline target via :rst:role:`ref` role Deprecated ---------- * ``sphinx.ext.napoleon.docstring.GoogleDocstring._qualify_name()`` Features added -------------- * 10260: Enable ``FORCE_COLOR`` and ``NO_COLOR`` for terminal colouring * 10234: autosummary: Add "autosummary" CSS class to summary tables * 10125: extlinks: Improve suggestion message for a reference having title * 10112: extlinks: Add :confval:`extlinks_detect_hardcoded_links` to enable hardcoded links detector feature * 9494, 9456: html search: Add a config variable :confval:`html_show_search_summary` to enable/disable the search summaries * 9337: HTML theme, add option ``enable_search_shortcuts`` that enables :kbd:`/` as a Quick search shortcut and :kbd:`Esc` shortcut that removes search highlighting. * 10107: i18n: Allow to suppress translation warnings by adding ``noqa`` comment to the tail of each translation message * 10252: C++, support attributes on classes, unions, and enums. * 10253: :rst:role:`pep` role now generates URLs based on `peps.python.org <https://peps.python.org>`_ Bugs fixed ---------- * 9876: autodoc: Failed to document an imported class that is built from native binary module * 10133: autodoc: Crashed when mocked module is used for type annotation * 10146: autodoc: :confval:`autodoc_default_options` does not support ``no-value`` option * 9971: autodoc: TypeError is raised when the target object is annotated by unhashable object * 10205: extlinks: Failed to compile regexp on checking hardcoded links * 10277: html search: Could not search short words (ex. "use") * 9529: LaTeX: named auto numbered footnote (ex. ``[named]``) that is referred multiple times was rendered to a question mark * 9924: LaTeX: multi-line :rst:dir:`cpp:function` directive has big vertical spacing in Latexpdf * 10158: LaTeX: excessive whitespace since v4.4.0 for undocumented variables/structure members * 10175: LaTeX: named footnote reference is linked to an incorrect footnote if the name is also used in the different document * 10269: manpage: Failed to resolve the title of :rst:role:`ref` cross references * 10179: i18n: suppress "rST localization" warning * 10118: imgconverter: Unnecessary availablity check is called for remote URIs * 10181: napoleon: attributes are displayed like class attributes for google style docstrings when :confval:`napoleon_use_ivar` is enabled * 10122: sphinx-build: make.bat does not check the installation of sphinx-build command before showing help ``` ### 4.4.0 ``` ===================================== Dependencies ------------ * 10007: Use ``importlib_metadata`` for python-3.9 or older * 10007: Drop ``setuptools`` Features added -------------- * 9075: autodoc: Add a config variable :confval:`autodoc_typehints_format` to suppress the leading module names of typehints of function signatures (ex. ``io.StringIO`` -> ``StringIO``) * 9831: Autosummary now documents only the members specified in a module's ``__all__`` attribute if :confval:`autosummary_ignore_module_all` is set to ``False``. The default behaviour is unchanged. Autogen also now supports this behavior with the ``--respect-module-all`` switch. * 9555: autosummary: Improve error messages on failure to load target object * 9800: extlinks: Emit warning if a hardcoded link is replaceable by an extlink, suggesting a replacement. * 9961: html: Support nested <kbd> HTML elements in other HTML builders * 10013: html: Allow to change the loading method of JS via ``loading_method`` parameter for :meth:`.Sphinx.add_js_file()` * 9551: html search: "Hide Search Matches" link removes "highlight" parameter from URL * 9815: html theme: Wrap sidebar components in div to allow customizing their layout via CSS * 9827: i18n: Sort items in glossary by translated terms * 9899: py domain: Allows to specify cross-reference specifier (``.`` and ``~``) as ``:type:`` option * 9894: linkcheck: add option ``linkcheck_exclude_documents`` to disable link checking in matched documents. * 9793: sphinx-build: Allow to use the parallel build feature in macOS on macOS and Python3.8+ * 10055: sphinx-build: Create directories when ``-w`` option given * 9993: std domain: Allow to refer an inline target (ex. ``_`target name) via :rst:role:`ref` role * 9981: std domain: Strip value part of the option directive from general index * 9391: texinfo: improve variable in ``samp`` role * 9578: texinfo: Add :confval:`texinfo_cross_references` to disable cross references for readability with standalone readers * 9822 (and 9062), add new Intersphinx role :rst:role:`external` for explict lookup in the external projects, without resolving to the local project. Bugs fixed ---------- * 9866: autodoc: doccomment for the imported class was ignored * 9883: autodoc: doccomment for the alias to mocked object was ignored * 9908: autodoc: debug message is shown on building document using NewTypes with Python 3.10 * 9968: autodoc: instance variables are not shown if __init__ method has position-only-arguments * 9194: autodoc: types under the "typing" module are not hyperlinked * 10009: autodoc: Crashes if target object raises an error on getting docstring * 10058: autosummary: Imported members are not shown when ``autodoc_class_signature = 'separated'`` * 9947: i18n: topic directive having a bullet list can't be translatable * 9878: mathjax: MathJax configuration is placed after loading MathJax itself * 9932: napoleon: empty "returns" section is generated even if no description * 9857: Generated RFC links use outdated base url * 9909: HTML, prevent line-wrapping in literal text. * 10061: html theme: Configuration values added by themes are not be able to override from conf.py * 10073: imgconverter: Unnecessary availablity check is called for "data" URIs * 9925: LaTeX: prohibit also with ``'xelatex'`` line splitting at dashes of inline and parsed literals * 9944: LaTeX: extra vertical whitespace for some nested declarations * 9940: LaTeX: Multi-function declaration in Python domain has cramped vertical spacing in latexpdf output * 10015: py domain: types under the "typing" module are not hyperlinked defined at info-field-list * 9390: texinfo: Do not emit labels inside footnotes * 9413: xml: Invalid XML was generated when cross referencing python objects * 9979: Error level messages were displayed as warning messages * 10057: Failed to scan documents if the project is placed onto the root directory * 9636: code-block: ``:dedent:`` without argument did strip newlines ``` ### 4.3.2 ``` ===================================== Bugs fixed ---------- * 9917: C and C++, parse fundamental types no matter the order of simple type specifiers. ``` ### 4.3.1 ``` ===================================== Features added -------------- * 9864: mathjax: Support chnaging the loading method of MathJax to "defer" via :confval:`mathjax_options` Bugs fixed ---------- * 9838: autodoc: AttributeError is raised on building document for functions decorated by functools.lru_cache * 9879: autodoc: AttributeError is raised on building document for an object having invalid __doc__ attribute * 9844: autodoc: Failed to process a function wrapped with functools.partial if :confval:`autodoc_preserve_defaults` enabled * 9872: html: Class namespace collision between autodoc signatures and docutils-0.17 * 9868: imgmath: Crashed if the dvisvgm command failed to convert equation * 9864: mathjax: Failed to render equations via MathJax v2. The loading method of MathJax is back to "async" method again ``` ### 4.3.0 ``` ===================================== Dependencies ------------ * Support Python 3.10 Incompatible changes -------------------- * 9649: ``searchindex.js``: the embedded data has changed format to allow objects with the same name in different domains. * 9672: The rendering of Python domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling. * 9672: the signature of ``domains.python.PyObject.get_signature_prefix`` has changed to return a list of nodes instead of a plain string. * 9695: ``domains.js.JSObject.display_prefix`` has been changed into a method ``get_display_prefix`` which now returns a list of nodes instead of a plain string. * 9695: The rendering of Javascript domain declarations is implemented with more docutils nodes to allow better CSS styling. It may break existing styling. * 9450: mathjax: Load MathJax via "defer" strategy Deprecated ---------- * ``sphinx.ext.autodoc.AttributeDocumenter._datadescriptor`` * ``sphinx.writers.html.HTMLTranslator._fieldlist_row_index`` * ``sphinx.writers.html.HTMLTranslator._table_row_index`` * ``sphinx.writers.html5.HTML5Translator._fieldlist_row_index`` * ``sphinx.writers.html5.HTML5Translator._table_row_index`` Features added -------------- * 9639: autodoc: Support asynchronous generator functions * 9664: autodoc: ``autodoc-process-bases`` supports to inject reST snippet as a base class * 9691: C, added new info-field ``retval`` for :rst:dir:`c:function` and :rst:dir:`c:macro`. * C++, added new info-field ``retval`` for :rst:dir:`cpp:function`. * 9618: i18n: Add :confval:`gettext_allow_fuzzy_translations` to allow "fuzzy" messages for translation * 9672: More CSS classes on Python domain descriptions * 9695: More CSS classes on Javascript domain descriptions * 9683: Revert the removal of ``add_stylesheet()`` API. It will be kept until the Sphinx-6.0 release * 2068, add :confval:`intersphinx_disabled_reftypes` for disabling interphinx resolution of cross-references that do not have an explicit inventory specification. Specific types of cross-references can be disabled, e.g., ``std:doc`` or all cross-references in a specific domain, e.g., ``std:*``. * 9623: Allow to suppress "toctree contains reference to excluded document" warnings using :confval:`suppress_warnings` Bugs fixed ---------- * 9630: autodoc: Failed to build cross references if :confval:`primary_domain` is not 'py' * 9644: autodoc: Crashed on getting source info from problematic object * 9655: autodoc: mocked object having doc comment is warned unexpectedly * 9651: autodoc: return type field is not generated even if :confval:`autodoc_typehints_description_target` is set to "documented" when its info-field-list contains ``:returns:`` field * 9657: autodoc: The base class for a subclass of mocked object is incorrect * 9607: autodoc: Incorrect base class detection for the subclasses of the generic class * 9755: autodoc: memory addresses are shown for aliases * 9752: autodoc: Failed to detect type annotation for slots attribute * 9756: autodoc: Crashed if classmethod does not have __func__ attribute * 9757: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to overridden classmethods * 9781: autodoc: :confval:`autodoc_preserve_defaults` does not support hexadecimal numeric * 9630: autosummary: Failed to build summary table if :confval:`primary_domain` is not 'py' * 9670: html: Fix download file with special characters * 9710: html: Wrong styles for even/odd rows in nested tables * 9763: html: parameter name and its type annotation are not separated in HTML * 9649: HTML search: when objects have the same name but in different domains, return all of them as result instead of just one. * 7634: intersphinx: references on the file in sub directory are broken * 9737: LaTeX: hlist is rendered as a list containing "aggedright" text * 9678: linkcheck: file extension was shown twice in warnings * 9697: py domain: An index entry with parens was registered for ``py:method`` directive with ``:property:`` option * 9775: py domain: Literal typehint was converted to a cross reference when :confval:`autodoc_typehints='description'` * 9708: needs_extension failed to check double-digit version correctly * 9688: Fix Sphinx patched :dudir:`code` does not recognize ``:class:`` option * 9733: Fix for logging handler flushing warnings in the middle of the docs build * 9656: Fix warnings without subtype being incorrectly suppressed * Intersphinx, for unresolved references with an explicit inventory, e.g., ``proj:myFunc``, leave the inventory prefix in the unresolved text. ```Links
- PyPI: https://pypi.org/project/sphinx - Changelog: https://pyup.io/changelogs/sphinx/Update numpy from 1.21.2 to 1.23.3.
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.2.5 to 7.1.3.
Changelog
### 7.1.3 ``` ========================= Bug Fixes --------- - `10060 <https://github.com/pytest-dev/pytest/issues/10060>`_: When running with ``--pdb``, ``TestCase.tearDown`` is no longer called for tests when the *class* has been skipped via ``unittest.skip`` or ``pytest.mark.skip``. - `10190 <https://github.com/pytest-dev/pytest/issues/10190>`_: Invalid XML characters in setup or teardown error messages are now properly escaped for JUnit XML reports. - `10230 <https://github.com/pytest-dev/pytest/issues/10230>`_: Ignore ``.py`` files created by ``pyproject.toml``-based editable builds introduced in `pip 21.3 <https://pip.pypa.io/en/stable/news/#v21-3>`__. - `3396 <https://github.com/pytest-dev/pytest/issues/3396>`_: Doctests now respect the ``--import-mode`` flag. - `9514 <https://github.com/pytest-dev/pytest/issues/9514>`_: Type-annotate ``FixtureRequest.param`` as ``Any`` as a stop gap measure until :issue:`8073` is fixed. - `9791 <https://github.com/pytest-dev/pytest/issues/9791>`_: Fixed a path handling code in ``rewrite.py`` that seems to work fine, but was incorrect and fails in some systems. - `9917 <https://github.com/pytest-dev/pytest/issues/9917>`_: Fixed string representation for :func:`pytest.approx` when used to compare tuples. Improved Documentation ---------------------- - `9937 <https://github.com/pytest-dev/pytest/issues/9937>`_: Explicit note that :fixture:`tmpdir` fixture is discouraged in favour of :fixture:`tmp_path`. Trivial/Internal Changes ------------------------ - `10114 <https://github.com/pytest-dev/pytest/issues/10114>`_: Replace `atomicwrites <https://github.com/untitaker/python-atomicwrites>`__ dependency on windows with `os.replace`. ``` ### 7.1.2 ``` ========================= Bug Fixes --------- - `9726 <https://github.com/pytest-dev/pytest/issues/9726>`_: An unnecessary ``numpy`` import inside :func:`pytest.approx` was removed. - `9820 <https://github.com/pytest-dev/pytest/issues/9820>`_: Fix comparison of ``dataclasses`` with ``InitVar``. - `9869 <https://github.com/pytest-dev/pytest/issues/9869>`_: Increase ``stacklevel`` for the ``NODE_CTOR_FSPATH_ARG`` deprecation to point to the user's code, not pytest. - `9871 <https://github.com/pytest-dev/pytest/issues/9871>`_: Fix a bizarre (and fortunately rare) bug where the `temp_path` fixture could raise an internal error while attempting to get the current user's username. ``` ### 7.1.1 ``` ========================= Bug Fixes --------- - `9767 <https://github.com/pytest-dev/pytest/issues/9767>`_: Fixed a regression in pytest 7.1.0 where some conftest.py files outside of the source tree (e.g. in the `site-packages` directory) were not picked up. ``` ### 7.1.0 ``` ========================= Breaking Changes ---------------- - `8838 <https://github.com/pytest-dev/pytest/issues/8838>`_: As per our policy, the following features have been deprecated in the 6.X series and are now removed: * ``pytest._fillfuncargs`` function. * ``pytest_warning_captured`` hook - use ``pytest_warning_recorded`` instead. * ``-k -foobar`` syntax - use ``-k 'not foobar'`` instead. * ``-k foobar:`` syntax. * ``pytest.collect`` module - import from ``pytest`` directly. For more information consult `Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs. - `9437 <https://github.com/pytest-dev/pytest/issues/9437>`_: Dropped support for Python 3.6, which reached `end-of-life <https://devguide.python.org/#status-of-python-branches>`__ at 2021-12-23. Improvements ------------ - `5192 <https://github.com/pytest-dev/pytest/issues/5192>`_: Fixed test output for some data types where ``-v`` would show less information. Also, when showing diffs for sequences, ``-q`` would produce full diffs instead of the expected diff. - `9362 <https://github.com/pytest-dev/pytest/issues/9362>`_: pytest now avoids specialized assert formatting when it is detected that the default ``__eq__`` is overridden in ``attrs`` or ``dataclasses``. - `9536 <https://github.com/pytest-dev/pytest/issues/9536>`_: When ``-vv`` is given on command line, show skipping and xfail reasons in full instead of truncating them to fit the terminal width. - `9644 <https://github.com/pytest-dev/pytest/issues/9644>`_: More information about the location of resources that led Python to raise :class:`ResourceWarning` can now be obtained by enabling :mod:`tracemalloc`. See :ref:`resource-warnings` for more information. - `9678 <https://github.com/pytest-dev/pytest/issues/9678>`_: More types are now accepted in the ``ids`` argument to ``pytest.mark.parametrize``. Previously only `str`, `float`, `int` and `bool` were accepted; now `bytes`, `complex`, `re.Pattern`, `Enum` and anything with a `__name__` are also accepted. - `9692 <https://github.com/pytest-dev/pytest/issues/9692>`_: :func:`pytest.approx` now raises a :class:`TypeError` when given an unordered sequence (such as :class:`set`). Note that this implies that custom classes which only implement ``__iter__`` and ``__len__`` are no longer supported as they don't guarantee order. Bug Fixes --------- - `8242 <https://github.com/pytest-dev/pytest/issues/8242>`_: The deprecation of raising :class:`unittest.SkipTest` to skip collection of tests during the pytest collection phase is reverted - this is now a supported feature again. - `9493 <https://github.com/pytest-dev/pytest/issues/9493>`_: Symbolic link components are no longer resolved in conftest paths. This means that if a conftest appears twice in collection tree, using symlinks, it will be executed twice. For example, given tests/real/conftest.py tests/real/test_it.py tests/link -> tests/real running ``pytest tests`` now imports the conftest twice, once as ``tests/real/conftest.py`` and once as ``tests/link/conftest.py``. This is a fix to match a similar change made to test collection itself in pytest 6.0 (see :pull:`6523` for details). - `9626 <https://github.com/pytest-dev/pytest/issues/9626>`_: Fixed count of selected tests on terminal collection summary when there were errors or skipped modules. If there were errors or skipped modules on collection, pytest would mistakenly subtract those from the selected count. - `9645 <https://github.com/pytest-dev/pytest/issues/9645>`_: Fixed regression where ``--import-mode=importlib`` used together with :envvar:`PYTHONPATH` or :confval:`pythonpath` would cause import errors in test suites. - `9708 <https://github.com/pytest-dev/pytest/issues/9708>`_: :fixture:`pytester` now requests a :fixture:`monkeypatch` fixture instead of creating one internally. This solves some issues with tests that involve pytest environment variables. - `9730 <https://github.com/pytest-dev/pytest/issues/9730>`_: Malformed ``pyproject.toml`` files now produce a clearer error message. ``` ### 7.0.1 ``` ========================= Bug Fixes --------- - `9608 <https://github.com/pytest-dev/pytest/issues/9608>`_: Fix invalid importing of ``importlib.readers`` in Python 3.9. - `9610 <https://github.com/pytest-dev/pytest/issues/9610>`_: Restore `UnitTestFunction.obj` to return unbound rather than bound method. Fixes a crash during a failed teardown in unittest TestCases with non-default `__init__`. Regressed in pytest 7.0.0. - `9636 <https://github.com/pytest-dev/pytest/issues/9636>`_: The ``pythonpath`` plugin was renamed to ``python_path``. This avoids a conflict with the ``pytest-pythonpath`` plugin. - `9642 <https://github.com/pytest-dev/pytest/issues/9642>`_: Fix running tests by id with ``::`` in the parametrize portion. - `9643 <https://github.com/pytest-dev/pytest/issues/9643>`_: Delay issuing a :class:`~pytest.PytestWarning` about diamond inheritance involving :class:`~pytest.Item` and :class:`~pytest.Collector` so it can be filtered using :ref:`standard warning filters <warnings>`. ``` ### 7.0.0 ``` ========================= (**Please see the full set of changes for this release also in the 7.0.0rc1 notes below**) Deprecations ------------ - `9488 <https://github.com/pytest-dev/pytest/issues/9488>`_: If custom subclasses of nodes like :class:`pytest.Item` override the ``__init__`` method, they should take ``**kwargs``. See :ref:`uncooperative-constructors-deprecated` for details. Note that a deprection warning is only emitted when there is a conflict in the arguments pytest expected to pass. This deprecation was already part of pytest 7.0.0rc1 but wasn't documented. Bug Fixes --------- - `9355 <https://github.com/pytest-dev/pytest/issues/9355>`_: Fixed error message prints function decorators when using assert in Python 3.8 and above. - `9396 <https://github.com/pytest-dev/pytest/issues/9396>`_: Ensure :attr:`pytest.Config.inifile` is available during the :func:`pytest_cmdline_main <_pytest.hookspec.pytest_cmdline_main>` hook (regression during ``7.0.0rc1``). Improved Documentation ---------------------- - `9404 <https://github.com/pytest-dev/pytest/issues/9404>`_: Added extra documentation on alternatives to common misuses of `pytest.warns(None)` ahead of its deprecation. - `9505 <https://github.com/pytest-dev/pytest/issues/9505>`_: Clarify where the configuration files are located. To avoid confusions documentation mentions that configuration file is located in the root of the repository. Trivial/Internal Changes ------------------------ - `9521 <https://github.com/pytest-dev/pytest/issues/9521>`_: Add test coverage to assertion rewrite path. ``` ### 7.0.0rc1 ``` ============================ Breaking Changes ---------------- - `7259 <https://github.com/pytest-dev/pytest/issues/7259>`_: The :ref:`Node.reportinfo() <non-python tests>` function first return value type has been expanded from `py.path.local | str` to `os.PathLike[str] | str`. Most plugins which refer to `reportinfo()` only define it as part of a custom :class:`pytest.Item` implementation. Since `py.path.local` is a `os.PathLike[str]`, these plugins are unaffacted. Plugins and users which call `reportinfo()`, use the first return value and interact with it as a `py.path.local`, would need to adjust by calling `py.path.local(fspath)`. Although preferably, avoid the legacy `py.path.local` and use `pathlib.Path`, or use `item.location` or `item.path`, instead. Note: pytest was not able to provide a deprecation period for this change. - `8246 <https://github.com/pytest-dev/pytest/issues/8246>`_: ``--version`` now writes