1 # This is a vpython "spec" file.
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).
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/
14 # All python scripts in the repo share this same spec, to avoid dependency
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
22 # Read more about `vpython` and how to modify this file here:
23 # https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md
27 # The default set of platforms vpython checks does not yet include mac-arm64.
28 # Setting `verify_pep425_tag` to the list of platforms we explicitly must support
29 # allows us to ensure that vpython specs stay mac-arm64-friendly
31 {python: "cp38", abi: "cp38", platform: "manylinux1_x86_64"},
32 {python: "cp38", abi: "cp38", platform: "linux_arm64"},
34 {python: "cp38", abi: "cp38", platform: "macosx_10_10_intel"},
35 {python: "cp38", abi: "cp38", platform: "macosx_11_0_arm64"},
37 {python: "cp38", abi: "cp38", platform: "win32"},
38 {python: "cp38", abi: "cp38", platform: "win_amd64"}
42 # build/android/pylib/local/emulator/avd.py
44 name: "infra/python/wheels/protobuf-py3"
45 version: "version:3.20.0"
48 # TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions
51 name: "infra/python/wheels/six-py2_py3"
52 version: "version:1.15.0"
55 # These wheels are necessary to run pytype, i.e. enforce Python 3 type hinting.
56 # We currently use 2021.11.2 instead of the 2022.5.5 available in CIPD because
57 # 2022.5.5 seems to have issues when analyzing code that imports the asyncio
58 # module. 2021.11.2 only has Linux wheels available, so restrict to that
61 name: "infra/python/wheels/pytype/${vpython_platform}"
62 version: "version:2021.11.2"
64 platform: "manylinux1_x86_64"
68 name: "infra/python/wheels/importlab-py3"
69 version: "version:0.6.1"
71 platform: "manylinux1_x86_64"
75 name: "infra/python/wheels/networkx-py3"
76 version: "version:2.5"
78 platform: "manylinux1_x86_64"
82 name: "infra/python/wheels/decorator-py3"
83 version: "version:5.0.9"
85 platform: "manylinux1_x86_64"
89 name: "infra/python/wheels/libcst-py3"
90 version: "version:0.3.19"
92 platform: "manylinux1_x86_64"
96 name: "infra/python/wheels/pyyaml/${vpython_platform}"
97 version: "version:5.4.1.chromium.1"
99 platform: "manylinux1_x86_64"
103 name: "infra/python/wheels/typing-inspect-py3"
104 version: "version:0.7.1"
106 platform: "manylinux1_x86_64"
110 name: "infra/python/wheels/typing-extensions-py3"
111 version: "version:4.0.1"
113 platform: "manylinux1_x86_64"
117 name: "infra/python/wheels/tabulate-py3"
118 version: "version:0.8.9"
121 name: "infra/python/wheels/typed-ast/${vpython_platform}"
122 version: "version:1.5.3"
124 platform: "manylinux1_x86_64"
128 name: "infra/python/wheels/ninja/${vpython_platform}"
129 version: "version:1.10.0.post2"
131 platform: "manylinux1_x86_64"
135 name: "infra/python/wheels/mypy-extensions-py3"
136 version: "version:0.4.3"
138 platform: "manylinux1_x86_64"
143 # Use the same versions specified by //third_party/catapult/.vpython3 so that
144 # Chromium tests using Telemetry function properly.
146 name: "infra/python/wheels/numpy/${vpython_platform}"
147 version: "version:1.2x.supported.1"
150 name: "infra/python/wheels/pexpect/${vpython_platform}"
151 version: "version:4.8.0.chromium.1"
154 name: "infra/python/wheels/psutil/${vpython_platform}"
155 version: "version:5.8.0.chromium.3"
158 name: "infra/python/wheels/requests-py3"
159 version: "version:2.31.0"
162 name: "infra/python/wheels/pillow/${vpython_platform}"
163 version: "version:8.3.1"
164 # There is currently no Linux arm/arm64 version in CIPD.
166 platform: "linux_arm64"
170 name: "infra/python/wheels/opencv_python/${vpython_platform}"
171 version: "version:4.5.3.56.chromium.4"
172 # There is currently no Linux arm/arm64 version in CIPD.
174 platform: "linux_arm64"
178 # Used by various python unit tests.
180 name: "infra/python/wheels/mock-py2_py3"
181 version: "version:2.0.0"
184 name: "infra/python/wheels/parameterized-py2_py3"
185 version: "version:0.7.1"
188 name: "infra/python/wheels/pbr-py2_py3"
189 version: "version:3.0.0"
193 name: "infra/python/wheels/pyfakefs-py2_py3"
194 version: "version:3.7.2"
198 # build/chromeos/test_runner.py
200 name: "infra/python/wheels/jsonlines-py2_py3"
201 version: "version:1.2.0"
204 name: "infra/python/wheels/python-dateutil-py2_py3"
205 version: "version:2.7.3"
208 # Used by WPT importer
210 name: "infra/python/wheels/charset_normalizer-py3"
211 version: "version:2.0.4"
214 name: "infra/python/wheels/pyasn1-py2_py3"
215 version: "version:0.4.5"
218 name: "infra/python/wheels/pyasn1_modules-py2_py3"
219 version: "version:0.2.4"
222 name: "infra/python/wheels/rsa-py2_py3"
223 version: "version:3.4.2"
226 name: "infra/python/wheels/cachetools-py2_py3"
227 version: "version:2.0.1"
230 name: "infra/python/wheels/uritemplate-py2_py3"
231 version: "version:3.0.0"
234 name: "infra/python/wheels/google-auth-py2_py3"
235 version: "version:1.25.0"
238 name: "infra/python/wheels/googleapis-common-protos-py2_py3"
239 version: "version:1.52.0"
242 name: "infra/python/wheels/google-api-core-py3"
243 version: "version:1.31.5"
246 name: "infra/python/wheels/google-auth-httplib2-py2_py3"
247 version: "version:0.1.0"
250 name: "infra/python/wheels/google-api-python-client-py3"
251 version: "version:2.2.0"
254 name: "infra/python/wheels/oauth2client-py2_py3"
255 version: "version:3.0.0"
259 # //third_party/blink/tools/wpt_upload.py
260 # //third_party/chromite/bin/cros chrome-sdk
262 name: "infra/python/wheels/crcmod/${vpython_platform}"
263 version: "version:1.7.chromium.3"
267 name: "infra/python/wheels/grpcio/${vpython_platform}"
268 version: "version:1.44.0"
272 name: "infra/python/wheels/grpc-google-iam-v1-py3"
273 version: "version:0.12.3"
277 name: "infra/python/wheels/proto-plus-py3"
278 version: "version:1.20.3"
282 name: "infra/python/wheels/google-cloud-kms-py3"
283 version: "version:2.11.1"
286 # Used by Web Platform Tests (WPT) codebase in
287 # //third_party/wpt_tools
289 name: "infra/python/wheels/html5lib-py2_py3"
290 version: "version:1.0.1"
293 name: "infra/python/wheels/mozdebug-py3"
294 version: "version:0.3.0"
297 name: "infra/python/wheels/mozinfo-py2_py3"
298 version: "version:1.2.2"
301 name: "infra/python/wheels/blessed-py2_py3"
302 version: "version:1.20.0"
305 name: "infra/python/wheels/wcwidth-py2_py3"
306 version: "version:0.2.5"
309 name: "infra/python/wheels/jinxed-py2_py3"
310 version: "version:1.2.0"
313 name: "infra/python/wheels/ansicon-py2_py3"
314 version: "version:1.89.0"
317 name: "infra/python/wheels/mozlog-py2_py3"
318 version: "version:8.0.0"
321 name: "infra/python/wheels/mozprocess-py3"
322 version: "version:1.3.0"
325 name: "infra/python/wheels/urllib3-py2_py3"
326 version: "version:1.26.6"
329 name: "infra/python/wheels/blessings-py2_py3"
330 version: "version:1.7"
333 name: "infra/python/wheels/mozfile-py2_py3"
334 version: "version:2.0.0"
337 name: "infra/python/wheels/mozterm-py2_py3"
338 version: "version:1.0.0"
341 name: "infra/python/wheels/webencodings-py2_py3"
342 version: "version:0.5.1"
345 name: "infra/python/wheels/certifi-py2_py3"
346 version: "version:2020.11.8"
349 name: "infra/python/wheels/chardet-py2_py3"
350 version: "version:3.0.4"
353 name: "infra/python/wheels/idna-py2_py3"
354 version: "version:2.8"
357 name: "infra/python/wheels/distro-py2_py3"
358 version: "version:1.4.0"
361 name: "infra/python/wheels/aioquic/${vpython_platform}"
362 version: "version:0.9.20.chromium.1"
365 name: "infra/python/wheels/pylsqpack/${vpython_platform}"
366 version: "version:0.3.12"
369 name: "infra/python/wheels/cryptography/${vpython_platform}"
370 version: "version:3.3.1.chromium.1"
373 name: "infra/python/wheels/cffi/${vpython_platform}"
374 version: "version:1.14.5.chromium.7"
377 name: "infra/python/wheels/pycparser-py2_py3"
378 version: "version:2.19"
381 name: "infra/python/wheels/ecdsa-py2_py3"
382 version: "version:0.17.0"
385 name: "infra/python/wheels/brotli/${vpython_platform}"
386 version: "version:1.0.9"
390 # chrome/test/chromedriver/test/run_webdriver_tests.py
392 name: "infra/python/wheels/iniconfig-py3"
393 version: "version:1.1.1"
397 name: "infra/python/wheels/packaging-py2_py3"
398 version: "version:16.8"
402 name: "infra/python/wheels/pyparsing-py2_py3"
403 version: "version:2.4.7"
407 name: "infra/python/wheels/toml-py3"
408 version: "version:0.10.1"
411 # Used by: pytest-py3:7.3.1
413 name: "infra/python/wheels/exceptiongroup-py3"
414 version: "version:1.1.2"
417 # Used by: pytest-py3:7.3.1
419 name: "infra/python/wheels/tomli-py3"
420 version: "version:2.0.1"
424 name: "infra/python/wheels/pytest-py3"
425 version: "version:7.3.1"
429 name: "infra/python/wheels/pytest-asyncio-py3"
430 version: "version:0.19.0"
434 name: "infra/python/wheels/attrs-py2_py3"
435 version: "version:21.4.0"
439 name: "infra/python/wheels/more-itertools-py2_py3"
440 version: "version:4.1.0"
444 name: "infra/python/wheels/pluggy-py3"
445 version: "version:0.13.1"
449 name: "infra/python/wheels/py-py2_py3"
450 version: "version:1.10.0"
454 name: "infra/python/wheels/funcsigs-py2_py3"
455 version: "version:1.0.2"
459 name: "infra/python/wheels/atomicwrites-py2_py3"
460 version: "version:1.3.0"
464 name: "infra/python/wheels/colorama-py2_py3"
465 version: "version:0.4.1"
469 # testing/buildbot/generate_buildbot_json_coveragetest.py
471 name: "infra/python/wheels/coverage/${vpython_platform}"
472 version: "version:5.5.chromium.3"
478 name: "infra/python/wheels/pathos/${vpython_platform}"
479 version: "version:0.2.7.chromium.5"
482 platform: "manylinux1_i686"
486 platform: "linux_mips64"
490 platform: "linux_armv6l"
494 platform: "linux_armv7l"
499 name: "infra/python/wheels/websockets-py3"
500 version: "version:11.0.3"
504 name: "infra/python/wheels/beautifulsoup4-py3"
505 version: "version:4.9.0"
508 name: "infra/python/wheels/soupsieve-py3"
509 version: "version:1.9.5"
513 # //tools/infra/find_bad_builds.py
515 name: "infra/python/wheels/pytz-py2_py3"
516 version: "version:2018.4"
520 # //third_party/blink/tools/blinkpy/web_tests/port/server_process.py
522 name: "infra/python/wheels/pywin32/${vpython_platform}"
523 version: "version:300"
528 platform: "win_amd64"
533 # //content/test/gpu/gpu_tests/color_profile_manager_mac.py
535 name: "infra/python/wheels/pyobjc/${vpython_platform}"
536 version: "version:7.3.chromium.1"
538 platform: "macosx_10_10_intel"
541 platform: "macosx_11_0_arm64"
546 # tools/perf/core/results_dashboard.py
548 name: "infra/python/wheels/httplib2-py3"
549 version: "version:0.19.1"
553 # tools/perf/flakiness_cli
555 name: "infra/python/wheels/pandas/${vpython_platform}"
556 version: "version:1.3.2.chromium.1"
558 platform: "linux_arm64"
563 # tools/perf/crossbench
565 name: "infra/python/wheels/hjson-py2_py3"
566 version: "version:3.1.0"
570 name: "infra/python/wheels/frozendict-py3"
571 version: "version:2.0.6"
575 # chrome/test/mini_installer/test_chrome_with_chromedriver.py
576 # testing/script/run_variations_smoke_tests.py
577 # tools/perf/crossbench
578 # Keep this to the same revision as third_party/webdriver/pylib, which is pulled
581 name: "infra/python/wheels/selenium-py3"
582 version: "version:4.1.0"
585 name: "infra/python/wheels/trio-py3"
586 version: "version:0.20.0"
589 name: "infra/python/wheels/trio-websocket-py3"
590 version: "version:0.9.2"
593 name: "infra/python/wheels/outcome-py3"
594 version: "version:1.1.0"
597 name: "infra/python/wheels/sniffio-py3"
598 version: "version:1.2.0"
601 name: "infra/python/wheels/async-generator-py3"
602 version: "version:1.10"
605 name: "infra/python/wheels/wsproto-py3"
606 version: "version:1.1.0"
609 name: "infra/python/wheels/h11-py3"
610 version: "version:0.13.0"
613 name: "infra/python/wheels/sortedcontainers-py3"
614 version: "version:2.4.0"
617 name: "infra/python/wheels/pyopenssl-py2_py3"
618 version: "version:20.0.0"
621 # Used by //tools/md_browser to render Markdown.
623 name: "infra/python/wheels/markdown-py3"
624 version: "version:3.3.4"
627 name: "infra/python/wheels/importlib-metadata-py3"
628 version: "version:1.6.0"
631 name: "infra/python/wheels/zipp-py3"
632 version: "version:3.1.0"