Skip to content

Commit 6136f1e

Browse files
Improve coverage speed for musl and free-threaded Pythons (#244)
PyPI has pre-built architecture-specific coverage wheels for Python >= 3.13 interpreters built with free threading support and Python >= 3.11 interpreters linked to musl. Include them in the coverage multi-arch wheel so they benefit from native-speed tracing under `plz cover`. (We can't include the `musllinux` wheels for 3.9 and 3.10 because its SOABI tag is indistinguishable from that of `manylinux*`, resulting in identically-named shared objects for the tracer shared object.)
1 parent 4246861 commit 6136f1e

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

third_party/python/BUILD

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,9 @@ _coverage_tags = {
133133
"macosx_10_13_x86_64": [
134134
["cp312", "cp312"],
135135
["cp313", "cp313"],
136+
["cp313", "cp313t"],
136137
["cp314", "cp314"],
138+
["cp314", "cp314t"],
137139
],
138140
},
139141
"darwin_arm64": {
@@ -143,7 +145,9 @@ _coverage_tags = {
143145
["cp311", "cp311"],
144146
["cp312", "cp312"],
145147
["cp313", "cp313"],
148+
["cp313", "cp313t"],
146149
["cp314", "cp314"],
150+
["cp314", "cp314t"],
147151
],
148152
},
149153
"linux_amd64": {
@@ -153,7 +157,22 @@ _coverage_tags = {
153157
["cp311", "cp311"],
154158
["cp312", "cp312"],
155159
["cp313", "cp313"],
160+
["cp313", "cp313t"],
156161
["cp314", "cp314"],
162+
["cp314", "cp314t"],
163+
],
164+
"musllinux_1_2_x86_64": [
165+
# The SOABI used by musl-linked Python 3.9 and 3.10 interpreters is "x86_64-linux-gnu", making
166+
# it indistinguishable from the SOABI used by glibc-linked interpreters (and causing file name
167+
# collisions for the tracer shared object in the multi-arch wheel). Because of this, we aren't
168+
# able to provide native-speed tracing support for musl-linked Python 3.9 and 3.10
169+
# interpreters.
170+
["cp311", "cp311"],
171+
["cp312", "cp312"],
172+
["cp313", "cp313"],
173+
["cp313", "cp313t"],
174+
["cp314", "cp314"],
175+
["cp314", "cp314t"],
157176
],
158177
},
159178
"linux_arm64": {
@@ -163,7 +182,22 @@ _coverage_tags = {
163182
["cp311", "cp311"],
164183
["cp312", "cp312"],
165184
["cp313", "cp313"],
185+
["cp313", "cp313t"],
186+
["cp314", "cp314"],
187+
["cp314", "cp314t"],
188+
],
189+
"musllinux_1_2_aarch64": [
190+
# The SOABI used by musl-linked Python 3.9 and 3.10 interpreters is "x86_64-linux-gnu", making
191+
# it indistinguishable from the SOABI used by glibc-linked interpreters (and causing file name
192+
# collisions for the tracer shared object in the multi-arch wheel). Because of this, we aren't
193+
# able to provide native-speed tracing support for musl-linked Python 3.9 and 3.10
194+
# interpreters.
195+
["cp311", "cp311"],
196+
["cp312", "cp312"],
197+
["cp313", "cp313"],
198+
["cp313", "cp313t"],
166199
["cp314", "cp314"],
200+
["cp314", "cp314t"],
167201
],
168202
},
169203
# There are no pre-built architecture-specific wheels for FreeBSD, so fall back to the pure-Python one.

0 commit comments

Comments
 (0)