freshcrate
Skin:/
Home > RAG & Memory > diff-cover

diff-cover

Run coverage and linting reports on diffs

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

diff-cover |pypi-version| |conda-version| |build-status| ======================================================================================== Automatically find diff lines that need test coverage. Also finds diff lines that have violations (according to tools such as pycodestyle, pyflakes, flake8, or pylint). This is used as a code quality metric during code reviews. Overview -------- Diff coverage is the percentage of new or modified lines that are covered by tests. This provides a clear and achievable standard for code review: If you touch a line of code, that line should be covered. Code coverage is *every* developer's responsibility! The ``diff-cover`` command line tool compares an XML coverage report with the output of ``git diff``. It then reports coverage information for lines in the diff. Currently, ``diff-cover`` requires that: - You are using ``git`` for version control. - Your test runner generates coverage reports in Cobertura, Clover or JaCoCo XML format, or LCov format. Supported XML or LCov coverage reports can be generated with many coverage tools, including: - Cobertura__ (Java) - Clover__ (Java) - JaCoCo__ (Java) - coverage.py__ (Python) - JSCover__ (JavaScript) - lcov__ (C/C++) __ http://cobertura.sourceforge.net/ __ http://openclover.org/ __ https://www.jacoco.org/ __ http://nedbatchelder.com/code/coverage/ __ http://tntim96.github.io/JSCover/ __ https://ltp.sourceforge.net/coverage/lcov.php ``diff-cover`` is designed to be extended. If you are interested in adding support for other version control systems or coverage report formats, see below for information on how to contribute! Installation ------------ To install the latest release: .. code:: bash pip install diff-cover To install the development version: .. code:: bash git clone https://github.com/Bachmann1234/diff-cover.git cd diff-cover poetry install poetry shell Getting Started --------------- 1. Set the current working directory to a ``git`` repository. 2. Run your test suite under coverage and generate a [Cobertura, Clover or JaCoCo] XML report. For example, using `pytest-cov`__: .. code:: bash pytest --cov --cov-report=xml __ https://pypi.org/project/pytest-cov This will create a ``coverage.xml`` file in the current working directory. **NOTE**: If you are using a different coverage generator, you will need to use different commands to generate the coverage XML report. 3. Run ``diff-cover``: .. code:: bash diff-cover coverage.xml This will compare the current ``git`` branch to ``origin/main`` and print the diff coverage report to the console. You can also generate an HTML, JSON or Markdown version of the report: .. code:: bash diff-cover coverage.xml --format html:report.html diff-cover coverage.xml --format json:report.json diff-cover coverage.xml --format markdown:report.md diff-cover coverage.xml --format html:report.html,markdown:report.md Multiple XML Coverage Reports ------------------------------- In the case that one has multiple xml reports form multiple test suites, you can get a combined coverage report (a line is counted as covered if it is covered in ANY of the xml reports) by running ``diff-cover`` with multiple coverage reports as arguments. You may specify any arbitrary number of coverage reports: .. code:: bash diff-cover coverage1.xml coverage2.xml Quality Coverage ----------------- You can use diff-cover to see quality reports on the diff as well by running ``diff-quality``. .. code :: bash diff-quality --violations=<tool> Where ``tool`` is the quality checker to use. Currently ``pycodestyle``, ``pyflakes``, ``flake8``, ``pylint``, ``checkstyle``, ``checkstylexml``, ``ruff.check``, ``clang`` are supported, but more checkers can (and should!) be supported. See the section "Adding `diff-quality`` Support for a New Quality Checker". NOTE: There's no way to run ``findbugs`` from ``diff-quality`` as it operating over the generated java bytecode and should be integrated into the build framework. Like ``diff-cover``, HTML, JSON or Markdown reports can be generated with .. code:: bash diff-quality --violations=<tool> --format html:report.html diff-quality --violations=<tool> --format json:report.json diff-quality --violations=<tool> --format markdown:report.md diff-quality --violations=<tool> --format html:report.html,markdown:report.md If you have already generated a report using ``pycodestyle``, ``pyflakes``, ``flake8``, ``pylint``, ``checkstyle``, ``checkstylexml``, or ``findbugs`` you can pass the report to ``diff-quality``. This is more efficient than letting ``diff-quality`` re-run ``pycodestyle``, ``pyflakes``, ``flake8``, ``pylint``, ``checkstyle``, or ``checkstylexml``. .. code:: bash # For pylint < 1.0 pylint -f parseable > pylint_report.txt # For pylint >= 1.0 pylint --msg-template="{path}:{line}: [{msg_id}({symbol}), {obj}] {msg}" > pylint_report.txt

