Sourced from coverage's changelog.
\n\n\nVersion 7.5.3 — 2024-05-28
\n\n
\n- \n
\nPerformance improvements for combining data files, especially when measuring\nline coverage. A few different quadratic behaviors were eliminated. In one\nextreme case of combining 700+ data files, the time dropped from more than\nthree hours to seven minutes. Thanks for Kraken Tech for funding the fix.
\n- \n
\nPerformance improvements for generating HTML reports, with a side benefit of\nreducing memory use, closing
\nissue 1791
_. Thanks to Daniel Diniz for\nhelping to diagnose the problem... _issue 1791: nedbat/coveragepy#1791
\n.. _changes_7-5-2:
\n
f310d7e
docs: sample HTML for 7.5.3a51d52f
docs: prep for 7.5.3b666f3a
perf: it's faster in all versions if we don't cache tokenize #1791a2b4929
docs: changelog entry for combine
performance improvementsb9aff50
perf: don't read full line_bits table each timec45ebac
perf: cache alias mapping390cb97
perf: avoid quadratic behavior when combining line coveraged3caf53
docs(build): tweaks to howto909e887
build: bump versionSourced from coverage's changelog.
\n\n\nVersion 7.5.2 — 2024-05-24
\n\n
\n- \n
\nFix: nested matches of exclude patterns could exclude too much code, as\nreported in
\nissue 1779
_. This is now fixed.- \n
\nChanged: previously, coverage.py would consider a module docstring to be an\nexecutable statement if it appeared after line 1 in the file, but not\nexecutable if it was the first line. Now module docstrings are never counted\nas executable statements. This can change coverage.py's count of the number\nof statements in a file, which can slightly change the coverage percentage\nreported.
\n- \n
\nIn the HTML report, the filter term and "hide covered" checkbox settings are\nremembered between viewings, thanks to
\nDaniel Diniz <pull 1776_>
_.- \n
\nPython 3.13.0b1 is supported.
\n- \n
\nFix: parsing error handling is improved to ensure bizarre source files are\nhandled gracefully, and to unblock oss-fuzz fuzzing, thanks to
\nLiam DeVoe <pull 1788_>
. Closesissue 1787
... _pull 1776: nedbat/coveragepy#1776\n.. _issue 1779: nedbat/coveragepy#1779\n.. _issue 1787: nedbat/coveragepy#1787\n.. _pull 1788: nedbat/coveragepy#1788
\n.. _changes_7-5-1:
\n
242adea
build: don't claim pre-alpha-1 in classifiers7f33622
docs: sample HTML for 7.5.2946fa3a
docs: prep for 7.5.2535ddc3
build: pylint can run in parallel60a5d65
docs: explain partial coverage reports on generator expressions (#1789)0700018
docs: changelog for #1788 #1787. Thanks Liam DeVoe364282e
fix: catch TokenError on parse (#1788)81089de
fix: module docstrings are never counted as statements96bd930
fix: rework exclusion parsing to fix #177975f9d51
test(build): when running metacov, create json reportSourced from coverage's changelog.
\n\n\nVersion 7.5.1 — 2024-05-04
\n\n
\n- \n
\nFix: a pragma comment on the continuation lines of a multi-line statement\nnow excludes the statement and its body, the same as if the pragma is\non the first line. This closes
\nissue 754
. The fix was contributed by\nDaniel Diniz <pull 1773_>
.- \n
\nFix: very complex source files like
\nthis one <resolvent_lookup_>
_ could\ncause a maximum recursion error when creating an HTML report. This is now\nfixed, closingissue 1774
_.- \n
\nHTML report improvements:
\n\n
\n- \n
\nSupport files (JavaScript and CSS) referenced by the HTML report now have\nhashes added to their names to ensure updated files are used instead of\nstale cached copies.
\n- \n
\nMissing branch coverage explanations that said "the condition was never\nfalse" now read "the condition was always true" because it's easier to\nunderstand.
\n- \n
\nColumn sort order is remembered better as you move between the index pages,\nfixing
\nissue 1766
. Thanks,Daniel Diniz <pull 1768_>
... _resolvent_lookup: https://github.com/sympy/sympy/blob/130950f3e6b3f97fcc17f4599ac08f70fdd2e9d4/sympy/polys/numberfields/resolvent_lookup.py\n.. _issue 754: nedbat/coveragepy#754\n.. _issue 1766: nedbat/coveragepy#1766\n.. _pull 1768: nedbat/coveragepy#1768\n.. _pull 1773: nedbat/coveragepy#1773\n.. _issue 1774: nedbat/coveragepy#1774
\n.. _changes_7-5-0:
\n
be938ea
docs: sample HTML for 7.5.102c66d7
docs: prep for 7.5.15fa9f67
fix: avoid max recursion errors in ast code. #177434af01d
build: easier to run metasmoke on desired python version6b0cac5
perf: cache _human_key to speed html report by about 10%fdc0ee8
docs: oops, typo60e6cb4
docs: changelog for #754 and #1773277c8c4
fix: '# pragma: no branch' in multiline if statements. #754 (#1773)34d3eb7
docs: update changelog for #1786. Thanks, Daniel Diniz2bb5ef2
fix(html): make HTML column sorting consistent across index pages (fix #1766)...Sourced from coverage's changelog.
\n\n\nVersion 7.5.0 — 2024-04-23
\n\n
\n- \n
\nAdded initial support for function and class reporting in the HTML report.\nThere are now three index pages which link to each other: files, functions,\nand classes. Other reports don't yet have this information, but it will be\nadded in the future where it makes sense. Feedback gladly accepted!\nFinishes
\nissue 780
_.- \n
\nOther HTML report improvements:
\n\n
\n- \n
\nThere is now a "hide covered" checkbox to filter out 100% files, finishing\n
\nissue 1384
_.- \n
\nThe index page is always sorted by one of its columns, with clearer\nindications of the sorting.
\n- \n
\nThe "previous file" shortcut key didn't work on the index page, but now it\ndoes, fixing
\nissue 1765
_.- \n
\nThe debug output showing which configuration files were tried now shows\nabsolute paths to help diagnose problems where settings aren't taking effect,\nand is renamed from "attempted_config_files" to the more logical\n"config_files_attempted."
\n- \n
\nPython 3.13.0a6 is supported.
\n.. _issue 780: nedbat/coveragepy#780\n.. _issue 1384: nedbat/coveragepy#1384\n.. _issue 1765: nedbat/coveragepy#1765
\n.. _changes_7-4-4:
\n
5f4e034
docs: sample HTML for 7.5.0ed97cfb
docs: prep for 7.5.041e01d3
build: use macos 13 for 3.8 and 3.9 while GitHub rolls out macos 14583f0c0
test: add a test for skipping covered functionsb115ed3
refactor: keep Analysis private40a052e
docs: document CodeRegion and its plugin methods2ff9933
docs: remove comment that now explains nothing.a6ba1c8
fix: html report pages fully validate74c87a8
fix: previous page shortcut works in index page. #1765e016967
feat: main index page links to other index pagesSourced from coverage's changelog.
\n\n\nVersion 7.4.4 — 2024-03-14
\n\n
\n- \n
\nFix: in some cases, even with
\n[run] relative_files=True
, a data file\ncould be created with absolute path names. When combined with other relative\ndata files, it was random whether the absolute file names would be made\nrelative or not. If they weren't, then a file would be listed twice in\nreports, as detailed inissue 1752
_. This is now fixed: absolute file\nnames are always made relative when combining. Thanks to Bruno Rodrigues dos\nSantos for support.- \n
\nFix: the last case of a match/case statement had an incorrect message if the\nbranch was missed. It said the pattern never matched, when actually the\nbranch is missed if the last case always matched.
\n- \n
\nFix: clicking a line number in the HTML report now positions more accurately.
\n- \n
\nFix: the
\nreport:format
setting was defined as a boolean, but should be a\nstring. Thanks,Tanaydin Sirin <pull 1754_>
_. It is also now documented\non the :ref:configuration page <config_report_format>
... _issue 1752: nedbat/coveragepy#1752\n.. _pull 1754: nedbat/coveragepy#1754
\n.. _changes_7-4-3:
\n
bc5e2d7
docs: sample HTML for 7.4.49b0008b
docs: prep for 7.4.4a536161
docs: thanks, Bruno Rodrigues dos Santose06e4f9
chore: make doc_upgradef30818e
chore: make upgrade1b19799
fix: ensure absolute paths are relative when combined #17521ef020d
build: more cheats for convenient URLs3d57a07
docs: document the report:format setting8e30221
fix: correct the type of report:format in config.py (#1754)6289be8
refactor: use dataclasses, no namedtupleSourced from coverage's changelog.
\n\n\nVersion 7.4.3 — 2024-02-23
\n\n
\n- Fix: in some cases, coverage could fail with a RuntimeError: "Set changed\nsize during iteration." This is now fixed, closing
\nissue 1733
_... _issue 1733: nedbat/coveragepy#1733
\n.. _changes_7-4-2:
\nVersion 7.4.2 — 2024-02-20
\n\n
\n- Fix: setting
\nCOVERAGE_CORE=sysmon
no longer errors on 3.11 and lower,\nthanksHugo van Kemenade <pull 1747_>
_. It now issues a warning that\nsys.monitoring is not available and falls back to the default core instead... _pull 1747: nedbat/coveragepy#1747
\n.. _changes_7-4-1:
\n
1af3624
docs: sample HTML for 7.4.3f06c5e4
docs: prep for 7.4.308fc997
fix: get atomic copies of iterables when flushing data. #17334e34571
build: put a time limit on the Python nightly testsa1d8d29
build: make targets should use underscores not dashesf7d40a0
build: tweak the release instructions0f19b82
build: bump version5d69334
test: if a test fails randomly, let it retry with @flaky
65d686c
docs: sample HTML for 7.4.2026dca7
docs: prep for 7.4.2Sourced from coverage's changelog.
\n\n\nVersion 7.4.1 — 2024-01-26
\n\n
\n- \n
\nPython 3.13.0a3 is supported.
\n- \n
\nFix: the JSON report now includes an explicit format version number, closing\n
\nissue 1732
_... _issue 1732: nedbat/coveragepy#1732
\n.. _changes_7-4-0:
\n
07588ea
test: give hypothesis a little more time2c96518
build: tags should be signed8d1857f
docs: sample HTML for 7.4.1ddc88f7
docs: prep for 7.4.198cd671
docs: correct two library urls498b8c9
build: coverage runs have to skip windows pypy too75b22f0
test: ignore color in tracebacksb7c41a2
build: show action environment variables for debuggingf8be865
build: run actions on 3.13 since a3 came out.de60a6d
build(deps): bump actions/dependency-review-action from 3 to 4later
"}},{"before":"4247cd6964fbcbd0e34408846507879bcb40b431","after":"e1bd3d3dbc89c434471177da7cec6b09f02f6c11","ref":"refs/heads/main","pushedAt":"2024-01-26T20:04:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"suppress errors in `later`\n\nReviewed By: amyreese\n\nDifferential Revision: D53099729\n\nfbshipit-source-id: fc3103940dbbdf0c212d5a5f043ca88a147a6ec6","shortMessageHtmlLink":"suppress errors in later
"}},{"before":"9414619dbc26f9b7d0fbb4ffd11f9ea39ea44a1d","after":"4247cd6964fbcbd0e34408846507879bcb40b431","ref":"refs/heads/main","pushedAt":"2024-01-24T14:20:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"upgrade pyre version in `fbcode/later` - batch 1\n\nDifferential Revision: D53014065\n\nfbshipit-source-id: 4e193e10b1bd3d14124a8185e34e9a6ed3052706","shortMessageHtmlLink":"upgrade pyre version in fbcode/later
- batch 1"}},{"before":"2e9fcb92c7fbac7bec60e0ef88fbefe651c18579","after":null,"ref":"refs/heads/dependabot/pip/coverage-7.4.0","pushedAt":"2023-12-28T18:39:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"e104cee78bb7bbf9391235392dfdd282684102d6","after":"9414619dbc26f9b7d0fbb4ffd11f9ea39ea44a1d","ref":"refs/heads/main","pushedAt":"2023-12-28T18:38:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"facebook-github-bot","name":"Facebook Community Bot","path":"/facebook-github-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6422482?s=80&v=4"},"commit":{"message":"Bump coverage from 7.3.4 to 7.4.0 (#22)\n\nSummary:\nBumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.4 to 7.4.0.\nSourced from coverage's changelog.
\n\n\nVersion 7.4.0 — 2023-12-27
\n\n
\n- In Python 3.12 and above, you can try an experimental core based on the new\n:mod:
\nsys.monitoring <python:sys.monitoring>
module by defining a\nCOVERAGE_CORE=sysmon
environment variable. This should be faster, though\nplugins and dynamic contexts are not yet supported with it. I am very\ninterested to hear how it works (or doesn't!) for you... _changes_7-3-4:
\n
23a015c
docs: sample HTML for 7.4.04f020d4
docs: prep for 7.4.05bb88c3
build: temporarily disable metacov, it's flaky now with sysmon support3879b97
docs: mention sys.monitoring support9a84eeb
style: environment variable names should be monospace7882b8c
refactor: clean lint and mypy for sysmon et al5dad1a1
test: test which core we getb7e0c34
fix: don't default to sysmon yete5babcf
docs: explain the COVERAGE_*_CORE testing variablesebdc277
fix: use core
more consistently than tracer