blob: 32c1e56db0d8b7281993717eb558d99779bfed7a [file] [log] [blame]
Takuto Ikutaf3cf9062022-07-25 08:48:011# This is a vpython "spec" file.
2#
3# It describes patterns for python wheel dependencies of the python scripts in
4# the chromium repo, particularly for dependencies that have compiled components
5# (since pure-python dependencies can be easily vendored into third_party).
6#
7# When vpython is invoked, it finds this file and builds a python VirtualEnv,
8# containing all of the dependencies described in this file, fetching them from
9# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`,
10# this never requires the end-user machine to have a working python extension
11# compilation environment. All of these packages are built using:
12# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/
13#
14# All python scripts in the repo share this same spec, to avoid dependency
15# fragmentation.
16#
17# If you have depot_tools installed in your $PATH, you can invoke python scripts
18# in this repo by running them as you normally would run them, except
19# substituting `vpython` instead of `python` on the command line, e.g.:
20# vpython path/to/script.py some --arguments
21#
22# Read more about `vpython` and how to modify this file here:
23# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md
24#
25# For the definition of this spec, see:
26# https://chromium.googlesource.com/infra/luci/luci-go/+/main/vpython/api/vpython/spec.proto
27
28python_version: "2.7"
29
30# The default set of platforms vpython checks does not yet include mac-arm64.
31# Setting `verify_pep425_tag` to the list of platforms we explicitly must support
32# allows us to ensure that vpython specs stay mac-arm64-friendly
33verify_pep425_tag: [
34 {python: "cp27", abi: "cp27mu", platform: "manylinux1_x86_64"},
35 {python: "cp27", abi: "cp27mu", platform: "linux_arm64"},
36 {python: "cp27", abi: "cp27mu", platform: "linux_armv6l"},
37
38 {python: "cp27", abi: "cp27m", platform: "macosx_10_10_intel"},
39 {python: "cp27", abi: "cp27m", platform: "macosx_11_0_arm64"},
40
41 {python: "cp27", abi: "cp27m", platform: "win32"},
42 {python: "cp27", abi: "cp27m", platform: "win_amd64"}
43]
44
45# Used by:
46# build/chromeos/test_runner.py
47wheel: <
48 name: "infra/python/wheels/jsonlines-py2_py3"
49 version: "version:1.2.0"
50>
51wheel: <
52 name: "infra/python/wheels/subprocess32/${vpython_platform}"
53 version: "version:3.5.0rc1"
54 # Only download for linux since we shouldn't be running CrOS tests on mac/win.
55 match_tag: <
56 abi: "cp27mu"
57 platform: "manylinux1_i686"
58 >
59 match_tag: <
60 abi: "cp27mu"
61 platform: "manylinux1_x86_64"
62 >
63>
64
65# Used by:
66# build/chromeos/test_runner.py
67# third_party/catapult
68#
69# This version must be compatible with the version range specified by
70# //third_party/catapult/telemetry/telemetry/internal/util/external_modules.py
71wheel: <
72 name: "infra/python/wheels/psutil/${vpython_platform}"
73 version: "version:5.8.0.chromium.3"
74>
75
76# Used by:
77# build/lacros/test_runner.py
78wheel: <
79 name: "infra/python/wheels/parameterized-py2_py3"
80 version: "version:0.7.1"
81>
82
83# Used by:
84# third_party/catapult
85#
86# This version must be compatible with the version range specified by
87# //third_party/catapult/telemetry/telemetry/internal/util/external_modules.py
88#
89# This version must also be compatible with the "numpy" version, as "cv2"
90# depends on "numpy". In this case, [email protected] has been built against
91# [email protected].
92wheel: <
93 name: "infra/python/wheels/opencv_python/${vpython_platform}"
94 version: "version:2.4.13.2"
95 match_tag: <
96 platform: "win32"
97 >
98 match_tag: <
99 platform: "win_amd64"
100 >
101 match_tag: <
102 abi: "cp27mu"
103 platform: "manylinux1_i686"
104 >
105 match_tag: <
106 abi: "cp27mu"
107 platform: "manylinux1_x86_64"
108 >
109 match_tag: <
110 platform: "macosx_10_6_intel"
111 >
112>
113
114# Used by:
115# third_party/catapult
116#
117# This version must be compatible with the version range specified by
118# //third_party/catapult/telemetry/telemetry/internal/util/external_modules.py
119wheel: <
120 name: "infra/python/wheels/numpy/${vpython_platform}"
121 version: "version:1.11.3"
122>
123
124# Used by:
125# third_party/catapult
126wheel: <
127 name: "infra/python/wheels/pypiwin32/${vpython_platform}"
128 version: "version:219"
129 match_tag: <
130 platform: "win32"
131 >
132 match_tag: <
133 platform: "win_amd64"
134 >
135>
136
137# Used by:
138# chrome/test/data/android/upload_download_utils_test.py
139wheel: <
140 name: "infra/python/wheels/pyfakefs-py2_py3"
141 version: "version:3.7.2"
142>
143
144# Used by:
145# tools/perf/fetch_benchmark_deps.py
146wheel: <
147 name: "infra/python/wheels/google_compute_engine-py2_py3"
148 version: "version:2.6.2"
149>
150wheel: <
151 name: "infra/python/wheels/boto-py2_py3"
152 version: "version:2.48.0"
153>
154
155# Used by:
156# testing/buildbot/generate_buildbot_json_coveragetest.py
157wheel: <
158 name: "infra/python/wheels/coverage/${vpython_platform}"
159 version: "version:4.3.4"
160>
161
162# Used by:
163# build/android/pylib/local/emulator/avd.py
164wheel: <
165 name: "infra/python/wheels/protobuf-py2_py3"
166 version: "version:3.6.1"
167>
168wheel: <
169 name: "infra/python/wheels/six-py2_py3"
170 version: "version:1.15.0"
171>
172wheel: <
173 name: "infra/python/wheels/pyftpdlib-py2_py3"
174 version: "version:0.7.0"
175>
176wheel: <
177 name: "infra/python/wheels/simplejson/${vpython_platform}"
178 version: "version:3.13.2"
179>
180
181# Used by:
182# tools/perf/core/results_dashboard.py
183wheel: <
184 name: "infra/python/wheels/httplib2-py2_py3"
185 version: "version:0.10.3"
186>
187
188# Used by:
189# tools/perf/flakiness_cli
190wheel: <
191 name: "infra/python/wheels/pandas/${vpython_platform}"
192 version: "version:0.23.4"
193 match_tag: <
194 platform: "win32"
195 >
196 match_tag: <
197 platform: "win_amd64"
198 >
199 match_tag: <
200 abi: "cp27mu"
201 platform: "manylinux1_i686"
202 >
203 match_tag: <
204 abi: "cp27mu"
205 platform: "manylinux1_x86_64"
206 >
207 match_tag: <
208 platform: "macosx_10_6_intel"
209 >
210>
211wheel: <
212 name: "infra/python/wheels/pytz-py2_py3"
213 version: "version:2018.4"
214>
215wheel: <
216 name: "infra/python/wheels/python-dateutil-py2_py3"
217 version: "version:2.7.3"
218>
219
220# Used by:
221# content/test/gpu/gpu_tests/color_profile_manager_mac.py
222# Note: there's a version of this wheel for even older OS versions,
223# but we don't need it for the GPU tests, and it looks like there are
224# bugs in the not_match_tag implementation.
225wheel: <
226 name: "infra/python/wheels/pyobjc/${vpython_platform}"
227 version: "version:4.1"
228 match_tag: < platform: "macosx_10_10_intel" >
229>
230
231# Used by:
232# third_party/catapult
233wheel: <
234 name: "infra/python/wheels/six-py2_py3"
235 version: "version:1.15.0"
236>
237wheel: <
238 name: "infra/python/wheels/pbr-py2_py3"
239 version: "version:3.0.0"
240>
241wheel: <
242 name: "infra/python/wheels/funcsigs-py2_py3"
243 version: "version:1.0.2"
244>
245wheel: <
246 name: "infra/python/wheels/mock-py2_py3"
247 version: "version:2.0.0"
248>
249
250# Used by:
251# chrome/test/chromedriver/test/run_webdriver_tests.py
252
253wheel <
254 name: "infra/python/wheels/pytest-py2_py3"
255 version: "version:4.1.1"
256>
257
258wheel <
259 name: "infra/python/wheels/attrs-py2_py3"
260 version: "version:18.2.0"
261>
262
263wheel <
264 name: "infra/python/wheels/six-py2_py3"
265 version: "version:1.15.0"
266>
267
268wheel <
269 name: "infra/python/wheels/more-itertools-py2_py3"
270 version: "version:4.1.0"
271>
272
273wheel <
274 name: "infra/python/wheels/scandir/${vpython_platform}"
275 version: "version:1.9.0"
276>
277
278wheel <
279 name: "infra/python/wheels/pluggy-py2_py3"
280 version: "version:0.8.1"
281>
282
283wheel <
284 name: "infra/python/wheels/py-py2_py3"
285 version: "version:1.5.3"
286>
287
288wheel <
289 name: "infra/python/wheels/funcsigs-py2_py3"
290 version: "version:1.0.2"
291>
292
293# Used by:
294# tools/infra
295wheel: <
296 name: "infra/python/wheels/requests-py2_py3"
297 version: "version:2.13.0"
298>
299wheel: <
300 name: "infra/python/wheels/colorama-py2_py3"
301 version: "version:0.4.1"
302>
303wheel: <
304 name: "infra/python/wheels/mock-py2_py3"
305 version: "version:2.0.0"
306>
307
308wheel: <
309 name: "infra/python/wheels/atomicwrites-py2_py3"
310 version: "version:1.3.0"
311>
312
313wheel: <
314 name: "infra/python/wheels/pathlib2-py2_py3"
315 version: "version:2.3.3"
316>
317
318# Used by Web Platform Tests (WPT) codebase in
319# //third_party/blink/web_tests/external/wpt/tools/
320wheel: <
321 name: "infra/python/wheels/html5lib-py2_py3"
322 version: "version:1.0.1"
323>
324wheel: <
325 name: "infra/python/wheels/mozdebug-py2_py3"
326 version: "version:0.1.1"
327>
328wheel: <
329 name: "infra/python/wheels/mozinfo-py2_py3"
330 version: "version:1.1.0"
331>
332wheel: <
333 name: "infra/python/wheels/mozlog-py2_py3"
334 version: "version:7.1.0"
335>
336wheel: <
337 name: "infra/python/wheels/mozprocess-py2_py3"
338 version: "version:0.26"
339>
340wheel: <
341 name: "infra/python/wheels/urllib3-py2_py3"
342 version: "version:1.24.3"
343>
344wheel: <
345 name: "infra/python/wheels/blessings-py2_py3"
346 version: "version:1.7"
347>
348wheel: <
349 name: "infra/python/wheels/mozfile-py2_py3"
350 version: "version:2.0.0"
351>
352wheel: <
353 name: "infra/python/wheels/mozterm-py2_py3"
354 version: "version:1.0.0"
355>
356wheel: <
357 name: "infra/python/wheels/webencodings-py2_py3"
358 version: "version:0.5.1"
359>
360wheel: <
361 name: "infra/python/wheels/certifi-py2_py3"
362 version: "version:2020.11.8"
363>
364wheel: <
365 name: "infra/python/wheels/chardet-py2_py3"
366 version: "version:3.0.4"
367>
368wheel: <
369 name: "infra/python/wheels/idna-py2_py3"
370 version: "version:2.8"
371>
372wheel: <
373 name: "infra/python/wheels/pillow/${vpython_platform}"
374 version: "version:6.0.0"
375 match_tag: <
376 platform: "win32"
377 >
378 match_tag: <
379 platform: "win_amd64"
380 >
381 match_tag: <
382 abi: "cp27mu"
383 platform: "manylinux1_i686"
384 >
385 match_tag: <
386 abi: "cp27mu"
387 platform: "manylinux1_x86_64"
388 >
389 match_tag: <
390 platform: "macosx_10_6_intel"
391 >
392>
393
394# Used by:
395# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py
396wheel: <
397 name: "infra/python/wheels/pywin32/${vpython_platform}"
398 version: "version:227"
399 match_tag: <
400 platform: "win32"
401 >
402 match_tag: <
403 platform: "win_amd64"
404 >
405>
406
407# Used by:
408# //content/test/gpu
409wheel: <
410 name: "infra/python/wheels/pathos/${vpython_platform}"
411 version: "version:0.2.7.chromium.5"
412 not_match_tag <
413 abi: "cp27mu"
414 platform: "manylinux1_i686"
415 >
416 not_match_tag <
417 abi: "cp27mu"
418 platform: "linux_mips64"
419 >
420 not_match_tag <
421 abi: "cp27mu"
422 platform: "linux_armv6l"
423 >
424 not_match_tag <
425 abi: "cp27mu"
426 platform: "linux_armv7l"
427 >
428>