coverage 7.13.4__tar.gz → 7.14.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/codeql-analysis.yml +6 -6
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/coverage.yml +44 -34
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/dependency-review.yml +5 -4
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/kit.yml +14 -17
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/publish.yml +24 -18
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/python-nightly.yml +3 -3
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/quality.yml +6 -6
- {coverage-7.13.4 → coverage-7.14.0}/.github/workflows/testsuite.yml +10 -5
- {coverage-7.13.4 → coverage-7.14.0}/.pre-commit-config.yaml +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/.readthedocs.yaml +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/CHANGES.rst +60 -1
- {coverage-7.13.4 → coverage-7.14.0}/CONTRIBUTORS.txt +3 -0
- {coverage-7.13.4 → coverage-7.14.0}/Makefile +4 -6
- {coverage-7.13.4/coverage.egg-info → coverage-7.14.0}/PKG-INFO +9 -9
- {coverage-7.13.4 → coverage-7.14.0}/README.rst +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/coverage/cmdline.py +13 -12
- {coverage-7.13.4 → coverage-7.14.0}/coverage/collector.py +20 -8
- {coverage-7.13.4 → coverage-7.14.0}/coverage/control.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/util.h +7 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/data.py +18 -6
- {coverage-7.13.4 → coverage-7.14.0}/coverage/execfile.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/coverage/misc.py +2 -2
- {coverage-7.13.4 → coverage-7.14.0}/coverage/phystokens.py +5 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/plugin.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/coverage/python.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/coverage/report.py +13 -2
- {coverage-7.13.4 → coverage-7.14.0}/coverage/sqldata.py +1 -2
- {coverage-7.13.4 → coverage-7.14.0}/coverage/types.py +0 -10
- {coverage-7.13.4 → coverage-7.14.0}/coverage/version.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0/coverage.egg-info}/PKG-INFO +9 -9
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_combine.rst +7 -4
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_debug.rst +3 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_reporting.rst +3 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/conf.py +4 -3
- {coverage-7.13.4 → coverage-7.14.0}/doc/contributing.rst +78 -74
- {coverage-7.13.4 → coverage-7.14.0}/doc/faq.rst +2 -1
- {coverage-7.13.4 → coverage-7.14.0}/doc/index.rst +4 -2
- {coverage-7.13.4 → coverage-7.14.0}/doc/requirements.in +1 -0
- coverage-7.14.0/doc/requirements.pip +740 -0
- {coverage-7.13.4 → coverage-7.14.0}/howto.txt +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/igor.py +0 -24
- {coverage-7.13.4 → coverage-7.14.0}/metacov.ini +3 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/dev.in +1 -0
- coverage-7.14.0/requirements/dev.pip +858 -0
- coverage-7.14.0/requirements/kit.pip +501 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/light-threads.in +0 -1
- coverage-7.14.0/requirements/light-threads.pip +231 -0
- coverage-7.14.0/requirements/mypy.pip +269 -0
- coverage-7.14.0/requirements/pip.pip +38 -0
- coverage-7.14.0/requirements/pytest.pip +111 -0
- coverage-7.14.0/requirements/tox.pip +125 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/coveragetest.py +12 -3
- {coverage-7.13.4 → coverage-7.14.0}/tests/helpers.py +3 -3
- {coverage-7.13.4 → coverage-7.14.0}/tests/strategies.py +1 -1
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_api.py +4 -2
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_arcs.py +2 -2
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_cmdline.py +71 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_concurrency.py +30 -70
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_config.py +2 -2
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_data.py +35 -1
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_phystokens.py +24 -9
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_process.py +23 -27
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_regions.py +44 -44
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_report.py +55 -4
- {coverage-7.13.4 → coverage-7.14.0}/tox.ini +2 -2
- coverage-7.13.4/doc/requirements.pip +0 -149
- coverage-7.13.4/requirements/dev.pip +0 -211
- coverage-7.13.4/requirements/kit.pip +0 -120
- coverage-7.13.4/requirements/light-threads.pip +0 -23
- coverage-7.13.4/requirements/mypy.pip +0 -54
- coverage-7.13.4/requirements/pip.pip +0 -16
- coverage-7.13.4/requirements/pytest.pip +0 -38
- coverage-7.13.4/requirements/tox.pip +0 -44
- {coverage-7.13.4 → coverage-7.14.0}/.editorconfig +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.git-blame-ignore-revs +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/FUNDING.yml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/ISSUE_TEMPLATE/support.md +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/SECURITY.md +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/dependabot.yml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.github/zizmor.yml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/.ignore +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/CITATION.cff +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/LICENSE.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/MANIFEST.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/NOTICE.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/__main__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/a1_coverage.pth +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/ci/README.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/ci/comment_on_fixes.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/ci/session.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/ci/trigger_action.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/ci/update_rtfd.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/__main__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/annotate.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/bytecode.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/config.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/context.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/core.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/datastack.c +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/datastack.h +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/filedisp.c +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/filedisp.h +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/module.c +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/stats.h +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/tracer.c +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/ctracer/tracer.h +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/debug.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/disposition.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/env.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/exceptions.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/files.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/html.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/coverage_html.js +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/favicon_32.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/keybd_closed.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/pyfile.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/style.css +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/htmlfiles/style.scss +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/inorout.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/jsonreport.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/lcovreport.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/multiproc.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/numbits.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/parser.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/patch.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/plugin_support.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/pth_file.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/py.typed +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/pytracer.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/regions.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/report_core.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/results.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/sqlitedb.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/sysmon.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/templite.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/tomlconfig.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/tracer.pyi +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage/xmlreport.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/SOURCES.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/dependency_links.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/entry_points.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/not-zip-safe +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/requires.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/coverage.egg-info/top_level.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/_static/coverage.css +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api_coverage.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api_coveragedata.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api_exceptions.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api_module.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/api_plugin.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/branch.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/changes.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/cog_helpers.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_annotate.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_erase.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_html.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_json.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_lcov.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_report.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_run.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/cmd_xml.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/commands/index.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/config.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/contexts.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/dbschema.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/dict.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/excluding.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/howitworks.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/install.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/media/sleepy-snake-600.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/media/sleepy-snake-circle-150.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/messages.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/migrating.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/other.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/plugins.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/python-coverage.1.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/sample_html/favicon_32_cb_c827f16f.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/sample_html/keybd_closed_cb_900cfef5.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/sleepy.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/source.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/subprocess.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/trouble.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/doc/whatsnew5x.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/README.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/branches.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/compare_times.sh +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/coverage-04.dtd +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/extract_code.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/goals.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/hack_pyc.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/notes/arcs-to-branches.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/notes/bug1303.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/notes/pypy-738-decorated-functions.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/parse_all.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/parser.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/pick.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/platform_info.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/run_sysmon.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/run_trace.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/select_contexts.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/show_platform.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/show_pyc.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/treetopy.sh +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/warn_executed.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/lab/warn_executed.toml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/pyproject.toml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/kit.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/mypy.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/pins.pip +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/pip.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/pytest.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/requirements/tox.in +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/setup.cfg +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/setup.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/conftest.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/covmodzip1.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/README.rst +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/mae/mae.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/multi/a/a.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/multi/b/b.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/multi/multi.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/annotate/white/white.py,cover +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/Makefile +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/a/a_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/a/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/a/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/a/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/b_branch/b_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/b_branch/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/b_branch/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/b_branch/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/bom/bom_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/bom/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/bom/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/bom/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/contexts/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/contexts/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/contexts/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/contexts/two_tests_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/isolatin1/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/isolatin1/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/isolatin1/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/isolatin1/isolatin1_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/multiline/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/multiline/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/multiline/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/multiline/multiline_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/m1_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/m2_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/m3_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_1/main_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/m2_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/m3_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_2/main_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_3/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_3/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_3/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_3/m3_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_3/main_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/m1_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/m3_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_4/main_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_5/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_5/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_5/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_5/m1_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/omit_5/main_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/other/blah_blah_other_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/other/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/other/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/other/here_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/other/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/partial/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/partial/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/partial/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/partial/partial_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/a_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/myextra.css +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/styled/style.css +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/support/coverage_html_cb_bcae5fc4.js +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/support/favicon_32_cb_58284776.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/support/keybd_closed_cb_ce680311.png +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/support/style_cb_a5a05ca4.css +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/unicode/class_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/unicode/function_index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/unicode/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/html/unicode/unicode_py.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/testing/getty/gettysburg.txt +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/testing/xml/output.xml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/xml/x_xml/coverage.xml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/goldtest.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/js/index.html +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/js/tests.js +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/mixins.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/afile.odd.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/afile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb/bfile.odd.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb/bfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb/cc/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb/cc/cfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/bb.odd/bfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/aa/zfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/ambiguous/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/covmod1.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/namespace_420/sub1/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/__main__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/p1a.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/p1b.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/p1c.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/runmod2.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/sub/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/sub/__main__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/sub/ps1a.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg1/sub/runmod3.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg2/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg2/p2a.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/pkg2/p2b.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/plugins/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/plugins/a_plugin.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/plugins/another.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/process_test/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/process_test/try_execfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/runmod1.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/modules/usepkgs.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/othera.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/otherb.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/sub/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/sub/osa.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/moremodules/othermods/sub/osb.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/osinfo.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/plugin1.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/plugin2.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/plugin_config.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/qunit/jquery.tmpl.min.js +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/select_plugin.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/stress_phystoken.tok +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/stress_phystoken_dos.tok +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_annotate.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_bytecode.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_collector.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_context.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_core.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_coverage.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_debug.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_execfile.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_filereporter.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_files.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_goldtest.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_html.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_json.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_lcov.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_misc.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_mixins.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_numbits.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_oddball.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_parser.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_plugins.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_python.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_report_common.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_report_core.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_results.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_setup.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_sqlitedb.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_templite.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_testing.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_venv.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_version.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/test_xml.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/testenv.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/zipsrc/zip1/__init__.py +0 -0
- {coverage-7.13.4 → coverage-7.14.0}/tests/zipsrc/zip1/zip1.py +0 -0
|
@@ -20,7 +20,7 @@ on:
|
|
|
20
20
|
branches:
|
|
21
21
|
- main
|
|
22
22
|
schedule:
|
|
23
|
-
- cron:
|
|
23
|
+
- cron: "30 20 * * 6"
|
|
24
24
|
|
|
25
25
|
permissions:
|
|
26
26
|
contents: read
|
|
@@ -31,7 +31,7 @@ concurrency:
|
|
|
31
31
|
|
|
32
32
|
jobs:
|
|
33
33
|
analyze:
|
|
34
|
-
name: Analyze
|
|
34
|
+
name: "Analyze"
|
|
35
35
|
runs-on: ubuntu-latest
|
|
36
36
|
permissions:
|
|
37
37
|
actions: read # CodeQL wrote this action.
|
|
@@ -48,14 +48,14 @@ jobs:
|
|
|
48
48
|
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
|
49
49
|
|
|
50
50
|
steps:
|
|
51
|
-
- name:
|
|
51
|
+
- name: "Check out the repo"
|
|
52
52
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
53
53
|
with:
|
|
54
54
|
persist-credentials: false
|
|
55
55
|
|
|
56
56
|
# Initializes the CodeQL tools for scanning.
|
|
57
57
|
- name: Initialize CodeQL
|
|
58
|
-
uses: github/codeql-action/init@
|
|
58
|
+
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
|
59
59
|
with:
|
|
60
60
|
languages: ${{ matrix.language }}
|
|
61
61
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
67
67
|
# If this step fails, then you should remove it and run the build manually (see below)
|
|
68
68
|
- name: Autobuild
|
|
69
|
-
uses: github/codeql-action/autobuild@
|
|
69
|
+
uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
|
70
70
|
|
|
71
71
|
# ℹ️ Command-line programs to run using the OS shell.
|
|
72
72
|
# 📚 https://git.io/JvXDl
|
|
@@ -80,4 +80,4 @@ jobs:
|
|
|
80
80
|
# make release
|
|
81
81
|
|
|
82
82
|
- name: Perform CodeQL Analysis
|
|
83
|
-
uses: github/codeql-action/analyze@
|
|
83
|
+
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
persist-credentials: false
|
|
46
46
|
|
|
47
47
|
- name: "Examine changed files"
|
|
48
|
-
uses: dorny/paths-filter@
|
|
48
|
+
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
|
49
49
|
id: filter
|
|
50
50
|
with:
|
|
51
51
|
filters: |
|
|
@@ -110,6 +110,9 @@ jobs:
|
|
|
110
110
|
# skip them for now.
|
|
111
111
|
- os: windows
|
|
112
112
|
python-version: "pypy-3.10"
|
|
113
|
+
# Windows 3.13t often fails during installation.
|
|
114
|
+
- os: windows
|
|
115
|
+
python-version: "3.13t"
|
|
113
116
|
# If we need to tweak the os version we can do it with an include like
|
|
114
117
|
# this:
|
|
115
118
|
# include:
|
|
@@ -140,7 +143,7 @@ jobs:
|
|
|
140
143
|
- name: "Show environment"
|
|
141
144
|
run: |
|
|
142
145
|
set -xe
|
|
143
|
-
echo matrix id: $MATRIX_ID
|
|
146
|
+
echo matrix id: "$MATRIX_ID"
|
|
144
147
|
python -VV
|
|
145
148
|
python -m site
|
|
146
149
|
env | sort
|
|
@@ -163,10 +166,10 @@ jobs:
|
|
|
163
166
|
COVERAGE_RCFILE: "metacov.ini"
|
|
164
167
|
run: |
|
|
165
168
|
python -m coverage combine
|
|
166
|
-
mv .metacov .metacov.$MATRIX_ID
|
|
169
|
+
mv .metacov ".metacov.$MATRIX_ID"
|
|
167
170
|
|
|
168
171
|
- name: "Upload coverage data"
|
|
169
|
-
uses: actions/upload-artifact@
|
|
172
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
170
173
|
with:
|
|
171
174
|
name: metacov-${{ env.MATRIX_ID }}
|
|
172
175
|
path: .metacov.*
|
|
@@ -211,7 +214,7 @@ jobs:
|
|
|
211
214
|
python igor.py zip_mods
|
|
212
215
|
|
|
213
216
|
- name: "Download coverage data"
|
|
214
|
-
uses: actions/download-artifact@
|
|
217
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
215
218
|
with:
|
|
216
219
|
pattern: metacov-*
|
|
217
220
|
merge-multiple: true
|
|
@@ -224,17 +227,8 @@ jobs:
|
|
|
224
227
|
set -xe
|
|
225
228
|
python igor.py combine_html
|
|
226
229
|
|
|
227
|
-
- name: "Check targets"
|
|
228
|
-
run: |
|
|
229
|
-
# Maybe someday goals will be a real feature
|
|
230
|
-
python -m pip install wcmatch
|
|
231
|
-
# Very crude check that nothing catastrophic has happened.
|
|
232
|
-
python lab/goals.py --group 90 "coverage/*.py" "tests/*.py"
|
|
233
|
-
# Absolutely all of our test code should be covered.
|
|
234
|
-
python lab/goals.py --file 100 "tests/test_*.py"
|
|
235
|
-
|
|
236
230
|
- name: "Upload HTML report"
|
|
237
|
-
uses: actions/upload-artifact@
|
|
231
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
238
232
|
with:
|
|
239
233
|
name: html_report
|
|
240
234
|
path: htmlcov
|
|
@@ -243,20 +237,32 @@ jobs:
|
|
|
243
237
|
- name: "Show text report"
|
|
244
238
|
run: |
|
|
245
239
|
set -xe
|
|
246
|
-
echo "## Coverage: $(python -m coverage report --format=total)%" >> $GITHUB_STEP_SUMMARY
|
|
247
|
-
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
248
|
-
python -m coverage report --skip-covered >> $GITHUB_STEP_SUMMARY
|
|
249
|
-
echo '```' >> $GITHUB_STEP_SUMMARY
|
|
240
|
+
echo "## Coverage: $(python -m coverage report --format=total)%" >> "$GITHUB_STEP_SUMMARY"
|
|
241
|
+
echo '```' >> "$GITHUB_STEP_SUMMARY"
|
|
242
|
+
python -m coverage report --skip-covered >> "$GITHUB_STEP_SUMMARY"
|
|
243
|
+
echo '```' >> "$GITHUB_STEP_SUMMARY"
|
|
250
244
|
|
|
251
245
|
- name: "Get total"
|
|
252
246
|
id: total
|
|
253
247
|
run: |
|
|
254
|
-
echo "total=$(python -m coverage report --format=total)" >> $GITHUB_OUTPUT
|
|
248
|
+
echo "total=$(python -m coverage report --format=total)" >> "$GITHUB_OUTPUT"
|
|
249
|
+
|
|
250
|
+
- name: "Check targets"
|
|
251
|
+
run: |
|
|
252
|
+
# Maybe someday goals will be a real feature
|
|
253
|
+
python -m pip install wcmatch
|
|
254
|
+
# Very crude check that nothing catastrophic has happened.
|
|
255
|
+
python lab/goals.py --group 90 "coverage/*.py" "tests/*.py"
|
|
256
|
+
# Absolutely all of our test code should be covered.
|
|
257
|
+
python lab/goals.py --file 100 "tests/test_*.py"
|
|
255
258
|
|
|
256
259
|
publish:
|
|
257
260
|
name: "Publish coverage report"
|
|
258
261
|
needs: combine
|
|
259
262
|
runs-on: ubuntu-latest
|
|
263
|
+
environment:
|
|
264
|
+
name: "publish report"
|
|
265
|
+
deployment: false
|
|
260
266
|
|
|
261
267
|
steps:
|
|
262
268
|
- name: "Show environment"
|
|
@@ -270,21 +276,24 @@ jobs:
|
|
|
270
276
|
REF: ${{ github.ref }}
|
|
271
277
|
SHA: ${{ github.sha }}
|
|
272
278
|
run: |
|
|
273
|
-
|
|
274
|
-
export
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
echo "
|
|
278
|
-
echo "
|
|
279
|
-
echo "
|
|
279
|
+
SHA10=$(echo "$SHA" | cut -c 1-10)
|
|
280
|
+
export SHA10
|
|
281
|
+
SLUG=$(date +'%Y%m%d')_$SHA10
|
|
282
|
+
export SLUG
|
|
283
|
+
echo "sha10=$SHA10" >> "$GITHUB_ENV"
|
|
284
|
+
echo "slug=$SLUG" >> "$GITHUB_ENV"
|
|
285
|
+
echo "report_dir=reports/$SLUG/htmlcov" >> "$GITHUB_ENV"
|
|
286
|
+
echo "url=https://coveragepy.github.io/metacov-reports/reports/$SLUG/htmlcov" >> "$GITHUB_ENV"
|
|
287
|
+
echo "branch=${REF#refs/heads/}" >> "$GITHUB_ENV"
|
|
280
288
|
|
|
281
289
|
- name: "Checkout reports repo"
|
|
282
290
|
if: ${{ github.ref == 'refs/heads/main' }}
|
|
283
291
|
env:
|
|
292
|
+
# Fine-grained, with write access to coveragepy/metacov-reports
|
|
284
293
|
TOKEN: ${{ secrets.COVERAGE_REPORTS_TOKEN }}
|
|
285
294
|
run: |
|
|
286
295
|
set -xe
|
|
287
|
-
git clone --depth=1 --no-checkout https://$
|
|
296
|
+
git clone --depth=1 --no-checkout "https://$TOKEN@github.com/coveragepy/metacov-reports" reports_repo
|
|
288
297
|
cd reports_repo
|
|
289
298
|
git sparse-checkout init --cone
|
|
290
299
|
git sparse-checkout set --skip-checks '/*' '!/reports'
|
|
@@ -294,7 +303,7 @@ jobs:
|
|
|
294
303
|
|
|
295
304
|
- name: "Download coverage HTML report"
|
|
296
305
|
if: ${{ github.ref == 'refs/heads/main' }}
|
|
297
|
-
uses: actions/download-artifact@
|
|
306
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
298
307
|
with:
|
|
299
308
|
name: html_report
|
|
300
309
|
path: reports_repo/${{ env.report_dir }}
|
|
@@ -319,20 +328,21 @@ jobs:
|
|
|
319
328
|
echo "${sha10}: ${branch}" >> commit.txt
|
|
320
329
|
# Commit.
|
|
321
330
|
cd ./reports_repo
|
|
322
|
-
git sparse-checkout set --skip-checks '/*' $
|
|
323
|
-
rm $
|
|
324
|
-
git add $
|
|
331
|
+
git sparse-checkout set --skip-checks '/*' "$report_dir"
|
|
332
|
+
rm "$report_dir/.gitignore"
|
|
333
|
+
git add "$report_dir" latest.html
|
|
325
334
|
git commit --file=../commit.txt
|
|
326
335
|
git push
|
|
327
|
-
echo "[${url}](${url})" >> $GITHUB_STEP_SUMMARY
|
|
336
|
+
echo "[${url}](${url})" >> "$GITHUB_STEP_SUMMARY"
|
|
328
337
|
|
|
329
338
|
- name: "Create badge"
|
|
330
339
|
if: |
|
|
331
340
|
github.repository_owner == 'coveragepy'
|
|
332
341
|
&& github.ref == 'refs/heads/main'
|
|
333
342
|
# https://gist.githubusercontent.com/nedbat/8c6980f77988a327348f9b02bbaf67f5
|
|
334
|
-
uses: schneegans/dynamic-badges-action@
|
|
343
|
+
uses: schneegans/dynamic-badges-action@0e50b8bad39e7e1afd3e4e9c2b7dd145fad07501 # v1.8.0
|
|
335
344
|
with:
|
|
345
|
+
# Personal access token: gist access
|
|
336
346
|
auth: ${{ secrets.METACOV_GIST_SECRET }}
|
|
337
347
|
gistID: 8c6980f77988a327348f9b02bbaf67f5
|
|
338
348
|
filename: metacov.json
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
# Source repository: https://github.com/actions/dependency-review-action
|
|
6
6
|
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
|
7
7
|
|
|
8
|
-
name:
|
|
8
|
+
name: "Dependency Review"
|
|
9
|
+
|
|
9
10
|
on:
|
|
10
11
|
push:
|
|
11
12
|
branches:
|
|
@@ -27,13 +28,13 @@ jobs:
|
|
|
27
28
|
if: github.repository_owner == 'coveragepy'
|
|
28
29
|
runs-on: ubuntu-latest
|
|
29
30
|
steps:
|
|
30
|
-
- name:
|
|
31
|
+
- name: "Check out the repo"
|
|
31
32
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
32
33
|
with:
|
|
33
34
|
persist-credentials: false
|
|
34
35
|
|
|
35
|
-
- name:
|
|
36
|
-
uses: actions/dependency-review-action@
|
|
36
|
+
- name: "Dependency Review"
|
|
37
|
+
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
|
|
37
38
|
with:
|
|
38
39
|
base-ref: ${{ github.event.pull_request.base.sha || 'main' }}
|
|
39
40
|
head-ref: ${{ github.event.pull_request.head.sha || github.ref }}
|
|
@@ -68,9 +68,6 @@ jobs:
|
|
|
68
68
|
# [[[cog
|
|
69
69
|
# #----- vvv Choices for the matrix vvv -----
|
|
70
70
|
#
|
|
71
|
-
# # Operating systems:
|
|
72
|
-
# oss = ["ubuntu", "macos", "windows"]
|
|
73
|
-
#
|
|
74
71
|
# # For each OS, what arch to use with cibuildwheel:
|
|
75
72
|
# os_archs = {
|
|
76
73
|
# "ubuntu": ["x86_64", "i686", "aarch64", "riscv64", "ppc64le"],
|
|
@@ -94,8 +91,8 @@ jobs:
|
|
|
94
91
|
# #----- ^^^ ---------------------- ^^^ -----
|
|
95
92
|
#
|
|
96
93
|
# import json
|
|
97
|
-
# for the_os in
|
|
98
|
-
# for the_arch in
|
|
94
|
+
# for the_os, archs in os_archs.items():
|
|
95
|
+
# for the_arch in archs:
|
|
99
96
|
# for the_py in os_arch_pys.get((the_os, the_arch), pys):
|
|
100
97
|
# them = {
|
|
101
98
|
# "os": the_os,
|
|
@@ -179,8 +176,8 @@ jobs:
|
|
|
179
176
|
with:
|
|
180
177
|
persist-credentials: false
|
|
181
178
|
|
|
182
|
-
-
|
|
183
|
-
|
|
179
|
+
- name: "Install Python"
|
|
180
|
+
if: ${{ matrix.arch != 'ppc64le' }}
|
|
184
181
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
185
182
|
with:
|
|
186
183
|
python-version: "${{ matrix.cipy }}"
|
|
@@ -190,8 +187,8 @@ jobs:
|
|
|
190
187
|
# Rust toolchain is not currently installed on windows arm64 images.
|
|
191
188
|
# We need it for nh3, needed by readme-renderer, needed by twine.
|
|
192
189
|
# https://github.com/actions/partner-runner-images/issues/77
|
|
193
|
-
-
|
|
194
|
-
|
|
190
|
+
- name: "Setup Rust"
|
|
191
|
+
if: ${{ matrix.os-version == '11-arm' }}
|
|
195
192
|
id: setup-rust
|
|
196
193
|
shell: pwsh
|
|
197
194
|
run: |
|
|
@@ -205,7 +202,7 @@ jobs:
|
|
|
205
202
|
|
|
206
203
|
- name: "Set up QEMU"
|
|
207
204
|
if: ${{ matrix.arch == 'riscv64' }}
|
|
208
|
-
uses: docker/setup-qemu-action@
|
|
205
|
+
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0
|
|
209
206
|
|
|
210
207
|
- name: "Build binary wheels"
|
|
211
208
|
env:
|
|
@@ -226,7 +223,7 @@ jobs:
|
|
|
226
223
|
python -m twine check wheelhouse/*
|
|
227
224
|
|
|
228
225
|
- name: "Upload binary wheels"
|
|
229
|
-
uses: actions/upload-artifact@
|
|
226
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
230
227
|
with:
|
|
231
228
|
name: dist-${{ env.MATRIX_ID }}
|
|
232
229
|
path: wheelhouse/*.whl
|
|
@@ -267,7 +264,7 @@ jobs:
|
|
|
267
264
|
python -m twine check dist/*
|
|
268
265
|
|
|
269
266
|
- name: "Upload non-binary artifacts"
|
|
270
|
-
uses: actions/upload-artifact@
|
|
267
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
271
268
|
with:
|
|
272
269
|
name: dist-non-binary
|
|
273
270
|
path: dist/*
|
|
@@ -285,7 +282,7 @@ jobs:
|
|
|
285
282
|
id-token: write # Needed for signing artifacts
|
|
286
283
|
steps:
|
|
287
284
|
- name: "Download artifacts"
|
|
288
|
-
uses: actions/download-artifact@
|
|
285
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
289
286
|
with:
|
|
290
287
|
pattern: dist-*
|
|
291
288
|
merge-multiple: true
|
|
@@ -294,11 +291,11 @@ jobs:
|
|
|
294
291
|
run: |
|
|
295
292
|
ls -alR
|
|
296
293
|
echo "Number of dists, there should be $EXPECTED:"
|
|
297
|
-
|
|
298
|
-
files=$(
|
|
294
|
+
find coverage-* | wc -l
|
|
295
|
+
files=$(find coverage-* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
|
|
299
296
|
|
|
300
297
|
- name: "Sign artifacts"
|
|
301
|
-
uses: sigstore/gh-action-sigstore-python@
|
|
298
|
+
uses: sigstore/gh-action-sigstore-python@04cffa1d795717b140764e8b640de88853c92acc # v3.3.0
|
|
302
299
|
with:
|
|
303
300
|
inputs: coverage-*.*
|
|
304
301
|
|
|
@@ -307,7 +304,7 @@ jobs:
|
|
|
307
304
|
ls -alR
|
|
308
305
|
|
|
309
306
|
- name: "Upload signatures"
|
|
310
|
-
uses: actions/upload-artifact@
|
|
307
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
311
308
|
with:
|
|
312
309
|
name: signatures
|
|
313
310
|
path: "*.sigstore.json"
|
|
@@ -29,26 +29,30 @@ concurrency:
|
|
|
29
29
|
jobs:
|
|
30
30
|
find-run:
|
|
31
31
|
name: "Find latest kit.yml run"
|
|
32
|
-
runs-on:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
33
|
outputs:
|
|
34
34
|
run-id: ${{ steps.run-id.outputs.run-id }}
|
|
35
35
|
|
|
36
36
|
steps:
|
|
37
37
|
- name: "Find latest kit.yml run"
|
|
38
38
|
id: runs
|
|
39
|
-
uses: octokit/request-action@
|
|
39
|
+
uses: octokit/request-action@b91aabaa861c777dcdb14e2387e30eddf04619ae # v3.0.0
|
|
40
40
|
with:
|
|
41
41
|
route: GET /repos/coveragepy/coveragepy/actions/workflows/kit.yml/runs
|
|
42
42
|
env:
|
|
43
43
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
44
44
|
|
|
45
|
-
- name: "Record run id"
|
|
45
|
+
- name: "Record run id"
|
|
46
46
|
id: run-id
|
|
47
|
+
env:
|
|
48
|
+
RUN_STATUS: ${{ fromJson(steps.runs.outputs.data).workflow_runs[0].status }}
|
|
49
|
+
RUN_CONCLUSION: ${{ fromJson(steps.runs.outputs.data).workflow_runs[0].conclusion }}
|
|
50
|
+
RUN_ID: ${{ fromJson(steps.runs.outputs.data).workflow_runs[0].id }}
|
|
47
51
|
run: |
|
|
48
52
|
# There must be a shorter way to write this...
|
|
49
|
-
[ "$
|
|
50
|
-
[ "$
|
|
51
|
-
echo "run-id=$
|
|
53
|
+
[ "$RUN_STATUS" = "completed" ] || exit 1
|
|
54
|
+
[ "$RUN_CONCLUSION" = "success" ] || exit 1
|
|
55
|
+
echo "run-id=$RUN_ID" >> "$GITHUB_OUTPUT"
|
|
52
56
|
|
|
53
57
|
publish-to-test-pypi:
|
|
54
58
|
name: "Publish to Test PyPI"
|
|
@@ -56,15 +60,16 @@ jobs:
|
|
|
56
60
|
permissions:
|
|
57
61
|
id-token: write # needed for actions/attest-build-provenance
|
|
58
62
|
attestations: write # needed for actions/attest-build-provenance
|
|
59
|
-
runs-on:
|
|
63
|
+
runs-on: ubuntu-latest
|
|
60
64
|
environment:
|
|
61
65
|
name: "testpypi"
|
|
66
|
+
deployment: false
|
|
62
67
|
needs:
|
|
63
68
|
- find-run
|
|
64
69
|
|
|
65
70
|
steps:
|
|
66
71
|
- name: "Download dists"
|
|
67
|
-
uses: actions/download-artifact@
|
|
72
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
68
73
|
with:
|
|
69
74
|
repository: "coveragepy/coveragepy"
|
|
70
75
|
run-id: ${{ needs.find-run.outputs.run-id }}
|
|
@@ -77,16 +82,16 @@ jobs:
|
|
|
77
82
|
run: |
|
|
78
83
|
ls -alR
|
|
79
84
|
echo "Number of dists, should be $EXPECTED:"
|
|
80
|
-
|
|
81
|
-
files=$(
|
|
85
|
+
find dist/* | wc -l
|
|
86
|
+
files=$(find dist/* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
|
|
82
87
|
|
|
83
88
|
- name: "Generate attestations"
|
|
84
|
-
uses: actions/attest-build-provenance@
|
|
89
|
+
uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
|
|
85
90
|
with:
|
|
86
91
|
subject-path: "dist/*"
|
|
87
92
|
|
|
88
93
|
- name: "Publish dists to Test PyPI"
|
|
89
|
-
uses: pypa/gh-action-pypi-publish@
|
|
94
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
90
95
|
with:
|
|
91
96
|
repository-url: https://test.pypi.org/legacy/
|
|
92
97
|
|
|
@@ -96,15 +101,16 @@ jobs:
|
|
|
96
101
|
permissions:
|
|
97
102
|
id-token: write # needed for actions/attest-build-provenance
|
|
98
103
|
attestations: write # needed for actions/attest-build-provenance
|
|
99
|
-
runs-on:
|
|
104
|
+
runs-on: ubuntu-latest
|
|
100
105
|
environment:
|
|
101
106
|
name: "pypi"
|
|
107
|
+
deployment: false
|
|
102
108
|
needs:
|
|
103
109
|
- find-run
|
|
104
110
|
|
|
105
111
|
steps:
|
|
106
112
|
- name: "Download dists"
|
|
107
|
-
uses: actions/download-artifact@
|
|
113
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
108
114
|
with:
|
|
109
115
|
repository: "coveragepy/coveragepy"
|
|
110
116
|
run-id: ${{ needs.find-run.outputs.run-id }}
|
|
@@ -117,13 +123,13 @@ jobs:
|
|
|
117
123
|
run: |
|
|
118
124
|
ls -alR
|
|
119
125
|
echo "Number of dists, should be $EXPECTED:"
|
|
120
|
-
|
|
121
|
-
files=$(
|
|
126
|
+
find dist/* | wc -l
|
|
127
|
+
files=$(find dist/* 2>/dev/null | wc -l) && [ "$files" -eq "$EXPECTED" ] || exit 1
|
|
122
128
|
|
|
123
129
|
- name: "Generate attestations"
|
|
124
|
-
uses: actions/attest-build-provenance@
|
|
130
|
+
uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
|
|
125
131
|
with:
|
|
126
132
|
subject-path: "dist/*"
|
|
127
133
|
|
|
128
134
|
- name: "Publish dists to PyPI"
|
|
129
|
-
uses: pypa/gh-action-pypi-publish@
|
|
135
|
+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
@@ -79,9 +79,9 @@ jobs:
|
|
|
79
79
|
set -xe
|
|
80
80
|
export PYENV_ROOT="$HOME/.pyenv"
|
|
81
81
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
|
82
|
-
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
|
83
|
-
pyenv install $PYVER -v
|
|
84
|
-
pyenv global $PYVER
|
|
82
|
+
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> "$GITHUB_PATH"
|
|
83
|
+
pyenv install "$PYVER" -v
|
|
84
|
+
pyenv global "$PYVER"
|
|
85
85
|
|
|
86
86
|
- name: "Show diagnostic info"
|
|
87
87
|
run: |
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
persist-credentials: false
|
|
44
44
|
|
|
45
45
|
- name: "Examine changed files"
|
|
46
|
-
uses: dorny/paths-filter@
|
|
46
|
+
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
|
47
47
|
id: filter
|
|
48
48
|
with:
|
|
49
49
|
filters: |
|
|
@@ -146,7 +146,7 @@ jobs:
|
|
|
146
146
|
- name: "Install Python"
|
|
147
147
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
148
148
|
with:
|
|
149
|
-
python-version: "3.
|
|
149
|
+
python-version: "3.12" # Doc version from PYVERSIONS
|
|
150
150
|
cache: pip
|
|
151
151
|
cache-dependency-path: 'requirements/*.pip'
|
|
152
152
|
|
|
@@ -178,17 +178,17 @@ jobs:
|
|
|
178
178
|
|| needs.changed.outputs.workflow == 'true'
|
|
179
179
|
|
|
180
180
|
steps:
|
|
181
|
-
- name:
|
|
181
|
+
- name: "Check out the repo"
|
|
182
182
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
183
183
|
with:
|
|
184
184
|
persist-credentials: false
|
|
185
185
|
|
|
186
|
-
- name: Install
|
|
187
|
-
uses: astral-sh/setup-uv@
|
|
186
|
+
- name: "Install uv"
|
|
187
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
188
188
|
with:
|
|
189
189
|
enable-cache: false
|
|
190
190
|
|
|
191
|
-
- name: Run zizmor
|
|
191
|
+
- name: "Run zizmor"
|
|
192
192
|
env:
|
|
193
193
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
194
194
|
run: uvx zizmor --pedantic .github/workflows
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
persist-credentials: false
|
|
44
44
|
|
|
45
45
|
- name: "Examine changed files"
|
|
46
|
-
uses: dorny/paths-filter@
|
|
46
|
+
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
|
47
47
|
id: filter
|
|
48
48
|
with:
|
|
49
49
|
filters: |
|
|
@@ -98,6 +98,11 @@ jobs:
|
|
|
98
98
|
- "3.15t"
|
|
99
99
|
- "pypy-3.10"
|
|
100
100
|
- "pypy-3.11"
|
|
101
|
+
exclude:
|
|
102
|
+
# Windows 3.13t often fails during installation.
|
|
103
|
+
- os: windows
|
|
104
|
+
python-version: "3.13t"
|
|
105
|
+
|
|
101
106
|
#
|
|
102
107
|
# If we need to exclude any combinations, do it like this:
|
|
103
108
|
# exclude:
|
|
@@ -142,8 +147,8 @@ jobs:
|
|
|
142
147
|
# Ideally, the system Python wouldn't have writable sitepackages so
|
|
143
148
|
# try to make it not writable. We can't always always change the
|
|
144
149
|
# permissions (Ubuntu & Windows yes, Mac no), so be ready for it to fail.
|
|
145
|
-
chmod u-w $(python -c "import site; print(site.getsitepackages()[0])") || echo "Couldn't lock down site-packages"
|
|
146
|
-
ls -ld $(python -c "import site; print(site.getsitepackages()[0])")
|
|
150
|
+
chmod u-w "$(python -c "import site; print(site.getsitepackages()[0])")" || echo "Couldn't lock down site-packages"
|
|
151
|
+
ls -ld "$(python -c "import site; print(site.getsitepackages()[0])")"
|
|
147
152
|
whoami
|
|
148
153
|
|
|
149
154
|
- name: "Install dependencies"
|
|
@@ -165,12 +170,12 @@ jobs:
|
|
|
165
170
|
# https://github.com/marketplace/actions/alls-green#why
|
|
166
171
|
# https://github.com/orgs/community/discussions/33579
|
|
167
172
|
success:
|
|
168
|
-
name: Tests successful
|
|
173
|
+
name: "Tests successful"
|
|
169
174
|
needs:
|
|
170
175
|
- tests
|
|
171
176
|
runs-on: ubuntu-latest
|
|
172
177
|
steps:
|
|
173
|
-
- name: Decide
|
|
178
|
+
- name: "Decide success or failure"
|
|
174
179
|
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
|
|
175
180
|
with:
|
|
176
181
|
jobs: ${{ toJSON(needs) }}
|
|
@@ -22,6 +22,65 @@ upgrading your version of coverage.py.
|
|
|
22
22
|
|
|
23
23
|
.. start-releases
|
|
24
24
|
|
|
25
|
+
.. _changes_7-14-0:
|
|
26
|
+
|
|
27
|
+
Version 7.14.0 — 2026-05-10
|
|
28
|
+
---------------------------
|
|
29
|
+
|
|
30
|
+
- Feature: now when running one of the reporting commands, if there are
|
|
31
|
+
parallel data files that need combining, they will be implicitly combined
|
|
32
|
+
before creating the report. There is no option to avoid the combination; let
|
|
33
|
+
us know if you have a use case that requires it. Thanks, `Tim Hatch
|
|
34
|
+
<pull 2162_>`_. Closes `issue 1781`_.
|
|
35
|
+
|
|
36
|
+
- Fix: the output from ``combine`` was too verbose, listing each file
|
|
37
|
+
considered. Now it shows a single line with the counts of files combined,
|
|
38
|
+
files skipped, and files with errors. The ``-q`` flag suppresses this line.
|
|
39
|
+
The old detailed lines are available with the new ``--debug=combine`` option.
|
|
40
|
+
|
|
41
|
+
- Fix: running a Python file through a symlink now sets the sys.path correctly,
|
|
42
|
+
matching regular Python behavior. Fixes `issue 2157`_.
|
|
43
|
+
|
|
44
|
+
- Fix: ``Collector.flush_data`` could fail with "RuntimeError: Set changed
|
|
45
|
+
size during iteration" when a tracer in another thread added a line to the
|
|
46
|
+
per-file set that ``add_lines`` (or ``add_arcs``) was iterating. The values
|
|
47
|
+
passed to ``CoverageData`` are now snapshotted via ``dict.copy()`` and
|
|
48
|
+
``set.copy()``, which are atomic under the GIL. Thanks, `Alex Vandiver <pull
|
|
49
|
+
2165_>`_.
|
|
50
|
+
|
|
51
|
+
- Fix: the soft keyword ``lazy`` is now bolded in HTML reports.
|
|
52
|
+
|
|
53
|
+
- We are no longer testing eventlet support. Eventlet started issuing stern
|
|
54
|
+
deprecation warnings that break our tests. Our support code is still there.
|
|
55
|
+
|
|
56
|
+
.. _issue 1781: https://github.com/coveragepy/coveragepy/issues/1781
|
|
57
|
+
.. _issue 2157: https://github.com/coveragepy/coveragepy/issues/2157
|
|
58
|
+
.. _pull 2162: https://github.com/coveragepy/coveragepy/pull/2162
|
|
59
|
+
.. _pull 2165: https://github.com/coveragepy/coveragepy/pull/2165
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
.. _changes_7-13-5:
|
|
63
|
+
|
|
64
|
+
Version 7.13.5 — 2026-03-17
|
|
65
|
+
---------------------------
|
|
66
|
+
|
|
67
|
+
- Fix: `issue 2138`_ describes a memory leak that happened when repeatedly
|
|
68
|
+
using the Coverage API with in-memory data. This is now fixed.
|
|
69
|
+
|
|
70
|
+
- Fix: the markdown-formatted coverage report didn't fully escape special
|
|
71
|
+
characters in file paths (`issue 2141`_). This would be very unlikely to
|
|
72
|
+
cause a problem, but now it's done properly, thanks to `Ellie Ayla
|
|
73
|
+
<pull 2142_>`_.
|
|
74
|
+
|
|
75
|
+
- Fix: the C extension wouldn't build on VS2019, but now it does (`issue
|
|
76
|
+
2145`_).
|
|
77
|
+
|
|
78
|
+
.. _issue 2138: https://github.com/coveragepy/coveragepy/issues/2138
|
|
79
|
+
.. _issue 2141: https://github.com/coveragepy/coveragepy/issues/2141
|
|
80
|
+
.. _pull 2142: https://github.com/coveragepy/coveragepy/pull/2142
|
|
81
|
+
.. _issue 2145: https://github.com/coveragepy/coveragepy/issues/2145
|
|
82
|
+
|
|
83
|
+
|
|
25
84
|
.. _changes_7-13-4:
|
|
26
85
|
|
|
27
86
|
Version 7.13.4 — 2026-02-09
|
|
@@ -232,7 +291,7 @@ Version 7.11.1 — 2025-11-07
|
|
|
232
291
|
|
|
233
292
|
- Fix: some chanages to details of how the measurement core is chosen, and how
|
|
234
293
|
conflicting settings are handled. The "sysmon" core cannot be used with some
|
|
235
|
-
|
|
294
|
+
concurrency settings, with dynamic context, and in Python 3.12/3.13, with
|
|
236
295
|
branch measurement.
|
|
237
296
|
|
|
238
297
|
- If the core is not specified and defaults to "sysmon" (Python 3.14+), but
|