Release History

VersionChangesUrgencyDate
v10.5.1## What's Changed * perf: index the Clover file lookup instead of rescanning per source path by @Eljees in https://github.com/Bachmann1234/diff_cover/pull/618 * fix: report a missing git instead of an unhandled FileNotFoundError by @Eljees in https://github.com/Bachmann1234/diff_cover/pull/620 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v10.5.0...v10.5.1High8/16/2026
v10.4.2## What's Changed * fix(config): honor format option from config file by @Sanjays2402 in https://github.com/Bachmann1234/diff_cover/pull/612 * fix(plugins): accept reports/options in diff_cover_report_quality hookspec by @Sanjays2402 in https://github.com/Bachmann1234/diff_cover/pull/613 ## New Contributors * @Sanjays2402 made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/612 ## Dependencies * Bump github/codeql-action from 4 to 4.37.3 by @dependabot[boHigh8/7/2026
v10.4.1## What's Changed * Handle low confidence chardet detection for undeclared encodings by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/611 ## Dependencies * Bump setuptools from 80.9.0 to 83.0.0 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/609 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v10.4.0...v10.4.1Medium7/24/2026
v10.4.0## What's Changed * Add --branch-coverage flag to respect partial branch coverage by @mofr in https://github.com/Bachmann1234/diff_cover/pull/608 ## Dependency bumps * Bump ruff from 0.15.12 to 0.15.15 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/602 * Bump black from 26.3.1 to 26.5.1 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/603 * Bump actions/cache from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/60High7/22/2026
v10.3.0## What's Changed * Add --show-covered flag to highlight covered diff lines in HTML report by @duxiaocheng in https://github.com/Bachmann1234/diff_cover/pull/600 * Document previously undocumented CLI flags in README by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/601 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v10.2.1...v10.3.0High5/30/2026
v10.2.1## What's Changed * Fix --help hiding most CLI options in diff-cover/diff-quality by @duxiaocheng in https://github.com/Bachmann1234/diff_cover/pull/599 ## New Contributors * @duxiaocheng made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/599 ## Dependency bumps * Bump tomli from 2.3.0 to 2.4.0 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/575 * Bump ruff from 0.14.10 to 0.14.14 by @dependabot[bot] in https://github.com/Bachmann123High5/23/2026
10.2.0Imported from PyPI (10.2.0)Low4/21/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.2.0## What's Changed * Convert violation to relative path for subfolder support by @eacherkan-via in https://github.com/Bachmann1234/diff_cover/pull/574 ## Dependency Bumps * Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/566 * Bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/567 * Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1Low1/9/2026
v10.1.0## What's Changed * Update required Python to >=3.10 by @nicoddemus in https://github.com/Bachmann1234/diff_cover/pull/563 * Fix installation command formatting in README by @jlosito in https://github.com/Bachmann1234/diff_cover/pull/564 * Add support for floating-point total percentage in reports by @tilaven in https://github.com/Bachmann1234/diff_cover/pull/565 ## New Contributors * @jlosito made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/564 * @tilavenLow12/31/2025
v10.0.0## What's Changed * Adds 3.14, removes 3.9 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/554 * Normalize include and exclude so they can be a list or a string by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/562 thanks for the report @daggaz ### Dependencies * Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in https://github.com/Bachmann1234/diff_cover/pull/552 * Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in httpsLow12/10/2025
v9.7.2## What's Changed * Bugfix: Correct file name matching on Windows by @amos-chen in https://github.com/Bachmann1234/diff_cover/pull/553 ## New Contributors * @amos-chen made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/553 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v9.7.1...v9.7.2Low11/11/2025
v9.7.1## What's Changed * bugfix "ruff.check: force pylint output format for ruff >= 0.12.9 compatibility" by @YeeaaahMan in https://github.com/Bachmann1234/diff_cover/pull/542 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v9.7.0...v9.7.1Low9/26/2025
v9.7.0## What's Changed * Runs on windows by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/481 * Handle case of deleted files by @CliveCorbishleyTAL in https://github.com/Bachmann1234/diff_cover/pull/533 * add mypy_driver for diff-quality tool by @YeeaaahMan in https://github.com/Bachmann1234/diff_cover/pull/540 * ruff.check: force pylint output format for ruff >= 0.12.9 compatibility by @YeeaaahMan in https://github.com/Bachmann1234/diff_cover/pull/541 ### Internal changeLow9/24/2025
v9.6.0## What's Changed * Fixes bug when using diff-cover --format markdown:- by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/516 * GitHub annotations by @timkrins in https://github.com/Bachmann1234/diff_cover/pull/432 ## Readme tweak * Updates the name of the ruff check command by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/515 ## New Contributors * @timkrins made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/432 **FullLow7/17/2025
v9.5.0## What's Changed * Add clang-format quality check by @mg-cloud in https://github.com/Bachmann1234/diff_cover/pull/511 ## Dependency bumps * Bump pytest-datadir from 1.7.1 to 1.7.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/510 * Bump pytest-xdist from 3.7.0 to 3.8.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/509 * Bump pyflakes from 3.3.2 to 3.4.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/508 * Bump pycodestyle from 2Low7/10/2025
v9.4.0## What's Changed * Adds ability to use stdout and stderr in --format by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/500 * Enhance Lcov format parse functionaility by @129tyc in https://github.com/Bachmann1234/diff_cover/pull/493 * Update requirements by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/491 * Update coverage ignore list by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/494 * Update test code by @kingbuzzman in https://gLow6/22/2025
v9.3.2## What's Changed * Fix --format with paths containing colons by @tkukushkin in https://github.com/Bachmann1234/diff_cover/pull/484 ### Dependency Changes * Bump pytest-xdist from 3.6.1 to 3.7.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/486 * Bump ruff from 0.11.10 to 0.11.12 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/487 * Bump pytest-mock from 3.14.0 to 3.14.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/488 * Bump pluLow6/1/2025
v9.3.1## What's Changed * Any python 3.9 should be allowed by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/483 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v9.3.0...v9.3.1Low5/25/2025
v9.3.0## What's Changed ### Special thanks Huge amount of improvements to the codebase thanks to @kingbuzzman ! ### New Tools! * Adds ruff check by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/463 * Resolve deprecation warnings of regex library by @emmanuel-ferdman in https://github.com/Bachmann1234/diff_cover/pull/452 * Speeds up tests by @kingbuzzman in https://github.com/Bachmann1234/diff_cover/pull/454 * Improves coverage and poetry by @kingbuzzman in https://githubLow5/24/2025
v9.2.4## What's Changed * Fix escaped untracked files by @buermarc in https://github.com/Bachmann1234/diff_cover/pull/440 ## New Contributors * @buermarc made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/440 ### Dependency Bumps * Bump isort from 5.13.2 to 6.0.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/443 * Bump setuptools from 75.8.0 to 75.8.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/442 **Full Changelog**:Low3/9/2025
v9.2.2## What's Changed * Fix files only covered by one LCOV report showing 100% coverage by @matsjoyce-refeyn in https://github.com/Bachmann1234/diff_cover/pull/433 ### Dependency Bumps * Bump pylint from 3.3.2 to 3.3.3 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/429 * Bump jinja2 from 3.1.4 to 3.1.5 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/431 * Bump pytest-cov from 5.0.0 to 6.0.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pulLow1/30/2025
v9.2.1## What's Changed * Fix inline comments by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/423 * Add support for py313 by @ssbarnea in https://github.com/Bachmann1234/diff_cover/pull/427 * Drop 3.8 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/428 * Bump tomli from 2.0.1 to 2.0.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/422 * Bump doc8 from 1.1.1 to 1.1.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/421 Low12/13/2024
v9.2.0## What's Changed * Add VER to the list of known LCov directives by @esuldin in https://github.com/Bachmann1234/diff_cover/pull/414 * Add expand_coverage_report option to for #270 by @MathieuLamiot in https://github.com/Bachmann1234/diff_cover/pull/416 ### Dependency bumps * Bump pylint from 3.2.5 to 3.2.6 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/415 * Bump pylint from 3.2.6 to 3.2.7 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/418 * Bump bLow9/8/2024
v9.1.1## What's Changed * #412 Add path validation in untracked files processing by @MihailPereverza in https://github.com/Bachmann1234/diff_cover/pull/413 ## New Contributors * @MihailPereverza made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/413 ## Dependency Updates * Bump pylint from 3.2.2 to 3.2.5 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/411 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v9.1.0...v9.1.1Low7/18/2024
v9.1.0## What's Changed * Added option to specify diff file location by @Jsostmann in https://github.com/Bachmann1234/diff_cover/pull/410 ## New Contributors * @Jsostmann made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/410 ## Dependency Updates * Bump jinja2 from 3.1.3 to 3.1.4 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/404 * Bump pluggy from 1.4.0 to 1.5.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/402 * Bump blLow7/18/2024
v9.0.0## What's Changed * Add line numbers to Markdown code snippets by @walles in https://github.com/Bachmann1234/diff_cover/pull/399 ### Dependency bumps * Bump pluggy from 1.3.0 to 1.4.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/390 * Bump actions/cache from 3 to 4 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/389 * Bump black from 23.12.1 to 24.1.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/391 * Bump pylint from 3.0.3 to 3Low4/14/2024
v8.0.3## What's Changed * Standardized the path to a Linux format to address the issue reported… by @mrcool4 in https://github.com/Bachmann1234/diff_cover/pull/388 ## New Contributors * @mrcool4 made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/388 ### Dependency updates * Bump isort from 5.12.0 to 5.13.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/382 * Bump black from 23.11.0 to 23.12.1 by @dependabot in https://github.com/Bachmann1234/dLow1/20/2024
v8.0.2## What's Changed * #378 Get a nice error message when running diff-quality with a tool which is not installed by @dperl-dls in https://github.com/Bachmann1234/diff_cover/pull/380 ### Dependency Bumps * Bump black from 23.10.1 to 23.11.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/377 * Bump pygments from 2.16.1 to 2.17.2 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/376 * Bump pylint-pytest from 1.1.3 to 1.1.7 by @dependabot in https://github.comLow12/16/2023
v8.0.1## What's Changed * Normalise LCOV source paths by @matsjoyce-refeyn in https://github.com/Bachmann1234/diff_cover/pull/373 ### Dependency updates * Bump black from 23.9.1 to 23.10.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/372 * Bump pylint-pytest from 1.1.2 to 1.1.3 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/368 * Bump pytest-datadir from 1.4.1 to 1.5.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/370 * Bump pytest-moLow11/13/2023
v8.0.0## What's Changed (major bump due to dropping python 3.7) * Verify Python 3.12 support by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/366 * Drop python 3.7 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/359 * Bump pylint from 2.17.4 to 2.17.5 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/356 * Bump doc8 from 1.0.0 to 1.1.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/360 * Bump pluggy from 1.2.0 to 1.3.0Low10/14/2023
v7.7.0## What's Changed * feat: support include flag in diff-cover tool by @cameronbrill in https://github.com/Bachmann1234/diff_cover/pull/355 ## New Contributors * @cameronbrill made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/355 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.6.1...v7.7.0Low7/15/2023
v7.6.1## What's Changed * Set license based on poetry documentation by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/354 * Update dependabot.yml by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/351 Dependency bumps: * Bump setuptools from 67.8.0 to 68.0.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/349 * Bump pytest-mock from 3.10.0 to 3.11.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/350 * Bump pluggy from 1.0.Low7/13/2023
v7.6.0## What's Changed * Add shellcheck violation tool in diff-quality by @mg-castel in https://github.com/Bachmann1234/diff_cover/pull/347 ## New Contributors * @mg-castel made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/347 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.5.0...v7.6.0 Dependency bumps since last release * Bump setuptools from 67.3.2 to 67.4.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/327 Low6/11/2023
v7.5.0## What's Changed * Add covered lines in json report. by @ZSmallX in https://github.com/Bachmann1234/diff_cover/pull/325 Dependency updates * Bump isort from 5.11.4 to 5.11.5 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/315 * Bump setuptools from 67.0.0 to 67.1.0 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/318 * Bump pylint from 2.15.10 to 2.16.1 by @dependabot in https://github.com/Bachmann1234/diff_cover/pull/319 * Bump black from 22.12.0 to 2Low2/22/2023
v7.4.0## What's Changed * new version of black changed some formatting by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/312 * Speed optimization for cobertura reports by @madest92 in https://github.com/Bachmann1234/diff_cover/pull/314 ## New Contributors * @madest92 made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/314 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.3.2...v7.4.0Low1/25/2023
v7.3.2## What's Changed * Update deps, add python 3.11 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/311 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.3.1...v7.3.2Low1/19/2023
v7.3.1## What's Changed * Need to move back to the original directory before cleaning up the tempdir by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/309 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.3.0...v7.3.1Low1/19/2023
v7.3.0## What's Changed * diff-quality plugins should support "--options" and report files by @barrywhart in https://github.com/Bachmann1234/diff_cover/pull/305 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.2.0...v7.3.0Low12/10/2022
v7.2.0## What's Changed * Add support for report generator plugins that process modified files as a batch by @barrywhart in https://github.com/Bachmann1234/diff_cover/pull/300 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.1.2...v7.2.0Low12/1/2022
v7.1.2## What's Changed * remove unnecessary prints by @peterg79 in https://github.com/Bachmann1234/diff_cover/pull/302 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.1.1...v7.1.2Low11/30/2022
v7.1.1## What's Changed * Upgrade github actions and see if stuff still works by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/298 * fix: diff-cover breaks when there's branch coverage information in lc… by @peterg79 in https://github.com/Bachmann1234/diff_cover/pull/301 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.1.0...v7.1.1Low11/29/2022
v7.1.0## What's Changed * native support lcov.info files by @peterg79 in https://github.com/Bachmann1234/diff_cover/pull/297 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.0.2...v7.1.0Low11/26/2022
v7.0.2## What's Changed * Support multiple arguments in `--options` string by @ptzz in https://github.com/Bachmann1234/diff_cover/pull/294 ## New Contributors * @ptzz made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/294 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.0.1...v7.0.2Low11/13/2022
v7.0.1## What's Changed * Update dependencies and pylint regex to support 2.5 in a backwards co… by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/291 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v7.0.0...v7.0.1Low9/20/2022
v7.0.0## What's Changed * Upgrade codql to v2 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/286 * jinja set autoescape to select_autoescape by @rkochharexp in https://github.com/Bachmann1234/diff_cover/pull/284 * dont hardcode the diff notation in this report (also drops python 3.6) by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/289 ## New Contributors * @rkochharexp made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/284 Low9/19/2022
v6.5.1## What's Changed * Update lockfile by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/282 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.5.0...v6.5.1Low6/22/2022
v6.5.0## What's Changed * Fixes #276: correct regular expression for multi_line_violation_regex by @kozlovsky in https://github.com/Bachmann1234/diff_cover/pull/277 ## New Contributors * @kozlovsky made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/277 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.4.5...v6.5.0Low4/16/2022
v6.4.5## What's Changed * Fix tests for pytest 7.0 by @kalekundert in https://github.com/Bachmann1234/diff_cover/pull/264 * Remake PR #274 as a test by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/275 ## New Contributors * @kalekundert made their first contribution in https://github.com/Bachmann1234/diff_cover/pull/264 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.4.4...v6.4.5Low3/24/2022
v6.4.4## What's Changed * Fix overseen CLI default by @kasium in https://github.com/Bachmann1234/diff_cover/pull/262 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.4.3...v6.4.4Low12/6/2021
v6.4.3## What's Changed * Utilize jinjas built in plugin to pluralize by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/260 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.4.2...v6.4.3Low12/3/2021
v6.4.2## What's Changed * Support python 3.10 by @Bachmann1234 in https://github.com/Bachmann1234/diff_cover/pull/257 **Full Changelog**: https://github.com/Bachmann1234/diff_cover/compare/v6.4.1...v6.4.2Low10/6/2021
v6.4.1* Re add tests to the *source* distribution. Should not pollute namespace this time. Thanks @dvzrv ! * Only require setuptools if you are using python < 3.8Low9/26/2021
v6.4.0* Allows passing a root path in for ESLint with --report_root_path * Bump pluggy to 1.0 Thanks @kasium for both of these!Low9/17/2021
v6.3.4* Ensures tests are in the dist filesLow8/24/2021
v6.3.3* Fix issue where files that start with a space will trigger a crash. * Fix issue where source dist had a setup.py that would not build properlyLow8/20/2021
v6.3.2* Fix issue where untracked files that start with space would trigger a crash. (Thanks @kasium) Issue #242 Low8/19/2021
v6.3.1* Fix issue with pylint and windows based file paths (thanks @kasium) Issue #237Low8/15/2021

Dependencies & License Audit

Loading dependencies...

Similar Packages

banksA prompt programming languagemain@2026-09-10
pytorch-lightningPyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate.2.6.6
ultralyticsUltralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.v8.4.143
biopythonFreely available tools for computational molecular biology.master@2026-09-04
tokenizersNo descriptionv0.23.2

More in RAG & Memory

pytorch-lightningPyTorch Lightning is the lightweight PyTorch wrapper for ML researchers. Scale your models. Write less boilerplate.
banksA prompt programming language
opikDebug, evaluate, and monitor your LLM applications, RAG systems, and agentic workflows with comprehensive tracing, automated evaluations, and production-ready dashboards.
pdf_oxideThe fastest PDF library for Python and Rust. Text extraction, image extraction, markdown conversion, PDF creation & editing. 0.8ms mean, 5× faster than industry leaders, 100% pass rate on 3,830 PDFs.