Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nedbat/coveragepy
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6.5.0
Choose a base ref
...
head repository: nedbat/coveragepy
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 7.0.0
Choose a head ref

Commits on Sep 29, 2022

  1. Copy the full SHA
    958301f View commit details
  2. build: bump version

    nedbat committed Sep 29, 2022
    Copy the full SHA
    0a88516 View commit details

Commits on Sep 30, 2022

  1. Copy the full SHA
    8bdaafe View commit details

Commits on Oct 1, 2022

  1. Copy the full SHA
    ad1c59c View commit details
  2. build: remove redundant wheel dep from pyproject.toml

    Remove the redundant `wheel` dependency, as it is added by the backend
    automatically.  Listing it explicitly in the documentation was
    a historical mistake and has been fixed since, see:
    pypa/setuptools@f7d30a9
    mgorny authored and nedbat committed Oct 1, 2022
    Copy the full SHA
    08712e9 View commit details

Commits on Oct 2, 2022

  1. Copy the full SHA
    d9e2e3c View commit details

Commits on Oct 5, 2022

  1. build: fix the branch protection gate check @ GHA

    This adds a GHA job that reliably determines if all the required
    dependencies have succeeded or not.
    
    It is now in use in aiohttp (and other aio-libs projects), CherryPy,
    some of the Ansible repositories, all of the jaraco's projects (like
    `setuptools`, `importlib_metadata`), some of hynek's projects, some
    PyCQA, PyCA, PyPA and pytest projects, a few AWS Labs projects (to my
    surprise).
    
    The story behind this is explained in more detail at
    https://github.com/marketplace/actions/alls-green#why.
    webknjaz authored and nedbat committed Oct 5, 2022
    Copy the full SHA
    fdc40d0 View commit details
  2. Copy the full SHA
    66be37c View commit details

