coverage 7.16.1__tar.gz → 7.17.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.
Files changed (422) hide show
  1. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/codeql-analysis.yml +3 -3
  2. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/coverage.yml +16 -20
  3. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/kit.yml +55 -31
  4. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/publish.yml +3 -3
  5. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/quality.yml +3 -3
  6. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/testsuite.yml +47 -2
  7. {coverage-7.16.1 → coverage-7.17.0}/.gitignore +2 -0
  8. {coverage-7.16.1 → coverage-7.17.0}/.pre-commit-config.yaml +1 -2
  9. {coverage-7.16.1 → coverage-7.17.0}/CHANGES.rst +127 -0
  10. {coverage-7.16.1 → coverage-7.17.0}/CONTRIBUTORS.txt +1 -0
  11. {coverage-7.16.1 → coverage-7.17.0}/MANIFEST.in +2 -1
  12. {coverage-7.16.1 → coverage-7.17.0}/Makefile +8 -4
  13. {coverage-7.16.1/coverage.egg-info → coverage-7.17.0}/PKG-INFO +11 -13
  14. {coverage-7.16.1 → coverage-7.17.0}/README.rst +2 -2
  15. {coverage-7.16.1 → coverage-7.17.0}/coverage/__init__.py +4 -9
  16. {coverage-7.16.1 → coverage-7.17.0}/coverage/annotate.py +2 -0
  17. {coverage-7.16.1 → coverage-7.17.0}/coverage/bytecode.py +8 -2
  18. {coverage-7.16.1 → coverage-7.17.0}/coverage/cmdline.py +1 -1
  19. {coverage-7.16.1 → coverage-7.17.0}/coverage/config.py +10 -6
  20. {coverage-7.16.1 → coverage-7.17.0}/coverage/context.py +5 -0
  21. {coverage-7.16.1 → coverage-7.17.0}/coverage/control.py +3 -1
  22. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/filedisp.c +2 -0
  23. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/module.c +0 -2
  24. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/tracer.c +45 -25
  25. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/util.h +61 -4
  26. {coverage-7.16.1 → coverage-7.17.0}/coverage/data.py +7 -5
  27. {coverage-7.16.1 → coverage-7.17.0}/coverage/debug.py +5 -8
  28. {coverage-7.16.1 → coverage-7.17.0}/coverage/env.py +2 -0
  29. {coverage-7.16.1 → coverage-7.17.0}/coverage/exceptions.py +2 -0
  30. {coverage-7.16.1 → coverage-7.17.0}/coverage/execfile.py +2 -6
  31. {coverage-7.16.1 → coverage-7.17.0}/coverage/files.py +5 -5
  32. {coverage-7.16.1 → coverage-7.17.0}/coverage/html.py +2 -0
  33. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/coverage_html.js +44 -4
  34. {coverage-7.16.1 → coverage-7.17.0}/coverage/jsonreport.py +3 -1
  35. {coverage-7.16.1 → coverage-7.17.0}/coverage/lcovreport.py +7 -0
  36. {coverage-7.16.1 → coverage-7.17.0}/coverage/misc.py +15 -23
  37. {coverage-7.16.1 → coverage-7.17.0}/coverage/numbits.py +2 -0
  38. {coverage-7.16.1 → coverage-7.17.0}/coverage/parser.py +63 -57
  39. {coverage-7.16.1 → coverage-7.17.0}/coverage/phystokens.py +12 -10
  40. {coverage-7.16.1 → coverage-7.17.0}/coverage/pytracer.py +17 -1
  41. {coverage-7.16.1 → coverage-7.17.0}/coverage/regions.py +11 -3
  42. {coverage-7.16.1 → coverage-7.17.0}/coverage/report.py +10 -5
  43. {coverage-7.16.1 → coverage-7.17.0}/coverage/report_core.py +3 -0
  44. {coverage-7.16.1 → coverage-7.17.0}/coverage/results.py +2 -0
  45. {coverage-7.16.1 → coverage-7.17.0}/coverage/sqldata.py +43 -6
  46. {coverage-7.16.1 → coverage-7.17.0}/coverage/sqlitedb.py +13 -5
  47. {coverage-7.16.1 → coverage-7.17.0}/coverage/templite.py +2 -0
  48. {coverage-7.16.1 → coverage-7.17.0}/coverage/tomlconfig.py +7 -28
  49. {coverage-7.16.1 → coverage-7.17.0}/coverage/types.py +13 -0
  50. {coverage-7.16.1 → coverage-7.17.0}/coverage/version.py +1 -1
  51. {coverage-7.16.1 → coverage-7.17.0}/coverage/xmlreport.py +21 -6
  52. {coverage-7.16.1 → coverage-7.17.0/coverage.egg-info}/PKG-INFO +11 -13
  53. {coverage-7.16.1 → coverage-7.17.0}/coverage.egg-info/SOURCES.txt +10 -1
  54. coverage-7.17.0/coverage.egg-info/requires.txt +2 -0
  55. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_combine.rst +25 -3
  56. {coverage-7.16.1 → coverage-7.17.0}/doc/conf.py +3 -3
  57. {coverage-7.16.1 → coverage-7.17.0}/doc/config.rst +0 -4
  58. {coverage-7.16.1 → coverage-7.17.0}/doc/contributing.rst +8 -4
  59. {coverage-7.16.1 → coverage-7.17.0}/doc/index.rst +2 -2
  60. {coverage-7.16.1 → coverage-7.17.0}/doc/messages.rst +21 -0
  61. coverage-7.17.0/doc/requirements.txt +871 -0
  62. {coverage-7.16.1 → coverage-7.17.0}/howto.txt +4 -9
  63. {coverage-7.16.1 → coverage-7.17.0}/pyproject.toml +13 -1
  64. {coverage-7.16.1 → coverage-7.17.0}/requirements/dev.in +1 -0
  65. coverage-7.17.0/requirements/dev.txt +1144 -0
  66. coverage-7.17.0/requirements/js.in +9 -0
  67. coverage-7.17.0/requirements/js.txt +101 -0
  68. coverage-7.17.0/requirements/kit.txt +555 -0
  69. {coverage-7.16.1 → coverage-7.17.0}/requirements/light-threads.txt +129 -129
  70. {coverage-7.16.1 → coverage-7.17.0}/requirements/mypy.in +3 -0
  71. coverage-7.17.0/requirements/mypy.txt +716 -0
  72. coverage-7.17.0/requirements/pip.txt +36 -0
  73. {coverage-7.16.1 → coverage-7.17.0}/requirements/pytest.in +2 -1
  74. coverage-7.17.0/requirements/pytest.txt +347 -0
  75. coverage-7.17.0/requirements/tox.txt +74 -0
  76. {coverage-7.16.1 → coverage-7.17.0}/setup.py +7 -15
  77. {coverage-7.16.1 → coverage-7.17.0}/tests/conftest.py +2 -0
  78. {coverage-7.16.1 → coverage-7.17.0}/tests/coveragetest.py +2 -0
  79. {coverage-7.16.1 → coverage-7.17.0}/tests/goldtest.py +2 -0
  80. {coverage-7.16.1 → coverage-7.17.0}/tests/helpers.py +2 -16
  81. {coverage-7.16.1 → coverage-7.17.0}/tests/hypo.py +2 -6
  82. coverage-7.17.0/tests/js/collect_results.js +24 -0
  83. coverage-7.17.0/tests/js/run_js_tests.py +47 -0
  84. {coverage-7.16.1 → coverage-7.17.0}/tests/js/tests.js +40 -0
  85. {coverage-7.16.1 → coverage-7.17.0}/tests/mixins.py +5 -2
  86. {coverage-7.16.1 → coverage-7.17.0}/tests/osinfo.py +2 -0
  87. coverage-7.17.0/tests/oss-scanner/Dockerfile +41 -0
  88. coverage-7.17.0/tests/oss-scanner/README.rst +19 -0
  89. coverage-7.17.0/tests/oss-scanner/local_run.sh +19 -0
  90. coverage-7.17.0/tests/oss-scanner/project.yaml +8 -0
  91. coverage-7.17.0/tests/oss-scanner/threat_model.md +113 -0
  92. {coverage-7.16.1 → coverage-7.17.0}/tests/plugin_config.py +2 -0
  93. coverage-7.17.0/tests/smoke.py +20 -0
  94. {coverage-7.16.1 → coverage-7.17.0}/tests/strategies.py +2 -0
  95. {coverage-7.16.1 → coverage-7.17.0}/tests/test_api.py +35 -6
  96. {coverage-7.16.1 → coverage-7.17.0}/tests/test_arcs.py +162 -2
  97. {coverage-7.16.1 → coverage-7.17.0}/tests/test_bytecode.py +2 -2
  98. {coverage-7.16.1 → coverage-7.17.0}/tests/test_config.py +1 -69
  99. {coverage-7.16.1 → coverage-7.17.0}/tests/test_context.py +50 -4
  100. {coverage-7.16.1 → coverage-7.17.0}/tests/test_data.py +92 -5
  101. {coverage-7.16.1 → coverage-7.17.0}/tests/test_debug.py +6 -1
  102. {coverage-7.16.1 → coverage-7.17.0}/tests/test_filereporter.py +2 -1
  103. {coverage-7.16.1 → coverage-7.17.0}/tests/test_files.py +5 -0
  104. {coverage-7.16.1 → coverage-7.17.0}/tests/test_html.py +6 -5
  105. {coverage-7.16.1 → coverage-7.17.0}/tests/test_lcov.py +67 -20
  106. {coverage-7.16.1 → coverage-7.17.0}/tests/test_misc.py +0 -25
  107. {coverage-7.16.1 → coverage-7.17.0}/tests/test_oddball.py +101 -6
  108. {coverage-7.16.1 → coverage-7.17.0}/tests/test_parser.py +19 -0
  109. {coverage-7.16.1 → coverage-7.17.0}/tests/test_plugins.py +59 -0
  110. {coverage-7.16.1 → coverage-7.17.0}/tests/test_process.py +39 -5
  111. coverage-7.17.0/tests/test_regions.py +259 -0
  112. {coverage-7.16.1 → coverage-7.17.0}/tests/test_report.py +24 -6
  113. {coverage-7.16.1 → coverage-7.17.0}/tests/test_sqlitedb.py +1 -1
  114. {coverage-7.16.1 → coverage-7.17.0}/tests/test_venv.py +5 -3
  115. {coverage-7.16.1 → coverage-7.17.0}/tests/test_xml.py +79 -3
  116. {coverage-7.16.1 → coverage-7.17.0}/tests/testenv.py +10 -1
  117. {coverage-7.16.1 → coverage-7.17.0}/tox.ini +24 -11
  118. coverage-7.16.1/coverage.egg-info/requires.txt +0 -5
  119. coverage-7.16.1/doc/requirements.txt +0 -883
  120. coverage-7.16.1/requirements/dev.txt +0 -1114
  121. coverage-7.16.1/requirements/kit.txt +0 -542
  122. coverage-7.16.1/requirements/mypy.txt +0 -612
  123. coverage-7.16.1/requirements/pip.txt +0 -36
  124. coverage-7.16.1/requirements/pytest.txt +0 -340
  125. coverage-7.16.1/requirements/tox.txt +0 -125
  126. coverage-7.16.1/tests/qunit/jquery.tmpl.min.js +0 -10
  127. coverage-7.16.1/tests/test_regions.py +0 -112
  128. {coverage-7.16.1 → coverage-7.17.0}/.editorconfig +0 -0
  129. {coverage-7.16.1 → coverage-7.17.0}/.git-blame-ignore-revs +0 -0
  130. {coverage-7.16.1 → coverage-7.17.0}/.github/CODE_OF_CONDUCT.md +0 -0
  131. {coverage-7.16.1 → coverage-7.17.0}/.github/FUNDING.yml +0 -0
  132. {coverage-7.16.1 → coverage-7.17.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  133. {coverage-7.16.1 → coverage-7.17.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  134. {coverage-7.16.1 → coverage-7.17.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  135. {coverage-7.16.1 → coverage-7.17.0}/.github/ISSUE_TEMPLATE/support.md +0 -0
  136. {coverage-7.16.1 → coverage-7.17.0}/.github/SECURITY.md +0 -0
  137. {coverage-7.16.1 → coverage-7.17.0}/.github/dependabot.yml +0 -0
  138. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/dependency-review.yml +0 -0
  139. {coverage-7.16.1 → coverage-7.17.0}/.github/workflows/python-nightly.yml +0 -0
  140. {coverage-7.16.1 → coverage-7.17.0}/.github/zizmor.yml +0 -0
  141. {coverage-7.16.1 → coverage-7.17.0}/.ignore +0 -0
  142. {coverage-7.16.1 → coverage-7.17.0}/.readthedocs.yaml +0 -0
  143. {coverage-7.16.1 → coverage-7.17.0}/CITATION.cff +0 -0
  144. {coverage-7.16.1 → coverage-7.17.0}/LICENSE.txt +0 -0
  145. {coverage-7.16.1 → coverage-7.17.0}/NOTICE.txt +0 -0
  146. {coverage-7.16.1 → coverage-7.17.0}/__main__.py +0 -0
  147. {coverage-7.16.1 → coverage-7.17.0}/a1_coverage.pth +0 -0
  148. {coverage-7.16.1 → coverage-7.17.0}/ci/README.txt +0 -0
  149. {coverage-7.16.1 → coverage-7.17.0}/ci/comment_on_fixes.py +0 -0
  150. {coverage-7.16.1 → coverage-7.17.0}/ci/session.py +0 -0
  151. {coverage-7.16.1 → coverage-7.17.0}/ci/trigger_action.py +0 -0
  152. {coverage-7.16.1 → coverage-7.17.0}/ci/update_rtfd.py +0 -0
  153. {coverage-7.16.1 → coverage-7.17.0}/coverage/__main__.py +0 -0
  154. {coverage-7.16.1 → coverage-7.17.0}/coverage/collector.py +0 -0
  155. {coverage-7.16.1 → coverage-7.17.0}/coverage/core.py +0 -0
  156. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/datastack.c +0 -0
  157. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/datastack.h +0 -0
  158. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/filedisp.h +0 -0
  159. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/stats.h +0 -0
  160. {coverage-7.16.1 → coverage-7.17.0}/coverage/ctracer/tracer.h +0 -0
  161. {coverage-7.16.1 → coverage-7.17.0}/coverage/disposition.py +0 -0
  162. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/favicon_32.png +0 -0
  163. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/index.html +0 -0
  164. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/keybd_closed.png +0 -0
  165. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/pyfile.html +0 -0
  166. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/style.css +0 -0
  167. {coverage-7.16.1 → coverage-7.17.0}/coverage/htmlfiles/style.scss +0 -0
  168. {coverage-7.16.1 → coverage-7.17.0}/coverage/inorout.py +0 -0
  169. {coverage-7.16.1 → coverage-7.17.0}/coverage/multiproc.py +0 -0
  170. {coverage-7.16.1 → coverage-7.17.0}/coverage/patch.py +0 -0
  171. {coverage-7.16.1 → coverage-7.17.0}/coverage/plugin.py +0 -0
  172. {coverage-7.16.1 → coverage-7.17.0}/coverage/plugin_support.py +0 -0
  173. {coverage-7.16.1 → coverage-7.17.0}/coverage/pth_file.py +0 -0
  174. {coverage-7.16.1 → coverage-7.17.0}/coverage/py.typed +0 -0
  175. {coverage-7.16.1 → coverage-7.17.0}/coverage/python.py +0 -0
  176. {coverage-7.16.1 → coverage-7.17.0}/coverage/sysmon.py +0 -0
  177. {coverage-7.16.1 → coverage-7.17.0}/coverage/tracer.pyi +0 -0
  178. {coverage-7.16.1 → coverage-7.17.0}/coverage.egg-info/dependency_links.txt +0 -0
  179. {coverage-7.16.1 → coverage-7.17.0}/coverage.egg-info/entry_points.txt +0 -0
  180. {coverage-7.16.1 → coverage-7.17.0}/coverage.egg-info/not-zip-safe +0 -0
  181. {coverage-7.16.1 → coverage-7.17.0}/coverage.egg-info/top_level.txt +0 -0
  182. {coverage-7.16.1 → coverage-7.17.0}/doc/_static/coverage.css +0 -0
  183. {coverage-7.16.1 → coverage-7.17.0}/doc/api.rst +0 -0
  184. {coverage-7.16.1 → coverage-7.17.0}/doc/api_coverage.rst +0 -0
  185. {coverage-7.16.1 → coverage-7.17.0}/doc/api_coveragedata.rst +0 -0
  186. {coverage-7.16.1 → coverage-7.17.0}/doc/api_exceptions.rst +0 -0
  187. {coverage-7.16.1 → coverage-7.17.0}/doc/api_module.rst +0 -0
  188. {coverage-7.16.1 → coverage-7.17.0}/doc/api_plugin.rst +0 -0
  189. {coverage-7.16.1 → coverage-7.17.0}/doc/branch.rst +0 -0
  190. {coverage-7.16.1 → coverage-7.17.0}/doc/changes.rst +0 -0
  191. {coverage-7.16.1 → coverage-7.17.0}/doc/cog_helpers.py +0 -0
  192. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_annotate.rst +0 -0
  193. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_debug.rst +0 -0
  194. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_erase.rst +0 -0
  195. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_html.rst +0 -0
  196. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_json.rst +0 -0
  197. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_lcov.rst +0 -0
  198. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_report.rst +0 -0
  199. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_reporting.rst +0 -0
  200. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_run.rst +0 -0
  201. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/cmd_xml.rst +0 -0
  202. {coverage-7.16.1 → coverage-7.17.0}/doc/commands/index.rst +0 -0
  203. {coverage-7.16.1 → coverage-7.17.0}/doc/contexts.rst +0 -0
  204. {coverage-7.16.1 → coverage-7.17.0}/doc/dbschema.rst +0 -0
  205. {coverage-7.16.1 → coverage-7.17.0}/doc/dict.txt +0 -0
  206. {coverage-7.16.1 → coverage-7.17.0}/doc/excluding.rst +0 -0
  207. {coverage-7.16.1 → coverage-7.17.0}/doc/faq.rst +0 -0
  208. {coverage-7.16.1 → coverage-7.17.0}/doc/howitworks.rst +0 -0
  209. {coverage-7.16.1 → coverage-7.17.0}/doc/install.rst +0 -0
  210. {coverage-7.16.1 → coverage-7.17.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White.png +0 -0
  211. {coverage-7.16.1 → coverage-7.17.0}/doc/media/Tidelift_Logos_RGB_Tidelift_Shorthand_On-White_small.png +0 -0
  212. {coverage-7.16.1 → coverage-7.17.0}/doc/media/sleepy-snake-600.png +0 -0
  213. {coverage-7.16.1 → coverage-7.17.0}/doc/media/sleepy-snake-circle-150.png +0 -0
  214. {coverage-7.16.1 → coverage-7.17.0}/doc/migrating.rst +0 -0
  215. {coverage-7.16.1 → coverage-7.17.0}/doc/other.rst +0 -0
  216. {coverage-7.16.1 → coverage-7.17.0}/doc/plugins.rst +0 -0
  217. {coverage-7.16.1 → coverage-7.17.0}/doc/python-coverage.1.txt +0 -0
  218. {coverage-7.16.1 → coverage-7.17.0}/doc/requirements.in +0 -0
  219. {coverage-7.16.1 → coverage-7.17.0}/doc/sleepy.rst +0 -0
  220. {coverage-7.16.1 → coverage-7.17.0}/doc/source.rst +0 -0
  221. {coverage-7.16.1 → coverage-7.17.0}/doc/subprocess.rst +0 -0
  222. {coverage-7.16.1 → coverage-7.17.0}/doc/trouble.rst +0 -0
  223. {coverage-7.16.1 → coverage-7.17.0}/doc/whatsnew5x.rst +0 -0
  224. {coverage-7.16.1 → coverage-7.17.0}/igor.py +0 -0
  225. {coverage-7.16.1 → coverage-7.17.0}/lab/README.txt +0 -0
  226. {coverage-7.16.1 → coverage-7.17.0}/lab/branches.py +0 -0
  227. {coverage-7.16.1 → coverage-7.17.0}/lab/compare_times.sh +0 -0
  228. {coverage-7.16.1 → coverage-7.17.0}/lab/coverage-04.dtd +0 -0
  229. {coverage-7.16.1 → coverage-7.17.0}/lab/extract_code.py +0 -0
  230. {coverage-7.16.1 → coverage-7.17.0}/lab/goals.py +0 -0
  231. {coverage-7.16.1 → coverage-7.17.0}/lab/hack_pyc.py +0 -0
  232. {coverage-7.16.1 → coverage-7.17.0}/lab/notes/arcs-to-branches.txt +0 -0
  233. {coverage-7.16.1 → coverage-7.17.0}/lab/notes/bug1303.txt +0 -0
  234. {coverage-7.16.1 → coverage-7.17.0}/lab/notes/pypy-738-decorated-functions.txt +0 -0
  235. {coverage-7.16.1 → coverage-7.17.0}/lab/parse_all.py +0 -0
  236. {coverage-7.16.1 → coverage-7.17.0}/lab/parser.py +0 -0
  237. {coverage-7.16.1 → coverage-7.17.0}/lab/pick.py +0 -0
  238. {coverage-7.16.1 → coverage-7.17.0}/lab/platform_info.py +0 -0
  239. {coverage-7.16.1 → coverage-7.17.0}/lab/run_sysmon.py +0 -0
  240. {coverage-7.16.1 → coverage-7.17.0}/lab/run_trace.py +0 -0
  241. {coverage-7.16.1 → coverage-7.17.0}/lab/select_contexts.py +0 -0
  242. {coverage-7.16.1 → coverage-7.17.0}/lab/show_platform.py +0 -0
  243. {coverage-7.16.1 → coverage-7.17.0}/lab/show_pyc.py +0 -0
  244. {coverage-7.16.1 → coverage-7.17.0}/lab/treetopy.sh +0 -0
  245. {coverage-7.16.1 → coverage-7.17.0}/lab/warn_executed.py +0 -0
  246. {coverage-7.16.1 → coverage-7.17.0}/lab/warn_executed.toml +0 -0
  247. {coverage-7.16.1 → coverage-7.17.0}/metacov.ini +0 -0
  248. {coverage-7.16.1 → coverage-7.17.0}/requirements/kit.in +0 -0
  249. {coverage-7.16.1 → coverage-7.17.0}/requirements/light-threads.in +0 -0
  250. {coverage-7.16.1 → coverage-7.17.0}/requirements/pins.txt +0 -0
  251. {coverage-7.16.1 → coverage-7.17.0}/requirements/pip.in +0 -0
  252. {coverage-7.16.1 → coverage-7.17.0}/requirements/tox.in +0 -0
  253. {coverage-7.16.1 → coverage-7.17.0}/setup.cfg +0 -0
  254. {coverage-7.16.1 → coverage-7.17.0}/tests/__init__.py +0 -0
  255. {coverage-7.16.1 → coverage-7.17.0}/tests/covmodzip1.py +0 -0
  256. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/README.rst +0 -0
  257. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/anno_dir/multi.py,cover +0 -0
  258. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475___init__.py,cover +0 -0
  259. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/anno_dir/z_80084bf2fba02475_a.py,cover +0 -0
  260. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2___init__.py,cover +0 -0
  261. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/anno_dir/z_b039179a8a4ce2c2_b.py,cover +0 -0
  262. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/encodings/utf8.py,cover +0 -0
  263. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/mae/mae.py,cover +0 -0
  264. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/multi/a/__init__.py,cover +0 -0
  265. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/multi/a/a.py,cover +0 -0
  266. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/multi/b/__init__.py,cover +0 -0
  267. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/multi/b/b.py,cover +0 -0
  268. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/multi/multi.py,cover +0 -0
  269. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/annotate/white/white.py,cover +0 -0
  270. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/Makefile +0 -0
  271. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/a/a_py.html +0 -0
  272. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/a/class_index.html +0 -0
  273. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/a/function_index.html +0 -0
  274. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/a/index.html +0 -0
  275. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/b_branch/b_py.html +0 -0
  276. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/b_branch/class_index.html +0 -0
  277. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/b_branch/function_index.html +0 -0
  278. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/b_branch/index.html +0 -0
  279. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/bom/bom_py.html +0 -0
  280. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/bom/class_index.html +0 -0
  281. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/bom/function_index.html +0 -0
  282. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/bom/index.html +0 -0
  283. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/contexts/class_index.html +0 -0
  284. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/contexts/function_index.html +0 -0
  285. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/contexts/index.html +0 -0
  286. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/contexts/two_tests_py.html +0 -0
  287. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/isolatin1/class_index.html +0 -0
  288. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/isolatin1/function_index.html +0 -0
  289. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/isolatin1/index.html +0 -0
  290. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/isolatin1/isolatin1_py.html +0 -0
  291. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/multiline/class_index.html +0 -0
  292. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/multiline/function_index.html +0 -0
  293. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/multiline/index.html +0 -0
  294. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/multiline/multiline_py.html +0 -0
  295. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/class_index.html +0 -0
  296. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/function_index.html +0 -0
  297. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/index.html +0 -0
  298. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/m1_py.html +0 -0
  299. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/m2_py.html +0 -0
  300. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/m3_py.html +0 -0
  301. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_1/main_py.html +0 -0
  302. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/class_index.html +0 -0
  303. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/function_index.html +0 -0
  304. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/index.html +0 -0
  305. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/m2_py.html +0 -0
  306. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/m3_py.html +0 -0
  307. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_2/main_py.html +0 -0
  308. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_3/class_index.html +0 -0
  309. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_3/function_index.html +0 -0
  310. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_3/index.html +0 -0
  311. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_3/m3_py.html +0 -0
  312. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_3/main_py.html +0 -0
  313. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/class_index.html +0 -0
  314. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/function_index.html +0 -0
  315. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/index.html +0 -0
  316. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/m1_py.html +0 -0
  317. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/m3_py.html +0 -0
  318. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_4/main_py.html +0 -0
  319. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_5/class_index.html +0 -0
  320. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_5/function_index.html +0 -0
  321. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_5/index.html +0 -0
  322. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_5/m1_py.html +0 -0
  323. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/omit_5/main_py.html +0 -0
  324. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/other/blah_blah_other_py.html +0 -0
  325. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/other/class_index.html +0 -0
  326. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/other/function_index.html +0 -0
  327. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/other/here_py.html +0 -0
  328. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/other/index.html +0 -0
  329. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/partial/class_index.html +0 -0
  330. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/partial/function_index.html +0 -0
  331. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/partial/index.html +0 -0
  332. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/partial/partial_py.html +0 -0
  333. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/a_py.html +0 -0
  334. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/class_index.html +0 -0
  335. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/function_index.html +0 -0
  336. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/index.html +0 -0
  337. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/myextra.css +0 -0
  338. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/styled/style.css +0 -0
  339. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/support/coverage_html_cb_dd2e7eb5.js +0 -0
  340. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/support/favicon_32_cb_c827f16f.png +0 -0
  341. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/support/keybd_closed_cb_900cfef5.png +0 -0
  342. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/support/style_cb_a90a112a.css +0 -0
  343. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/unicode/class_index.html +0 -0
  344. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/unicode/function_index.html +0 -0
  345. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/unicode/index.html +0 -0
  346. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/html/unicode/unicode_py.html +0 -0
  347. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/testing/getty/gettysburg.txt +0 -0
  348. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/testing/xml/output.xml +0 -0
  349. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/xml/x_xml/coverage.xml +0 -0
  350. {coverage-7.16.1 → coverage-7.17.0}/tests/gold/xml/y_xml_branch/coverage.xml +0 -0
  351. {coverage-7.16.1 → coverage-7.17.0}/tests/js/index.html +0 -0
  352. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/__init__.py +0 -0
  353. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/afile.odd.py +0 -0
  354. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/afile.py +0 -0
  355. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb/__init__.py +0 -0
  356. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb/bfile.odd.py +0 -0
  357. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb/bfile.py +0 -0
  358. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb/cc/__init__.py +0 -0
  359. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb/cc/cfile.py +0 -0
  360. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/bb.odd/bfile.py +0 -0
  361. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/aa/zfile.py +0 -0
  362. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/ambiguous/__init__.py +0 -0
  363. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/ambiguous/pkg1/__init__.py +0 -0
  364. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/ambiguous/pkg1/ambiguous.py +0 -0
  365. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/checkspec.py +0 -0
  366. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/covmod1.py +0 -0
  367. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/namespace_420/sub1/__init__.py +0 -0
  368. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/__init__.py +0 -0
  369. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/__main__.py +0 -0
  370. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/p1a.py +0 -0
  371. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/p1b.py +0 -0
  372. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/p1c.py +0 -0
  373. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/runmod2.py +0 -0
  374. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/sub/__init__.py +0 -0
  375. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/sub/__main__.py +0 -0
  376. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/sub/ps1a.py +0 -0
  377. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg1/sub/runmod3.py +0 -0
  378. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg2/__init__.py +0 -0
  379. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg2/p2a.py +0 -0
  380. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/pkg2/p2b.py +0 -0
  381. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/plugins/__init__.py +0 -0
  382. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/plugins/a_plugin.py +0 -0
  383. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/plugins/another.py +0 -0
  384. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/process_test/__init__.py +0 -0
  385. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/process_test/try_execfile.py +0 -0
  386. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/runmod1.py +0 -0
  387. {coverage-7.16.1 → coverage-7.17.0}/tests/modules/usepkgs.py +0 -0
  388. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/namespace_420/sub2/__init__.py +0 -0
  389. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/__init__.py +0 -0
  390. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/othera.py +0 -0
  391. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/otherb.py +0 -0
  392. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/sub/__init__.py +0 -0
  393. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/sub/osa.py +0 -0
  394. {coverage-7.16.1 → coverage-7.17.0}/tests/moremodules/othermods/sub/osb.py +0 -0
  395. {coverage-7.16.1 → coverage-7.17.0}/tests/plugin1.py +0 -0
  396. {coverage-7.16.1 → coverage-7.17.0}/tests/plugin2.py +0 -0
  397. {coverage-7.16.1 → coverage-7.17.0}/tests/select_plugin.py +0 -0
  398. {coverage-7.16.1 → coverage-7.17.0}/tests/stress_phystoken.tok +0 -0
  399. {coverage-7.16.1 → coverage-7.17.0}/tests/stress_phystoken_dos.tok +0 -0
  400. {coverage-7.16.1 → coverage-7.17.0}/tests/test_annotate.py +0 -0
  401. {coverage-7.16.1 → coverage-7.17.0}/tests/test_cmdline.py +0 -0
  402. {coverage-7.16.1 → coverage-7.17.0}/tests/test_collector.py +0 -0
  403. {coverage-7.16.1 → coverage-7.17.0}/tests/test_concurrency.py +0 -0
  404. {coverage-7.16.1 → coverage-7.17.0}/tests/test_core.py +0 -0
  405. {coverage-7.16.1 → coverage-7.17.0}/tests/test_coverage.py +0 -0
  406. {coverage-7.16.1 → coverage-7.17.0}/tests/test_execfile.py +0 -0
  407. {coverage-7.16.1 → coverage-7.17.0}/tests/test_goldtest.py +0 -0
  408. {coverage-7.16.1 → coverage-7.17.0}/tests/test_json.py +0 -0
  409. {coverage-7.16.1 → coverage-7.17.0}/tests/test_mixins.py +0 -0
  410. {coverage-7.16.1 → coverage-7.17.0}/tests/test_numbits.py +0 -0
  411. {coverage-7.16.1 → coverage-7.17.0}/tests/test_phystokens.py +0 -0
  412. {coverage-7.16.1 → coverage-7.17.0}/tests/test_python.py +0 -0
  413. {coverage-7.16.1 → coverage-7.17.0}/tests/test_report_common.py +0 -0
  414. {coverage-7.16.1 → coverage-7.17.0}/tests/test_report_core.py +0 -0
  415. {coverage-7.16.1 → coverage-7.17.0}/tests/test_results.py +0 -0
  416. {coverage-7.16.1 → coverage-7.17.0}/tests/test_setup.py +0 -0
  417. {coverage-7.16.1 → coverage-7.17.0}/tests/test_sysmon.py +0 -0
  418. {coverage-7.16.1 → coverage-7.17.0}/tests/test_templite.py +0 -0
  419. {coverage-7.16.1 → coverage-7.17.0}/tests/test_testing.py +0 -0
  420. {coverage-7.16.1 → coverage-7.17.0}/tests/test_version.py +0 -0
  421. {coverage-7.16.1 → coverage-7.17.0}/tests/zipsrc/zip1/__init__.py +0 -0
  422. {coverage-7.16.1 → coverage-7.17.0}/tests/zipsrc/zip1/zip1.py +0 -0
@@ -55,7 +55,7 @@ jobs:
55
55
 
56
56
  # Initializes the CodeQL tools for scanning.
57
57
  - name: Initialize CodeQL
58
- uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
58
+ uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
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@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
69
+ uses: github/codeql-action/autobuild@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
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@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9
83
+ uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
@@ -87,7 +87,6 @@ jobs:
87
87
  # tox.ini so that tox will run properly. PYVERSIONS
88
88
  # Available versions:
89
89
  # https://github.com/actions/python-versions/blob/main/versions-manifest.json
90
- - "3.10"
91
90
  - "3.11"
92
91
  - "3.12"
93
92
  - "3.13"
@@ -95,19 +94,11 @@ jobs:
95
94
  - "3.14t"
96
95
  - "3.15"
97
96
  - "3.15t"
98
- - "pypy-3.10"
99
97
  - "pypy-3.11"
100
98
  exclude:
101
99
  # Mac PyPy always takes the longest, and doesn't add anything.
102
- - os: macos
103
- python-version: "pypy-3.10"
104
100
  - os: macos
105
101
  python-version: "pypy-3.11"
106
- # Windows pypy 3.10 gets stuck with PyPy 7.3.15. I hope to
107
- # unstick them, but I don't want that to block all other progress, so
108
- # skip them for now.
109
- - os: windows
110
- python-version: "pypy-3.10"
111
102
  # If we need to tweak the os version we can do it with an include like
112
103
  # this:
113
104
  # include:
@@ -164,7 +155,7 @@ jobs:
164
155
  mv .metacov ".metacov.$MATRIX_ID"
165
156
 
166
157
  - name: "Upload coverage data"
167
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
158
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
168
159
  with:
169
160
  name: metacov-${{ env.MATRIX_ID }}
170
161
  path: .metacov.*
@@ -189,12 +180,9 @@ jobs:
189
180
  - name: "Set up Python"
190
181
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
191
182
  with:
192
- python-version: "3.10" # Minimum of PYVERSIONS
193
- # At a certain point, installing dependencies failed on pypy 3.9 and
194
- # 3.10 on Windows. Commenting out the cache here fixed it. Someday
195
- # try using the cache again.
196
- #cache: pip
197
- #cache-dependency-path: 'requirements/*.txt'
183
+ python-version: "3.11" # Minimum of PYVERSIONS
184
+ cache: pip
185
+ cache-dependency-path: 'requirements/*.txt'
198
186
 
199
187
  - name: "Show environment"
200
188
  run: |
@@ -211,7 +199,7 @@ jobs:
211
199
  python igor.py zip_mods
212
200
 
213
201
  - name: "Download coverage data"
214
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
202
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
215
203
  with:
216
204
  pattern: metacov-*
217
205
  merge-multiple: true
@@ -225,14 +213,14 @@ jobs:
225
213
  python igor.py combine_html
226
214
 
227
215
  - name: "Upload HTML report"
228
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
216
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
229
217
  with:
230
218
  name: html_report
231
219
  path: htmlcov
232
220
  include-hidden-files: true
233
221
 
234
222
  - name: "Upload other reports"
235
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
223
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
236
224
  with:
237
225
  name: json_xml
238
226
  path: |
@@ -262,6 +250,14 @@ jobs:
262
250
  echo '***** Total coverage is less than 90%!'
263
251
  exit 1
264
252
  fi
253
+
254
+ # Files that have reached 100% coverage should stay that way.
255
+ # shellcheck disable=SC2046
256
+ if ! python lab/goals.py --file 100 $(grep -l -R 'pragma: enforce 100% coverage'); then
257
+ echo '***** Coverage dropped for a 100% file!'
258
+ exit 1
259
+ fi
260
+
265
261
  # Absolutely all of our test code should be covered.
266
262
  if ! python lab/goals.py --file 100 "tests/test_*.py"; then
267
263
  echo '***** Coverage of test files must be 100%!'
@@ -331,7 +327,7 @@ jobs:
331
327
 
332
328
  - name: "Download coverage HTML report"
333
329
  if: ${{ github.ref == 'refs/heads/main' }}
334
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
330
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
335
331
  with:
336
332
  name: html_report
337
333
  path: reports_repo/${{ env.report_dir }}
@@ -36,7 +36,7 @@ env:
36
36
  PIP_DISABLE_PIP_VERSION_CHECK: 1
37
37
  # PYVERSIONS: changing the list of versions will change the number of
38
38
  # expected distributions. This must match the same number in publish.yml.
39
- EXPECTED: 121
39
+ EXPECTED: 119
40
40
 
41
41
  permissions:
42
42
  contents: read
@@ -47,10 +47,10 @@ concurrency:
47
47
 
48
48
  jobs:
49
49
  wheels:
50
- name: "${{ matrix.py }} ${{ matrix.os }} ${{ matrix.arch }} wheels"
50
+ name: "${{ matrix.py }} ${{ matrix.platform || matrix.os }} ${{ matrix.arch }} wheels"
51
51
  runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
52
52
  env:
53
- MATRIX_ID: "${{ matrix.py }}-${{ matrix.os }}-${{ matrix.arch }}"
53
+ MATRIX_ID: "${{ matrix.py }}-${{ matrix.platform || matrix.os }}-${{ matrix.arch }}"
54
54
  strategy:
55
55
  matrix:
56
56
  include:
@@ -79,7 +79,7 @@ jobs:
79
79
  # # of Python: https://cibuildwheel.readthedocs.io/en/stable/options/#enable
80
80
  # # When changing this, also adjust SHIPPING_WHEELS in env.py.
81
81
  #
82
- # pys = ["cp310", "cp311", "cp312", "cp313", "cp314", "cp315"]
82
+ # pys = ["cp311", "cp312", "cp313", "cp314", "cp315"]
83
83
  # cipy = "3.11" # PYVERSIONS, default for cibuildwheel
84
84
  #
85
85
  # # Some OS/arch combinations need overrides for the Python versions:
@@ -88,6 +88,14 @@ jobs:
88
88
  # ("windows", "ARM64"): ["cp311", "cp312", "cp313", "cp314", "cp315"],
89
89
  # }
90
90
  #
91
+ # # Mobile platforms: cibuildwheel only supports these from cp313 onward,
92
+ # # and each tuple key is (os, platform, os-version-or-None).
93
+ # mobile_pys = ["cp313", "cp314", "cp315"]
94
+ # mobile_os_archs = {
95
+ # ("ubuntu", "android", None): ["arm64_v8a", "x86_64"],
96
+ # ("macos", "ios", "26"): ["arm64_iphoneos", "arm64_iphonesimulator"],
97
+ # }
98
+ #
91
99
  # #----- ^^^ ---------------------- ^^^ -----
92
100
  #
93
101
  # import json
@@ -101,7 +109,7 @@ jobs:
101
109
  # "cipy": cipy,
102
110
  # }
103
111
  # if the_os == "macos":
104
- # them["os-version"] = "14"
112
+ # them["os-version"] = "26"
105
113
  # if the_os == "windows" and the_arch == "ARM64":
106
114
  # them["os-version"] = "11-arm"
107
115
  # # them["cipy"] = "3.11"
@@ -111,56 +119,60 @@ jobs:
111
119
  # if the_arch == "ppc64le":
112
120
  # them["os-version"] = "24.04-ppc64le"
113
121
  # print(f"- {json.dumps(them)}")
122
+ # for (the_os, the_platform, the_os_version), archs in mobile_os_archs.items():
123
+ # for the_arch in archs:
124
+ # for the_py in mobile_pys:
125
+ # them = {
126
+ # "os": the_os,
127
+ # "py": the_py,
128
+ # "arch": the_arch,
129
+ # "cipy": cipy,
130
+ # "platform": the_platform,
131
+ # }
132
+ # if the_os_version is not None:
133
+ # them["os-version"] = the_os_version
134
+ # print(f"- {json.dumps(them)}")
114
135
  # ]]]
115
- - {"os": "ubuntu", "py": "cp310", "arch": "x86_64", "cipy": "3.11"}
116
136
  - {"os": "ubuntu", "py": "cp311", "arch": "x86_64", "cipy": "3.11"}
117
137
  - {"os": "ubuntu", "py": "cp312", "arch": "x86_64", "cipy": "3.11"}
118
138
  - {"os": "ubuntu", "py": "cp313", "arch": "x86_64", "cipy": "3.11"}
119
139
  - {"os": "ubuntu", "py": "cp314", "arch": "x86_64", "cipy": "3.11"}
120
140
  - {"os": "ubuntu", "py": "cp315", "arch": "x86_64", "cipy": "3.11"}
121
- - {"os": "ubuntu", "py": "cp310", "arch": "i686", "cipy": "3.11"}
122
141
  - {"os": "ubuntu", "py": "cp311", "arch": "i686", "cipy": "3.11"}
123
142
  - {"os": "ubuntu", "py": "cp312", "arch": "i686", "cipy": "3.11"}
124
143
  - {"os": "ubuntu", "py": "cp313", "arch": "i686", "cipy": "3.11"}
125
144
  - {"os": "ubuntu", "py": "cp314", "arch": "i686", "cipy": "3.11"}
126
145
  - {"os": "ubuntu", "py": "cp315", "arch": "i686", "cipy": "3.11"}
127
- - {"os": "ubuntu", "py": "cp310", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
128
146
  - {"os": "ubuntu", "py": "cp311", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
129
147
  - {"os": "ubuntu", "py": "cp312", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
130
148
  - {"os": "ubuntu", "py": "cp313", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
131
149
  - {"os": "ubuntu", "py": "cp314", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
132
150
  - {"os": "ubuntu", "py": "cp315", "arch": "aarch64", "cipy": "3.11", "os-version": "22.04-arm"}
133
- - {"os": "ubuntu", "py": "cp310", "arch": "riscv64", "cipy": "3.11"}
134
151
  - {"os": "ubuntu", "py": "cp311", "arch": "riscv64", "cipy": "3.11"}
135
152
  - {"os": "ubuntu", "py": "cp312", "arch": "riscv64", "cipy": "3.11"}
136
153
  - {"os": "ubuntu", "py": "cp313", "arch": "riscv64", "cipy": "3.11"}
137
154
  - {"os": "ubuntu", "py": "cp314", "arch": "riscv64", "cipy": "3.11"}
138
155
  - {"os": "ubuntu", "py": "cp315", "arch": "riscv64", "cipy": "3.11"}
139
- - {"os": "ubuntu", "py": "cp310", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
140
156
  - {"os": "ubuntu", "py": "cp311", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
141
157
  - {"os": "ubuntu", "py": "cp312", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
142
158
  - {"os": "ubuntu", "py": "cp313", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
143
159
  - {"os": "ubuntu", "py": "cp314", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
144
160
  - {"os": "ubuntu", "py": "cp315", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
145
- - {"os": "macos", "py": "cp310", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
146
- - {"os": "macos", "py": "cp311", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
147
- - {"os": "macos", "py": "cp312", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
148
- - {"os": "macos", "py": "cp313", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
149
- - {"os": "macos", "py": "cp314", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
150
- - {"os": "macos", "py": "cp315", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
151
- - {"os": "macos", "py": "cp310", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
152
- - {"os": "macos", "py": "cp311", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
153
- - {"os": "macos", "py": "cp312", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
154
- - {"os": "macos", "py": "cp313", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
155
- - {"os": "macos", "py": "cp314", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
156
- - {"os": "macos", "py": "cp315", "arch": "x86_64", "cipy": "3.11", "os-version": "14"}
157
- - {"os": "windows", "py": "cp310", "arch": "x86", "cipy": "3.11"}
161
+ - {"os": "macos", "py": "cp311", "arch": "arm64", "cipy": "3.11", "os-version": "26"}
162
+ - {"os": "macos", "py": "cp312", "arch": "arm64", "cipy": "3.11", "os-version": "26"}
163
+ - {"os": "macos", "py": "cp313", "arch": "arm64", "cipy": "3.11", "os-version": "26"}
164
+ - {"os": "macos", "py": "cp314", "arch": "arm64", "cipy": "3.11", "os-version": "26"}
165
+ - {"os": "macos", "py": "cp315", "arch": "arm64", "cipy": "3.11", "os-version": "26"}
166
+ - {"os": "macos", "py": "cp311", "arch": "x86_64", "cipy": "3.11", "os-version": "26"}
167
+ - {"os": "macos", "py": "cp312", "arch": "x86_64", "cipy": "3.11", "os-version": "26"}
168
+ - {"os": "macos", "py": "cp313", "arch": "x86_64", "cipy": "3.11", "os-version": "26"}
169
+ - {"os": "macos", "py": "cp314", "arch": "x86_64", "cipy": "3.11", "os-version": "26"}
170
+ - {"os": "macos", "py": "cp315", "arch": "x86_64", "cipy": "3.11", "os-version": "26"}
158
171
  - {"os": "windows", "py": "cp311", "arch": "x86", "cipy": "3.11"}
159
172
  - {"os": "windows", "py": "cp312", "arch": "x86", "cipy": "3.11"}
160
173
  - {"os": "windows", "py": "cp313", "arch": "x86", "cipy": "3.11"}
161
174
  - {"os": "windows", "py": "cp314", "arch": "x86", "cipy": "3.11"}
162
175
  - {"os": "windows", "py": "cp315", "arch": "x86", "cipy": "3.11"}
163
- - {"os": "windows", "py": "cp310", "arch": "AMD64", "cipy": "3.11"}
164
176
  - {"os": "windows", "py": "cp311", "arch": "AMD64", "cipy": "3.11"}
165
177
  - {"os": "windows", "py": "cp312", "arch": "AMD64", "cipy": "3.11"}
166
178
  - {"os": "windows", "py": "cp313", "arch": "AMD64", "cipy": "3.11"}
@@ -171,7 +183,19 @@ jobs:
171
183
  - {"os": "windows", "py": "cp313", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
172
184
  - {"os": "windows", "py": "cp314", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
173
185
  - {"os": "windows", "py": "cp315", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
174
- # [[[end]]] (sum: N6DRns0iG/)
186
+ - {"os": "ubuntu", "py": "cp313", "arch": "arm64_v8a", "cipy": "3.11", "platform": "android"}
187
+ - {"os": "ubuntu", "py": "cp314", "arch": "arm64_v8a", "cipy": "3.11", "platform": "android"}
188
+ - {"os": "ubuntu", "py": "cp315", "arch": "arm64_v8a", "cipy": "3.11", "platform": "android"}
189
+ - {"os": "ubuntu", "py": "cp313", "arch": "x86_64", "cipy": "3.11", "platform": "android"}
190
+ - {"os": "ubuntu", "py": "cp314", "arch": "x86_64", "cipy": "3.11", "platform": "android"}
191
+ - {"os": "ubuntu", "py": "cp315", "arch": "x86_64", "cipy": "3.11", "platform": "android"}
192
+ - {"os": "macos", "py": "cp313", "arch": "arm64_iphoneos", "cipy": "3.11", "platform": "ios", "os-version": "26"}
193
+ - {"os": "macos", "py": "cp314", "arch": "arm64_iphoneos", "cipy": "3.11", "platform": "ios", "os-version": "26"}
194
+ - {"os": "macos", "py": "cp315", "arch": "arm64_iphoneos", "cipy": "3.11", "platform": "ios", "os-version": "26"}
195
+ - {"os": "macos", "py": "cp313", "arch": "arm64_iphonesimulator", "cipy": "3.11", "platform": "ios", "os-version": "26"}
196
+ - {"os": "macos", "py": "cp314", "arch": "arm64_iphonesimulator", "cipy": "3.11", "platform": "ios", "os-version": "26"}
197
+ - {"os": "macos", "py": "cp315", "arch": "arm64_iphonesimulator", "cipy": "3.11", "platform": "ios", "os-version": "26"}
198
+ # [[[end]]] (sum: f3kjK8N7/g)
175
199
  # ^^^^^^^^^^^^^^^
176
200
  # If a check fails and points to this checksum line, it means you edited
177
201
  # the matrix directly instead of editing the Python code in the comment
@@ -212,7 +236,7 @@ jobs:
212
236
 
213
237
  - name: "Set up QEMU"
214
238
  if: ${{ matrix.arch == 'riscv64' }}
215
- uses: docker/setup-qemu-action@1f40c72289eff860ee54a304f1438e3cff362e0a # v4.3.0
239
+ uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0
216
240
 
217
241
  - name: "Show environment"
218
242
  run: |
@@ -221,10 +245,10 @@ jobs:
221
245
 
222
246
  - name: "Build binary wheels"
223
247
  env:
248
+ CIBW_PLATFORM: ${{ matrix.platform || 'auto' }}
224
249
  CIBW_BUILD: ${{ matrix.py }}*-*
225
250
  CIBW_ARCHS: ${{ matrix.arch }}
226
251
  CIBW_ENVIRONMENT: PIP_DISABLE_PIP_VERSION_CHECK=1
227
- CIBW_TEST_COMMAND: python -c "from coverage.tracer import CTracer; print('CTracer OK!')"
228
252
  run: |
229
253
  python -m cibuildwheel --output-dir wheelhouse
230
254
 
@@ -237,7 +261,7 @@ jobs:
237
261
  python -m twine check wheelhouse/*
238
262
 
239
263
  - name: "Upload binary wheels"
240
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
264
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
241
265
  with:
242
266
  name: dist-${{ env.MATRIX_ID }}
243
267
  path: wheelhouse/*.whl
@@ -278,7 +302,7 @@ jobs:
278
302
  python -m twine check dist/*
279
303
 
280
304
  - name: "Upload non-binary artifacts"
281
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
305
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
282
306
  with:
283
307
  name: dist-non-binary
284
308
  path: dist/*
@@ -296,7 +320,7 @@ jobs:
296
320
  id-token: write # Needed for signing artifacts
297
321
  steps:
298
322
  - name: "Download artifacts"
299
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
323
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
300
324
  with:
301
325
  pattern: dist-*
302
326
  merge-multiple: true
@@ -318,7 +342,7 @@ jobs:
318
342
  ls -alR
319
343
 
320
344
  - name: "Upload signatures"
321
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
345
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
322
346
  with:
323
347
  name: signatures
324
348
  path: "*.sigstore.json"
@@ -17,7 +17,7 @@ defaults:
17
17
  env:
18
18
  # PYVERSIONS: changing the list of versions will change the number of
19
19
  # expected distributions. This must match the same number in kit.yml.
20
- EXPECTED: 121
20
+ EXPECTED: 119
21
21
 
22
22
  permissions:
23
23
  contents: read
@@ -69,7 +69,7 @@ jobs:
69
69
 
70
70
  steps:
71
71
  - name: "Download dists"
72
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
72
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
73
73
  with:
74
74
  repository: "coveragepy/coveragepy"
75
75
  run-id: ${{ needs.find-run.outputs.run-id }}
@@ -110,7 +110,7 @@ jobs:
110
110
 
111
111
  steps:
112
112
  - name: "Download dists"
113
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
113
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
114
114
  with:
115
115
  repository: "coveragepy/coveragepy"
116
116
  run-id: ${{ needs.find-run.outputs.run-id }}
@@ -82,7 +82,7 @@ jobs:
82
82
  - name: "Install Python"
83
83
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
84
84
  with:
85
- python-version: "3.10" # Minimum of PYVERSIONS
85
+ python-version: "3.11" # Minimum of PYVERSIONS
86
86
  cache: pip
87
87
  cache-dependency-path: 'requirements/*.txt'
88
88
 
@@ -112,7 +112,7 @@ jobs:
112
112
  - name: "Install Python"
113
113
  uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
114
114
  with:
115
- python-version: "3.10" # Minimum of PYVERSIONS
115
+ python-version: "3.11" # Minimum of PYVERSIONS
116
116
  cache: pip
117
117
  cache-dependency-path: 'requirements/*.txt'
118
118
 
@@ -185,7 +185,7 @@ jobs:
185
185
  persist-credentials: false
186
186
 
187
187
  - name: "Install uv"
188
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
188
+ uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
189
189
  with:
190
190
  enable-cache: false
191
191
 
@@ -36,6 +36,7 @@ jobs:
36
36
  pull-requests: read # Needed for this check to run on pull requests
37
37
  outputs:
38
38
  run_tests: ${{ steps.filter.outputs.run_tests }}
39
+ run_js_tests: ${{ steps.filter.outputs.run_js_tests }}
39
40
  steps:
40
41
  - name: "Check out the repo"
41
42
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -57,6 +58,12 @@ jobs:
57
58
  - "tox.ini"
58
59
  - "requirements/*.txt"
59
60
  - "tests/gold/**"
61
+ run_js_tests:
62
+ - "coverage/htmlfiles/*.js"
63
+ - "tests/js/**"
64
+ - ".github/workflows/testsuite.yml"
65
+ - "tox.ini"
66
+ - "requirements/js.txt"
60
67
 
61
68
  tests:
62
69
  name: "${{ matrix.python-version }} on ${{ matrix.os }}"
@@ -87,7 +94,6 @@ jobs:
87
94
  # Available versions:
88
95
  # https://github.com/actions/python-versions/blob/main/versions-manifest.json
89
96
  # https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#available-versions-of-python-and-pypy
90
- - "3.10"
91
97
  - "3.11"
92
98
  - "3.12"
93
99
  - "3.13"
@@ -95,7 +101,6 @@ jobs:
95
101
  - "3.14t"
96
102
  - "3.15"
97
103
  - "3.15t"
98
- - "pypy-3.10"
99
104
  - "pypy-3.11"
100
105
 
101
106
  #
@@ -161,6 +166,40 @@ jobs:
161
166
  # `exit 1` makes sure that the job remains red with flaky runs
162
167
  python -m tox -- -rfsEX --lf -vvvvv && exit 1
163
168
 
169
+ js_tests:
170
+ name: "JavaScript tests"
171
+ runs-on: ubuntu-latest
172
+ timeout-minutes: 15
173
+
174
+ # Don't run tests if the branch name includes "-notests".
175
+ # Only run tests if files that affect the JavaScript tests have changed.
176
+ needs: changed
177
+ if:
178
+ needs.changed.outputs.run_js_tests == 'true'
179
+ && !contains(github.ref, '-notests')
180
+
181
+ steps:
182
+ - name: "Check out the repo"
183
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
184
+ with:
185
+ persist-credentials: false
186
+
187
+ - name: "Set up Python"
188
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
189
+ with:
190
+ python-version: "3.11" # Minimum of PYVERSIONS
191
+ cache: pip
192
+ cache-dependency-path: 'requirements/*.txt'
193
+
194
+ - name: "Install dependencies"
195
+ run: |
196
+ set -xe
197
+ python -m pip install -r requirements/tox.txt
198
+
199
+ - name: "Run the JavaScript tests"
200
+ run: |
201
+ python -m tox -e js
202
+
164
203
  # This job aggregates test results. It's the required check for branch protection.
165
204
  # https://github.com/marketplace/actions/alls-green#why
166
205
  # https://github.com/orgs/community/discussions/33579
@@ -168,9 +207,15 @@ jobs:
168
207
  name: "Tests successful"
169
208
  needs:
170
209
  - tests
210
+ - js_tests
211
+ # Without this, GitHub skips this job when `tests` doesn't succeed, so the
212
+ # gate reports "skipped" instead of failing. `allowed-skips` keeps the
213
+ # deliberate skips (-notests branches, no test-relevant files) passing.
214
+ if: always()
171
215
  runs-on: ubuntu-latest
172
216
  steps:
173
217
  - name: "Decide success or failure"
174
218
  uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35 # v1.3.0
175
219
  with:
176
220
  jobs: ${{ toJSON(needs) }}
221
+ allowed-skips: tests, js_tests
@@ -10,6 +10,7 @@
10
10
  .metacov
11
11
  .metacov.*
12
12
  *.swp
13
+ .envrc
13
14
 
14
15
  # Data files we should ignore in the root, but need for gold files.
15
16
  /coverage.xml
@@ -29,6 +30,7 @@ dist
29
30
  htmlcov
30
31
  MANIFEST
31
32
  setuptools-*.egg
33
+ wheelhouse
32
34
  .tox
33
35
  .noseids
34
36
  .cache
@@ -11,12 +11,11 @@ repos:
11
11
  - id: check-xml
12
12
  - id: check-yaml
13
13
  - id: end-of-file-fixer
14
- exclude: "(status\\.json|\\.min\\.js)$"
15
14
  - id: trailing-whitespace
16
15
  exclude: "stress_phystoken|\\.py,cover$"
17
16
 
18
17
  - repo: https://github.com/astral-sh/ruff-pre-commit
19
- rev: v0.16.7
18
+ rev: v0.17.1
20
19
  hooks:
21
20
  - id: ruff-format
22
21