fix(coverage) add coverage support for python 3.12 (#1727)
Summary:
* chore(coverage): bump coverage to 7.4.1
* style: update comments on how to update coverage
* fix(coverage): add cp312 support
---------
Co-authored-by: Ignas Anikevicius <240938+aignas@users.noreply.github.com>
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 87d7955..d1e116e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -70,6 +70,9 @@
set to make repository rules log detailed information about what they're
up to.
+* (coverage) Add support for python 3.12 and bump `coverage.py` to
+ 7.4.1.
+
## 0.29.0 - 2024-01-22
[0.29.0]: https://github.com/bazelbuild/rules_python/releases/tag/0.29.0
diff --git a/python/private/common/py_executable_bazel.bzl b/python/private/common/py_executable_bazel.bzl
index ecdef9a..6e905d4 100644
--- a/python/private/common/py_executable_bazel.bzl
+++ b/python/private/common/py_executable_bazel.bzl
@@ -98,7 +98,7 @@
)
def py_executable_bazel_impl(ctx, *, is_test, inherited_environment):
- """Common code for executables for Baze."""
+ """Common code for executables for Bazel."""
result = py_executable_base_impl(
ctx = ctx,
semantics = create_binary_semantics_bazel(),
diff --git a/python/private/coverage.patch b/python/private/coverage.patch
index cb4402e..051f7fc 100644
--- a/python/private/coverage.patch
+++ b/python/private/coverage.patch
@@ -5,11 +5,11 @@
# NOTE @aignas 2023-06-05: we have to do this before anything from coverage gets
# imported.
diff --git a/coverage/__main__.py b/coverage/__main__.py
-index 79aa4e2b..291fcff8 100644
+index ce2d8db..7d7d0a0 100644
--- a/coverage/__main__.py
+++ b/coverage/__main__.py
-@@ -4,5 +4,6 @@
- """Coverage.py's main entry point."""
+@@ -6,5 +6,6 @@
+ from __future__ import annotations
import sys
+sys.path.append(sys.path.pop(0))
diff --git a/python/private/coverage_deps.bzl b/python/private/coverage_deps.bzl
index 7980779..62764d9 100644
--- a/python/private/coverage_deps.bzl
+++ b/python/private/coverage_deps.bzl
@@ -19,82 +19,100 @@
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
load("//python/private:version_label.bzl", "version_label")
-# START: maintained by 'bazel run //tools/private:update_coverage_deps'
+# START: maintained by 'bazel run //tools/private/update_deps:update_coverage_deps <version>'
_coverage_deps = {
"cp310": {
"aarch64-apple-darwin": (
- "https://files.pythonhosted.org/packages/3d/80/7060a445e1d2c9744b683dc935248613355657809d6c6b2716cdf4ca4766/coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl",
- "6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb",
+ "https://files.pythonhosted.org/packages/ed/2d/db83db65d0c3d457f993830b97271a80f11bdc051d86dd44405c436db147/coverage-7.4.1-cp310-cp310-macosx_11_0_arm64.whl",
+ "0193657651f5399d433c92f8ae264aff31fc1d066deee4b831549526433f3f61",
),
"aarch64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/b8/9d/926fce7e03dbfc653104c2d981c0fa71f0572a9ebd344d24c573bd6f7c4f/coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
- "ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6",
+ "https://files.pythonhosted.org/packages/8f/bf/9b1e104690d4976b17d515ee49b648c26d7244e148d1c845708d58b8f4fe/coverage-7.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
+ "d17bbc946f52ca67adf72a5ee783cd7cd3477f8f8796f59b4974a9b59cacc9ee",
),
"x86_64-apple-darwin": (
- "https://files.pythonhosted.org/packages/01/24/be01e62a7bce89bcffe04729c540382caa5a06bee45ae42136c93e2499f5/coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl",
- "d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8",
+ "https://files.pythonhosted.org/packages/26/1f/430384b8e428c87950583e775fee97bc83bcfd93a2ecc00b5e55a5a052a5/coverage-7.4.1-cp310-cp310-macosx_10_9_x86_64.whl",
+ "077d366e724f24fc02dbfe9d946534357fda71af9764ff99d73c3c596001bbd7",
),
"x86_64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/b4/bd/1b2331e3a04f4cc9b7b332b1dd0f3a1261dfc4114f8479bebfcc2afee9e8/coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
- "31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063",
+ "https://files.pythonhosted.org/packages/49/d5/9d66fd984979b58927588efb0398953acbdb4c45eb7cfcd74fa9b8d51d12/coverage-7.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
+ "6dceb61d40cbfcf45f51e59933c784a50846dc03211054bd76b421a713dcdf19",
),
},
"cp311": {
"aarch64-apple-darwin": (
- "https://files.pythonhosted.org/packages/67/d7/cd8fe689b5743fffac516597a1222834c42b80686b99f5b44ef43ccc2a43/coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl",
- "5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe",
+ "https://files.pythonhosted.org/packages/12/8d/e078f0ccc4e91aa44f7754f0bac18bd6c62780a029b5d30f6242c6e06b23/coverage-7.4.1-cp311-cp311-macosx_11_0_arm64.whl",
+ "3cacfaefe6089d477264001f90f55b7881ba615953414999c46cc9713ff93c8c",
),
"aarch64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/8c/95/16eed713202406ca0a37f8ac259bbf144c9d24f9b8097a8e6ead61da2dbb/coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
- "fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3",
+ "https://files.pythonhosted.org/packages/87/71/0d90c4cda220c1f20f0eeaa997633eb1ec0bcaf5d8250c299d0f27a5885d/coverage-7.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
+ "5d6850e6e36e332d5511a48a251790ddc545e16e8beaf046c03985c69ccb2676",
),
"x86_64-apple-darwin": (
- "https://files.pythonhosted.org/packages/c6/fa/529f55c9a1029c840bcc9109d5a15ff00478b7ff550a1ae361f8745f8ad5/coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl",
- "06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f",
+ "https://files.pythonhosted.org/packages/0b/bd/008f9dad615d67e47221a983cd46cb5e87002e569dec60daa84d1b422859/coverage-7.4.1-cp311-cp311-macosx_10_9_x86_64.whl",
+ "b8ffb498a83d7e0305968289441914154fb0ef5d8b3157df02a90c6695978295",
),
"x86_64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/a7/cd/3ce94ad9d407a052dc2a74fbeb1c7947f442155b28264eb467ee78dea812/coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
- "63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb",
+ "https://files.pythonhosted.org/packages/d5/a7/36bd1c439fab5d450c69b7cdf4be4291d56885ae8be11ebed9ec240b919f/coverage-7.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
+ "dfd1e1b9f0898817babf840b77ce9fe655ecbe8b1b327983df485b30df8cc011",
+ ),
+ },
+ "cp312": {
+ "aarch64-apple-darwin": (
+ "https://files.pythonhosted.org/packages/de/37/4f3eb8e6f4be39eeca4318e3c2ef10e954e86871a68b0e71f004835d6a30/coverage-7.4.1-cp312-cp312-macosx_11_0_arm64.whl",
+ "23b27b8a698e749b61809fb637eb98ebf0e505710ec46a8aa6f1be7dc0dc43a6",
+ ),
+ "aarch64-unknown-linux-gnu": (
+ "https://files.pythonhosted.org/packages/10/97/ca7dec2d9a1262bc0dbfb757989444fec8cde908083b15fb3339210aa7b8/coverage-7.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
+ "3e3424c554391dc9ef4a92ad28665756566a28fecf47308f91841f6c49288e66",
+ ),
+ "x86_64-apple-darwin": (
+ "https://files.pythonhosted.org/packages/37/34/2089e0b24759a207184b41a4e4b4af7004282a5b3a93bb408c2fa19b9b16/coverage-7.4.1-cp312-cp312-macosx_10_9_x86_64.whl",
+ "f68ef3660677e6624c8cace943e4765545f8191313a07288a53d3da188bd8581",
+ ),
+ "x86_64-unknown-linux-gnu": (
+ "https://files.pythonhosted.org/packages/c3/92/f2d89715c3397e76fe365b1ecbb861d1279ff8d47d23635040a358bc75dc/coverage-7.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
+ "fe558371c1bdf3b8fa03e097c523fb9645b8730399c14fe7721ee9c9e2a545d3",
),
},
"cp38": {
"aarch64-apple-darwin": (
- "https://files.pythonhosted.org/packages/28/d7/9a8de57d87f4bbc6f9a6a5ded1eaac88a89bf71369bb935dac3c0cf2893e/coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl",
- "3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5",
+ "https://files.pythonhosted.org/packages/13/4e/66a3821f6fc8a28d07740d9115fdacffb7e7d61431b9ae112bacde846327/coverage-7.4.1-cp38-cp38-macosx_11_0_arm64.whl",
+ "918440dea04521f499721c039863ef95433314b1db00ff826a02580c1f503e45",
),
"aarch64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/c8/e4/e6182e4697665fb594a7f4e4f27cb3a4dd00c2e3d35c5c706765de8c7866/coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
- "5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9",
+ "https://files.pythonhosted.org/packages/2a/12/89d5f08eb9be53910e3b9b2d02dd932f9b50bac10281272cdbaf8dee58d9/coverage-7.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
+ "379d4c7abad5afbe9d88cc31ea8ca262296480a86af945b08214eb1a556a3e4d",
),
"x86_64-apple-darwin": (
- "https://files.pythonhosted.org/packages/c6/fc/be19131010930a6cf271da48202c8cc1d3f971f68c02fb2d3a78247f43dc/coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl",
- "54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5",
+ "https://files.pythonhosted.org/packages/3c/75/a4abb6a0d1d4814fbcf8d9e552fd08b579236d8f5c5bb4cfd8a566c43612/coverage-7.4.1-cp38-cp38-macosx_10_9_x86_64.whl",
+ "8bdb0285a0202888d19ec6b6d23d5990410decb932b709f2b0dfe216d031d218",
),
"x86_64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/44/55/49f65ccdd4dfd6d5528e966b28c37caec64170c725af32ab312889d2f857/coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
- "8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e",
+ "https://files.pythonhosted.org/packages/b3/b9/49b1028a69b1e9476db7508705fc67a1218ece54af07b87339eac1b5600a/coverage-7.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
+ "f2f5968608b1fe2a1d00d01ad1017ee27efd99b3437e08b83ded9b7af3f6f766",
),
},
"cp39": {
"aarch64-apple-darwin": (
- "https://files.pythonhosted.org/packages/ca/0c/3dfeeb1006c44b911ee0ed915350db30325d01808525ae7cc8d57643a2ce/coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl",
- "06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2",
+ "https://files.pythonhosted.org/packages/ce/e1/df16e7e353c2ba5a5b3e02a6bad7dbf1bc62d5b9cfe5c06ed0e31fc64122/coverage-7.4.1-cp39-cp39-macosx_11_0_arm64.whl",
+ "46342fed0fff72efcda77040b14728049200cbba1279e0bf1188f1f2078c1d70",
),
"aarch64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/61/af/5964b8d7d9a5c767785644d9a5a63cacba9a9c45cc42ba06d25895ec87be/coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
- "201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7",
+ "https://files.pythonhosted.org/packages/86/25/6b70cb21b6e62158aab40a0e930361d4397f4ef4cbd2a04d3d01b6e4c5cf/coverage-7.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
+ "9641e21670c68c7e57d2053ddf6c443e4f0a6e18e547e86af3fad0795414a628",
),
"x86_64-apple-darwin": (
- "https://files.pythonhosted.org/packages/88/da/495944ebf0ad246235a6bd523810d9f81981f9b81c6059ba1f56e943abe0/coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl",
- "537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9",
+ "https://files.pythonhosted.org/packages/9f/ae/0d439dc9adc0111ffbed38149d73ddf34f7a8768e377020181e624cf2634/coverage-7.4.1-cp39-cp39-macosx_10_9_x86_64.whl",
+ "8e738a492b6221f8dcf281b67129510835461132b03024830ac0e554311a5c54",
),
"x86_64-unknown-linux-gnu": (
- "https://files.pythonhosted.org/packages/fe/57/e4f8ad64d84ca9e759d783a052795f62a9f9111585e46068845b1cb52c2b/coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
- "6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1",
+ "https://files.pythonhosted.org/packages/ff/e3/351477165426da841458f2c1b732360dd42da140920e3cd4b70676e5b77f/coverage-7.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
+ "d12c923757de24e4e2110cf8832d83a886a4cf215c6e61ed506006872b43a6d1",
),
},
}
-# END: maintained by 'bazel run //tools/private:update_coverage_deps'
+# END: maintained by 'bazel run //tools/private/update_deps:update_coverage_deps <version>'
_coverage_patch = Label("//python/private:coverage.patch")
diff --git a/tools/private/update_deps/update_coverage_deps.py b/tools/private/update_deps/update_coverage_deps.py
index 6152d70..6b837b9 100755
--- a/tools/private/update_deps/update_coverage_deps.py
+++ b/tools/private/update_deps/update_coverage_deps.py
@@ -131,13 +131,13 @@
"--py",
nargs="+",
type=str,
- default=["cp38", "cp39", "cp310", "cp311"],
+ default=["cp38", "cp39", "cp310", "cp311", "cp312"],
help="Supported python versions",
)
parser.add_argument(
"--dry-run",
action="store_true",
- help="Wether to write to files",
+ help="Whether to write to files",
)
parser.add_argument(
"--update-file",
@@ -186,8 +186,8 @@
update_file(
path=args.update_file,
snippet=f"_coverage_deps = {repr(Deps(urls))}\n",
- start_marker="# START: maintained by 'bazel run //tools/private:update_coverage_deps'",
- end_marker="# END: maintained by 'bazel run //tools/private:update_coverage_deps'",
+ start_marker="# START: maintained by 'bazel run //tools/private/update_deps:update_coverage_deps <version>'",
+ end_marker="# END: maintained by 'bazel run //tools/private/update_deps:update_coverage_deps <version>'",
dry_run=args.dry_run,
)