Commits on Oct 10, 2022

  1. Copy the full SHA
    236c1e0 View commit details
  2. build(deps): bump schneegans/dynamic-badges-action from 1.4.0 to 1.5.0 (

    #1465)
    
    * build(deps): bump schneegans/dynamic-badges-action from 1.4.0 to 1.5.0
    
    Bumps [schneegans/dynamic-badges-action](https://github.com/schneegans/dynamic-badges-action) from 1.4.0 to 1.5.0.
    - [Release notes](https://github.com/schneegans/dynamic-badges-action/releases)
    - [Changelog](https://github.com/Schneegans/dynamic-badges-action/blob/master/changelog.md)
    - [Commits](Schneegans/dynamic-badges-action@54d929a...9e75560)
    
    ---
    updated-dependencies:
    - dependency-name: schneegans/dynamic-badges-action
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    
    * Update .github/workflows/coverage.yml
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
    dependabot[bot] and nedbat authored Oct 10, 2022
    Copy the full SHA
    64130ee View commit details

Commits on Oct 15, 2022

  1. Copy the full SHA
    c7f7aaf View commit details
  2. test: uncomment an assert

    nedbat committed Oct 15, 2022
    Copy the full SHA
    8ba6878 View commit details
  3. Copy the full SHA
    60fa130 View commit details
  4. Copy the full SHA
    7836b4f View commit details
  5. refactor: since we are showing regexes, make them a bit simpler

    The old code would always wrap the regex in a needless `(?s:...)`
    parenthesis.  Path aliases are always single regexes, so they don't need
    that extra wrapping.  This makes logged path maps easier to understand.
    nedbat committed Oct 15, 2022
    Copy the full SHA
    c28544c View commit details
  6. Copy the full SHA
    cb67b1f View commit details
  7. Copy the full SHA
    7df8609 View commit details
  8. Copy the full SHA
    f2d9c16 View commit details
  9. Copy the full SHA
    ac65067 View commit details

Commits on Oct 17, 2022

  1. build: update three actions to latest version (#1473)

    Also, remove the symbolic references in the comments, since dependabot
    doesn't update them.
    nedbat authored Oct 17, 2022
    Copy the full SHA
    a3c8683 View commit details

Commits on Oct 20, 2022

  1. Copy the full SHA
    4668a92 View commit details

Commits on Oct 21, 2022

  1. docs: add another FAQ

    nedbat committed Oct 21, 2022
    Copy the full SHA
    dc996d3 View commit details
  2. Copy the full SHA
    4bdae5e View commit details

Commits on Oct 23, 2022

  1. chore: make upgrade

    nedbat committed Oct 23, 2022
    Copy the full SHA
    57d8649 View commit details

Commits on Oct 26, 2022

  1. chore: make upgrade

    nedbat committed Oct 26, 2022
    Copy the full SHA
    dcf532b View commit details
  2. Copy the full SHA
    5fc2085 View commit details

Commits on Oct 27, 2022

  1. Copy the full SHA
    263582f View commit details
  2. Copy the full SHA
    06ef6f0 View commit details
  3. Copy the full SHA
    b6e16f8 View commit details
  4. Copy the full SHA
    b53db01 View commit details

Commits on Oct 28, 2022

  1. Copy the full SHA
    89aabf3 View commit details
  2. Copy the full SHA
    44fbd3b View commit details
  3. Copy the full SHA
    b3a1d97 View commit details

Commits on Oct 30, 2022

  1. fix: use glob matching instead of fnmatch. #1407

    I didn't understand that fnmatch considers the entire string to be a
    filename, even if it has slashes in it. This led to incorrect matching.
    Now we use our own implementation of glob matching to get the correct
    behavior.
    nedbat committed Oct 30, 2022
    1
    Copy the full SHA
    ec6205a View commit details
  2. Copy the full SHA
    45cf793 View commit details

Commits on Oct 31, 2022

  1. doc: the toml fix also fixed #1345

    nedbat committed Oct 31, 2022
    Copy the full SHA
    1291388 View commit details
  2. docs: prep for 6.6.0b1

    nedbat committed Oct 31, 2022
    Copy the full SHA
    64559a0 View commit details
  3. build: bump version

    nedbat committed Oct 31, 2022
    Copy the full SHA
    5e8d0c9 View commit details

Commits on Nov 2, 2022

  1. Copy the full SHA
    89528f3 View commit details
  2. Copy the full SHA
    ea24212 View commit details

Commits on Nov 3, 2022

  1. Copy the full SHA
    b34bd14 View commit details

Commits on Nov 4, 2022

  1. Copy the full SHA
    f0f4761 View commit details

Commits on Nov 5, 2022

  1. build: remove pip pin

    jazzband/pip-tools#1617 was fixed in pip-tools==6.6.1
    nedbat committed Nov 5, 2022
    Copy the full SHA
    3514582 View commit details
  2. chore: make upgrade

    nedbat committed Nov 5, 2022
    Copy the full SHA
    413219b View commit details
  3. Copy the full SHA
    2f3bae3 View commit details
  4. chore: make upgrade

    nedbat committed Nov 5, 2022
    Copy the full SHA
    27fd4a9 View commit details
  5. feat: report terminal output in Markdown Table format #1418 (#1479)

    * refactoring normal reporting text output
    
    * implemented markdown feature from #1418
    
    * minor changes
    
    * fixed text output
    
    * fixed precision for text and markdown report format
    
    * minor changes
    
    * finished testing for markdown format feature
    
    * fixed testing outside test_summary.py
    
    * removed fixed-length widespace padding for tests
    
    * removed whitespaces
    
    * refactoring, fixing  docs, rewriting cmd args
    
    * fixing code quality
    
    * implementing requested changes
    
    * doc fix
    
    * test: add another test of correct report formatting
    
    * fixed precision printing test
    
    * style: adjust the formatting
    
    Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
    stepeos and nedbat authored Nov 5, 2022
    Copy the full SHA
    cf1efa8 View commit details
  6. Copy the full SHA
    5a3e1e8 View commit details
  7. Copy the full SHA
    01d8677 View commit details
  8. Copy the full SHA
    3b3cc69 View commit details
Showing with 3,016 additions and 1,944 deletions.
  1. +14 −20 .github/workflows/coverage.yml
  2. +1 −1 .github/workflows/dependency-review.yml
  3. +5 −4 .github/workflows/kit.yml
  4. +8 −4 .github/workflows/python-nightly.yml
  5. +15 −19 .github/workflows/testsuite.yml
  6. +179 −17 CHANGES.rst
  7. +4 −0 CONTRIBUTORS.txt
  8. +9 −1 Makefile
  9. +15 −5 README.rst
  10. +22 −14 ci/github_releases.py
  11. +9 −2 coverage/cmdline.py
  12. +3 −3 coverage/collector.py
  13. +16 −14 coverage/config.py
  14. +178 −68 coverage/control.py
  15. +45 −26 coverage/data.py
  16. +5 −5 coverage/debug.py
  17. +4 −1 coverage/env.py
  18. +1 −3 coverage/execfile.py
  19. +125 −30 coverage/files.py
  20. +10 −6 coverage/inorout.py
  21. +13 −6 coverage/misc.py
  22. +9 −11 coverage/parser.py
  23. +1 −31 coverage/phystokens.py
  24. +21 −15 coverage/python.py
  25. +3 −3 coverage/report.py
  26. +3 −3 coverage/results.py
  27. +147 −99 coverage/sqldata.py
  28. +169 −65 coverage/summary.py
  29. +1 −1 coverage/templite.py
  30. +51 −29 coverage/tomlconfig.py
  31. +12 −8 coverage/version.py
  32. +2 −1 coverage/xmlreport.py
  33. +13 −13 doc/changes.rst
  34. +46 −23 doc/cmd.rst
  35. +10 −8 doc/conf.py
  36. +34 −18 doc/config.rst
  37. +2 −2 doc/dbschema.rst
  38. +0 −3 doc/dict.txt
  39. +15 −2 doc/faq.rst
  40. +3 −4 doc/index.rst
  41. +4 −1 doc/python-coverage.1.txt
  42. +39 −45 doc/requirements.pip
  43. +4 −4 doc/sample_html/d_7b071bdc2a35fa80___init___py.html
  44. +4 −4 doc/sample_html/d_7b071bdc2a35fa80___main___py.html
  45. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_backward_py.html
  46. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_cogapp_py.html
  47. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_makefiles_py.html
  48. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_test_cogapp_py.html
  49. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_test_makefiles_py.html
  50. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_test_whiteutils_py.html
  51. +4 −4 doc/sample_html/d_7b071bdc2a35fa80_whiteutils_py.html
  52. +4 −4 doc/sample_html/index.html
  53. +1 −1 doc/sample_html/status.json
  54. +25 −6 doc/source.rst
  55. +10 −15 howto.txt
  56. +105 −52 igor.py
  57. +4 −5 metacov.ini
  58. +1 −1 pyproject.toml
  59. +1 −1 requirements/dev.in
  60. +216 −227 requirements/dev.pip
  61. +42 −48 requirements/kit.pip
  62. +166 −153 requirements/light-threads.pip
  63. +229 −243 requirements/lint.pip
  64. +0 −8 requirements/pins.pip
  65. +30 −36 requirements/pip-tools.pip
  66. +24 −26 requirements/pip.pip
  67. +0 −6 requirements/pytest.in
  68. +33 −47 requirements/pytest.pip
  69. +47 −43 requirements/tox.pip
  70. +13 −2 setup.py
  71. +1 −1 tests/balance_xdist_plugin.py
  72. +5 −1 tests/coveragetest.py
  73. +2 −2 tests/helpers.py
  74. +1 −1 tests/mixins.py
  75. +197 −19 tests/test_api.py
  76. +13 −0 tests/test_arcs.py
  77. +7 −2 tests/test_cmdline.py
  78. +5 −1 tests/test_concurrency.py
  79. +39 −21 tests/test_config.py
  80. +24 −2 tests/test_data.py
  81. +1 −1 tests/test_execfile.py
  82. +300 −115 tests/test_files.py
  83. +6 −6 tests/test_html.py
  84. +3 −2 tests/test_parser.py
  85. +2 −115 tests/test_phystokens.py
  86. +0 −8 tests/test_plugins.py
  87. +4 −1 tests/test_process.py
  88. +135 −42 tests/test_summary.py
  89. +11 −6 tests/test_version.py
  90. +7 −4 tox.ini
34 changes: 14 additions & 20 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@ defaults:

env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
FORCE_COLOR: 1 # Get colored pytest output

permissions:
contents: read
@@ -46,7 +47,7 @@ jobs:
- "3.8"
- "3.9"
- "3.10"
- "3.11.0-rc.2"
- "3.11"
- "pypy-3.7"
exclude:
# Windows PyPy doesn't seem to work?
@@ -94,6 +95,10 @@ jobs:
name: "Combine coverage data"
needs: coverage
runs-on: ubuntu-latest
outputs:
total: ${{ steps.total.outputs.total }}
env:
COVERAGE_RCFILE: "metacov.ini"

steps:
- name: "Check out the repo"
@@ -102,7 +107,7 @@ jobs:
- name: "Set up Python"
uses: "actions/setup-python@v4"
with:
python-version: "3.8"
python-version: "3.7" # Minimum of PYVERSIONS
cache: pip
cache-dependency-path: 'requirements/*.pip'

@@ -122,25 +127,21 @@ jobs:
- name: "Combine and report"
id: combine
env:
COVERAGE_RCFILE: "metacov.ini"
COVERAGE_METAFILE: ".metacov"
COVERAGE_CONTEXT: "yes"
run: |
set -xe
python -m igor combine_html
python -m coverage json
python igor.py combine_html
- name: "Upload HTML report"
uses: actions/upload-artifact@v3
with:
name: html_report
path: htmlcov

- name: "Upload JSON report"
uses: actions/upload-artifact@v3
with:
name: json_report
path: coverage.json
- name: "Get total"
id: total
run: |
echo "total=$(python -m coverage report --format=total)" >> $GITHUB_OUTPUT
publish:
name: "Publish coverage report"
@@ -159,21 +160,15 @@ jobs:
git config user.email ned@nedbatchelder.com
git checkout main
- name: "Download coverage JSON report"
uses: actions/download-artifact@v3
with:
name: json_report

- name: "Compute info for later steps"
id: info
run: |
set -xe
export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])")
export SHA10=$(echo ${{ github.sha }} | cut -c 1-10)
export SLUG=$(date +'%Y%m%d')_$SHA10
export REPORT_DIR=reports/$SLUG/htmlcov
export REF="${{ github.ref }}"
echo "total=$TOTAL" >> $GITHUB_ENV
echo "total=${{ needs.combine.outputs.total }}" >> $GITHUB_ENV
echo "sha10=$SHA10" >> $GITHUB_ENV
echo "slug=$SLUG" >> $GITHUB_ENV
echo "report_dir=$REPORT_DIR" >> $GITHUB_ENV
@@ -210,8 +205,7 @@ jobs:
- name: "Create badge"
# https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
# uses: schneegans/dynamic-badges-action@v1.4.0
uses: schneegans/dynamic-badges-action@54d929a33e7521ab6bf19d323d28fb7b876c53f7
uses: schneegans/dynamic-badges-action@5d424ad4060f866e4d1dab8f8da0456e6b1c4f56
with:
auth: ${{ secrets.METACOV_GIST_SECRET }}
gistID: 8c6980f77988a327348f9b02bbaf67f5
2 changes: 1 addition & 1 deletion .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -17,4 +17,4 @@ jobs:
- name: 'Checkout Repository'
uses: actions/checkout@v3
- name: 'Dependency Review'
uses: actions/dependency-review-action@v2
uses: actions/dependency-review-action@v3
9 changes: 5 additions & 4 deletions .github/workflows/kit.yml
Original file line number Diff line number Diff line change
@@ -77,11 +77,12 @@ jobs:
# }
# # PYVERSIONS. Available versions:
# # https://github.com/actions/python-versions/blob/main/versions-manifest.json
# # Include prereleases if they are at rc stage.
# pys = ["cp37", "cp38", "cp39", "cp310", "cp311"]
#
# # Some OS/arch combinations need overrides for the Python versions:
# os_arch_pys = {
# ("macos", "arm64"): ["cp38", "cp39", "cp310"],
# ("macos", "arm64"): ["cp38", "cp39", "cp310", "cp311"],
# }
#
# #----- ^^^ ---------------------- ^^^ -----
@@ -115,6 +116,7 @@ jobs:
- {"os": "macos", "py": "cp38", "arch": "arm64"}
- {"os": "macos", "py": "cp39", "arch": "arm64"}
- {"os": "macos", "py": "cp310", "arch": "arm64"}
- {"os": "macos", "py": "cp311", "arch": "arm64"}
- {"os": "macos", "py": "cp37", "arch": "x86_64"}
- {"os": "macos", "py": "cp38", "arch": "x86_64"}
- {"os": "macos", "py": "cp39", "arch": "x86_64"}
@@ -130,14 +132,13 @@ jobs:
- {"os": "windows", "py": "cp39", "arch": "AMD64"}
- {"os": "windows", "py": "cp310", "arch": "AMD64"}
- {"os": "windows", "py": "cp311", "arch": "AMD64"}
# [[[end]]] (checksum: 428e5138336453464dde968cc3149f4f)
# [[[end]]] (checksum: ded8a9f214bf59776562d91ae6828863)
fail-fast: false

steps:
- name: "Setup QEMU"
if: matrix.os == 'ubuntu'
# uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@8b122486cedac8393e77aa9734c3528886e4a1a8
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18
with:
platforms: arm64

12 changes: 8 additions & 4 deletions .github/workflows/python-nightly.yml
Original file line number Diff line number Diff line change
@@ -32,7 +32,12 @@ concurrency:
jobs:
tests:
name: "Python ${{ matrix.python-version }}"
runs-on: ubuntu-latest
# Choose a recent Ubuntu that deadsnakes still builds all the versions for.
# For example, deadsnakes doesn't provide 3.10 nightly for 22.04 (jammy)
# because jammy ships 3.10, and deadsnakes doesn't want to clobber it.
# https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
# https://github.com/deadsnakes/issues/issues/234
runs-on: ubuntu-20.04

strategy:
matrix:
@@ -41,9 +46,9 @@ jobs:
# tox.ini so that tox will run properly. PYVERSIONS
# Available versions:
# https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly/+packages
- "3.9-dev"
- "3.10-dev"
- "3.11-dev"
- "3.12-dev"
# https://github.com/actions/setup-python#available-versions-of-pypy
- "pypy-3.7-nightly"
- "pypy-3.8-nightly"
@@ -55,8 +60,7 @@ jobs:
uses: "actions/checkout@v3"

- name: "Install ${{ matrix.python-version }} with deadsnakes"
# uses: deadsnakes/action@v2.1.1
uses: deadsnakes/action@7ab8819e223c70d2bdedd692dfcea75824e0a617
uses: deadsnakes/action@e3117c2981fd8afe4af79f3e1be80066c82b70f5
if: "!startsWith(matrix.python-version, 'pypy-')"
with:
python-version: "${{ matrix.python-version }}"
34 changes: 15 additions & 19 deletions .github/workflows/testsuite.yml
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@ defaults:
env:
PIP_DISABLE_PIP_VERSION_CHECK: 1
COVERAGE_IGOR_VERBOSE: 1
FORCE_COLOR: 1 # Get colored pytest output

permissions:
contents: read
@@ -47,7 +48,7 @@ jobs:
- "3.8"
- "3.9"
- "3.10"
- "3.11.0-rc.2"
- "3.11"
- "pypy-3.7"
- "pypy-3.9"
fail-fast: false
@@ -73,31 +74,26 @@ jobs:
# python -c "import urllib.request as r; exec(r.urlopen('https://bit.ly/pydoctor').read())"
- name: "Run tox for ${{ matrix.python-version }}"
continue-on-error: true
id: tox1
run: |
python -m tox -- -rfsEX
- name: "Retry tox for ${{ matrix.python-version }}"
id: tox2
if: steps.tox1.outcome == 'failure'
if: failure()
run: |
python -m tox -- -rfsEX
- name: "Set status"
if: always()
run: |
if ${{ steps.tox1.outcome != 'success' && steps.tox2.outcome != 'success' }}; then
exit 1
fi
# `exit 1` makes sure that the job remains red with flaky runs
python -m tox -- -rfsEX --lf -vvvvv && exit 1
# A final step to give a simple name for required status checks.
# This job aggregates test results. It's the required check for branch protection.
# https://github.com/marketplace/actions/alls-green#why
# https://github.com/orgs/community/discussions/33579
success:
needs: tests
runs-on: ubuntu-latest
name: Tests successful
if: always()
needs:
- tests
runs-on: ubuntu-latest
steps:
- name: "Success"
run: |
echo Tests successful
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
with:
jobs: ${{ toJSON(needs) }}
Loading