feat(coverage): add Python 3.14 support and bump coverage.py to 7.10.7#3764
Open
Syndic wants to merge 3 commits intobazel-contrib:mainfrom
Open
feat(coverage): add Python 3.14 support and bump coverage.py to 7.10.7#3764Syndic wants to merge 3 commits intobazel-contrib:mainfrom
Syndic wants to merge 3 commits intobazel-contrib:mainfrom
Conversation
- Regenerate coverage_deps.bzl against coverage 7.10.7 - Add cp314 (incl. freethreaded cp314t variants) to the bundled set - Drop cp38 (coverage.py 7.6.2 dropped Python 3.8) - Teach update_coverage_deps.py the newer wheel platform tags (manylinux1_x86_64, macosx_10_13_x86_64) used by coverage 7.10.7 - Narrow coverage.patch context to apply against the 7.10.7 coverage/__main__.py layout
- coverage.md: note that configure_coverage_tool=True is only effective for the Python versions the bundled coverage wheel set covers (CPython 3.9-3.14, freethreaded for 3.13+); outside that range it is a silent no-op and produces empty lcov. - devguide.md: bump the example version in the regen command from 7.6.1 to 7.10.7 to match what is now bundled.
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates coverage.py to 7.10.7, adds support for Python 3.14 (including freethreaded variants), and drops support for Python 3.8. The changes span dependency definitions, documentation, and the dependency update tool. Feedback was provided regarding the placement of the CHANGELOG entry, suggesting it be moved to a more appropriate section.
Per review feedback on PR bazel-contrib#3764, "add support for python 3.14 and bump coverage.py" is structurally an addition, not a fix. Mirrors the placement of the prior 3.13 entry (bazel-contrib#2265). Splits the python 3.8 drop into its own Removed entry rather than burying it in the Added line.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
On rules_python 2.0.0,
python.toolchain(configure_coverage_tool = True)is a silent no-op whenpython_version = "3.14": the bundledcoverage.pywheel set inpython/private/coverage_deps.bzlcovers cp310–cp313 only, sobazel coverageproduces zero-byte per-test lcov files forpy_testtargets. This PR bumps the bundled coverage to 7.10.7 (which ships cp39–cp314 wheels, including freethreaded variants for cp313+) and regenerates the wheel set.coverage_deps.bzlagainst coverage 7.10.7update_coverage_deps.py's_supported_platformsmap with the newer wheel platform tags (manylinux1_x86_64,macosx_10_13_x86_64) used by coverage 7.10.7coverage.patchcontext to apply against the 7.10.7coverage/__main__.pylayoutdocs/coverage.mdVerification:
bazel test //tests/python:python_tests //tests/py_runtime:py_runtime_tests --test_tag_filters=-integration-test→ 37/37 pass (incl.test_coverage_tool_executable,test_coverage_tool_plain_files)local_path_overridethis branch into a minimal external workspace, setpython_version = "3.14"withconfigure_coverage_tool = True, runbazel coverageon apy_test→ produces a non-empty per-test lcov withSF:,FNDA:reflecting actual call counts, andLH:non-zero