1# 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 25python_version: "3.8" 26 27# Used by: 28# build/android/pylib/local/emulator/avd.py 29wheel: < 30 name: "infra/python/wheels/protobuf-py3" 31 version: "version:3.20.0" 32> 33 34# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions 35# become available. 36wheel: < 37 name: "infra/python/wheels/six-py2_py3" 38 version: "version:1.15.0" 39> 40 41# These wheels are necessary to run pytype, i.e. enforce Python 3 type hinting. 42# We currently use 2021.11.2 instead of the 2022.5.5 available in CIPD because 43# 2022.5.5 seems to have issues when analyzing code that imports the asyncio 44# module. 2021.11.2 only has Linux wheels available, so restrict to that 45# platform. 46wheel: < 47 name: "infra/python/wheels/pytype/${vpython_platform}" 48 version: "version:2021.11.2" 49 match_tag: < 50 platform: "manylinux1_x86_64" 51 > 52> 53wheel: < 54 name: "infra/python/wheels/importlab-py3" 55 version: "version:0.6.1" 56 match_tag: < 57 platform: "manylinux1_x86_64" 58 > 59> 60wheel: < 61 name: "infra/python/wheels/networkx-py3" 62 version: "version:2.5" 63 match_tag: < 64 platform: "manylinux1_x86_64" 65 > 66> 67wheel: < 68 name: "infra/python/wheels/decorator-py3" 69 version: "version:5.0.9" 70 match_tag: < 71 platform: "manylinux1_x86_64" 72 > 73> 74wheel: < 75 name: "infra/python/wheels/libcst-py3" 76 version: "version:0.3.19" 77 match_tag: < 78 platform: "manylinux1_x86_64" 79 > 80> 81wheel: < 82 name: "infra/python/wheels/pyyaml/${vpython_platform}" 83 version: "version:5.4.1.chromium.1" 84 match_tag: < 85 platform: "manylinux1_x86_64" 86 > 87> 88wheel: < 89 name: "infra/python/wheels/typing-inspect-py3" 90 version: "version:0.7.1" 91 match_tag: < 92 platform: "manylinux1_x86_64" 93 > 94> 95wheel: < 96 name: "infra/python/wheels/typing-extensions-py3" 97 version: "version:4.0.1" 98 match_tag: < 99 platform: "manylinux1_x86_64" 100 > 101> 102wheel: < 103 name: "infra/python/wheels/tabulate-py3" 104 version: "version:0.8.9" 105 match_tag: < 106 platform: "manylinux1_x86_64" 107 > 108> 109wheel: < 110 name: "infra/python/wheels/typed-ast/${vpython_platform}" 111 version: "version:1.5.3" 112 match_tag: < 113 platform: "manylinux1_x86_64" 114 > 115> 116wheel: < 117 name: "infra/python/wheels/ninja/${vpython_platform}" 118 version: "version:1.10.0.post2" 119 match_tag: < 120 platform: "manylinux1_x86_64" 121 > 122> 123wheel: < 124 name: "infra/python/wheels/mypy-extensions-py3" 125 version: "version:0.4.3" 126 match_tag: < 127 platform: "manylinux1_x86_64" 128 > 129> 130 131# Common utilities. 132# Use the same versions specified by //third_party/catapult/.vpython3 so that 133# Chromium tests using Telemetry function properly. 134wheel: < 135 name: "infra/python/wheels/numpy/${vpython_platform}" 136 version: "version:1.2x.supported.1" 137> 138wheel: < 139 name: "infra/python/wheels/pexpect/${vpython_platform}" 140 version: "version:4.8.0.chromium.1" 141> 142wheel: < 143 name: "infra/python/wheels/psutil/${vpython_platform}" 144 version: "version:5.8.0.chromium.3" 145> 146wheel: < 147 name: "infra/python/wheels/requests-py3" 148 version: "version:2.31.0" 149> 150wheel: < 151 name: "infra/python/wheels/pillow/${vpython_platform}" 152 version: "version:8.3.1" 153 # There is currently no Linux arm/arm64 version in CIPD. 154 not_match_tag < 155 platform: "linux_aarch64" 156 > 157> 158wheel: < 159 name: "infra/python/wheels/opencv_python/${vpython_platform}" 160 version: "version:4.5.3.56.chromium.4" 161 # There is currently no Linux arm/arm64 version in CIPD. 162 not_match_tag < 163 platform: "linux_aarch64" 164 > 165> 166 167# Used by various python unit tests. 168wheel: < 169 name: "infra/python/wheels/mock-py2_py3" 170 version: "version:2.0.0" 171> 172wheel: < 173 name: "infra/python/wheels/parameterized-py2_py3" 174 version: "version:0.7.1" 175> 176wheel: < 177 name: "infra/python/wheels/pbr-py2_py3" 178 version: "version:3.0.0" 179> 180 181wheel: < 182 name: "infra/python/wheels/pyfakefs-py2_py3" 183 version: "version:3.7.2" 184> 185 186# Used by: 187# build/chromeos/test_runner.py 188wheel: < 189 name: "infra/python/wheels/jsonlines-py2_py3" 190 version: "version:1.2.0" 191> 192wheel: < 193 name: "infra/python/wheels/python-dateutil-py2_py3" 194 version: "version:2.7.3" 195> 196 197# Used by WPT importer 198wheel: < 199 name: "infra/python/wheels/charset_normalizer-py3" 200 version: "version:2.0.4" 201> 202wheel: < 203 name: "infra/python/wheels/pyasn1-py2_py3" 204 version: "version:0.4.5" 205> 206wheel: < 207 name: "infra/python/wheels/pyasn1_modules-py2_py3" 208 version: "version:0.2.4" 209> 210wheel: < 211 name: "infra/python/wheels/rsa-py2_py3" 212 version: "version:3.4.2" 213> 214wheel: < 215 name: "infra/python/wheels/cachetools-py2_py3" 216 version: "version:2.0.1" 217> 218wheel: < 219 name: "infra/python/wheels/uritemplate-py2_py3" 220 version: "version:3.0.0" 221> 222wheel: < 223 name: "infra/python/wheels/google-auth-py2_py3" 224 version: "version:1.25.0" 225> 226wheel: < 227 name: "infra/python/wheels/googleapis-common-protos-py2_py3" 228 version: "version:1.52.0" 229> 230wheel: < 231 name: "infra/python/wheels/google-api-core-py3" 232 version: "version:1.31.5" 233> 234wheel: < 235 name: "infra/python/wheels/google-auth-httplib2-py2_py3" 236 version: "version:0.1.0" 237> 238wheel: < 239 name: "infra/python/wheels/google-api-python-client-py3" 240 version: "version:2.2.0" 241> 242wheel: < 243 name: "infra/python/wheels/oauth2client-py2_py3" 244 version: "version:3.0.0" 245> 246 247# Used by: 248# //third_party/blink/tools/wpt_upload.py 249wheel: < 250 name: "infra/python/wheels/crcmod/${vpython_platform}" 251 version: "version:1.7.chromium.3" 252> 253 254wheel: < 255 name: "infra/python/wheels/grpcio/${vpython_platform}" 256 version: "version:1.44.0" 257> 258 259wheel: < 260 name: "infra/python/wheels/grpc-google-iam-v1-py3" 261 version: "version:0.12.3" 262> 263 264wheel: < 265 name: "infra/python/wheels/proto-plus-py3" 266 version: "version:1.20.3" 267> 268 269wheel: < 270 name: "infra/python/wheels/google-cloud-kms-py3" 271 version: "version:2.11.1" 272> 273 274# Used by Web Platform Tests (WPT) codebase in 275# //third_party/wpt_tools 276wheel: < 277 name: "infra/python/wheels/html5lib-py2_py3" 278 version: "version:1.0.1" 279> 280wheel: < 281 name: "infra/python/wheels/mozdebug-py3" 282 version: "version:0.3.0" 283> 284wheel: < 285 name: "infra/python/wheels/mozinfo-py2_py3" 286 version: "version:1.2.2" 287> 288wheel: < 289 name: "infra/python/wheels/mozlog-py2_py3" 290 version: "version:7.1.0" 291> 292wheel: < 293 name: "infra/python/wheels/mozprocess-py3" 294 version: "version:1.3.0" 295> 296wheel: < 297 name: "infra/python/wheels/urllib3-py2_py3" 298 version: "version:1.24.3" 299> 300wheel: < 301 name: "infra/python/wheels/blessings-py2_py3" 302 version: "version:1.7" 303> 304wheel: < 305 name: "infra/python/wheels/mozfile-py2_py3" 306 version: "version:2.0.0" 307> 308wheel: < 309 name: "infra/python/wheels/mozterm-py2_py3" 310 version: "version:1.0.0" 311> 312wheel: < 313 name: "infra/python/wheels/webencodings-py2_py3" 314 version: "version:0.5.1" 315> 316wheel: < 317 name: "infra/python/wheels/certifi-py2_py3" 318 version: "version:2020.11.8" 319> 320wheel: < 321 name: "infra/python/wheels/chardet-py2_py3" 322 version: "version:3.0.4" 323> 324wheel: < 325 name: "infra/python/wheels/idna-py2_py3" 326 version: "version:2.8" 327> 328wheel: < 329 name: "infra/python/wheels/distro-py2_py3" 330 version: "version:1.4.0" 331> 332wheel: < 333 name: "infra/python/wheels/aioquic/${vpython_platform}" 334 version: "version:0.9.15" 335> 336wheel: < 337 name: "infra/python/wheels/pylsqpack/${vpython_platform}" 338 version: "version:0.3.12" 339> 340wheel: < 341 name: "infra/python/wheels/cryptography/${vpython_platform}" 342 version: "version:3.3.1.chromium.1" 343> 344wheel: < 345 name: "infra/python/wheels/cffi/${vpython_platform}" 346 version: "version:1.14.5.chromium.7" 347> 348wheel: < 349 name: "infra/python/wheels/pycparser-py2_py3" 350 version: "version:2.19" 351> 352wheel: < 353 name: "infra/python/wheels/ecdsa-py2_py3" 354 version: "version:0.17.0" 355> 356 357# Used by: 358# chrome/test/chromedriver/test/run_webdriver_tests.py 359wheel: < 360 name: "infra/python/wheels/iniconfig-py3" 361 version: "version:1.1.1" 362> 363 364wheel: < 365 name: "infra/python/wheels/packaging-py2_py3" 366 version: "version:16.8" 367> 368 369wheel: < 370 name: "infra/python/wheels/pyparsing-py2_py3" 371 version: "version:2.4.7" 372> 373 374wheel: < 375 name: "infra/python/wheels/toml-py3" 376 version: "version:0.10.1" 377> 378 379wheel < 380 name: "infra/python/wheels/pytest-py3" 381 version: "version:6.2.2" 382> 383 384wheel < 385 name: "infra/python/wheels/pytest-asyncio-py3" 386 version: "version:0.14.0" 387> 388 389wheel < 390 name: "infra/python/wheels/attrs-py2_py3" 391 version: "version:21.4.0" 392> 393 394wheel < 395 name: "infra/python/wheels/six-py2_py3" 396 version: "version:1.15.0" 397> 398 399wheel < 400 name: "infra/python/wheels/more-itertools-py2_py3" 401 version: "version:4.1.0" 402> 403 404wheel < 405 name: "infra/python/wheels/pluggy-py3" 406 version: "version:0.13.1" 407> 408 409wheel < 410 name: "infra/python/wheels/py-py2_py3" 411 version: "version:1.10.0" 412> 413 414wheel < 415 name: "infra/python/wheels/funcsigs-py2_py3" 416 version: "version:1.0.2" 417> 418 419wheel: < 420 name: "infra/python/wheels/atomicwrites-py2_py3" 421 version: "version:1.3.0" 422> 423 424wheel: < 425 name: "infra/python/wheels/colorama-py2_py3" 426 version: "version:0.4.1" 427> 428 429# Used by: 430# testing/buildbot/generate_buildbot_json_coveragetest.py 431wheel: < 432 name: "infra/python/wheels/coverage/${vpython_platform}" 433 version: "version:5.5.chromium.3" 434> 435 436# Used by: 437# //content/test/gpu 438wheel: < 439 name: "infra/python/wheels/pathos/${vpython_platform}" 440 version: "version:0.2.7.chromium.5" 441 not_match_tag < 442 abi: "cp27mu" 443 platform: "manylinux1_i686" 444 > 445 not_match_tag < 446 abi: "cp27mu" 447 platform: "linux_mips64" 448 > 449 not_match_tag < 450 abi: "cp27mu" 451 platform: "linux_armv6l" 452 > 453 not_match_tag < 454 abi: "cp27mu" 455 platform: "linux_armv7l" 456 > 457> 458 459wheel: < 460 name: "infra/python/wheels/websockets-py3" 461 version: "version:10.1" 462> 463 464# Used by: 465# //tools/infra/find_bad_builds.py 466wheel: < 467 name: "infra/python/wheels/pytz-py2_py3" 468 version: "version:2018.4" 469> 470 471# Used by: 472# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py 473wheel: < 474 name: "infra/python/wheels/pywin32/${vpython_platform}" 475 version: "version:300" 476 match_tag: < 477 platform: "win32" 478 > 479 match_tag: < 480 platform: "win_amd64" 481 > 482> 483 484# Used by: 485# //content/test/gpu/gpu_tests/color_profile_manager_mac.py 486wheel: < 487 name: "infra/python/wheels/pyobjc/${vpython_platform}" 488 version: "version:7.3.chromium.1" 489 match_tag: < 490 platform: "macosx_10_10_intel" 491 > 492 match_tag: < 493 platform: "macosx_11_0_arm64" 494 > 495> 496 497# Used by: 498# tools/perf/core/results_dashboard.py 499wheel: < 500 name: "infra/python/wheels/httplib2-py3" 501 version: "version:0.19.1" 502> 503 504# Used by: 505# tools/perf/flakiness_cli 506wheel: < 507 name: "infra/python/wheels/pandas/${vpython_platform}" 508 version: "version:1.3.2.chromium.1" 509 not_match_tag: < 510 platform: "linux_aarch64" 511 > 512> 513 514# Used by: 515# testing/script/run_variations_smoke_tests.py 516wheel: < 517 name: "infra/python/wheels/selenium-py3" 518 version: "version:3.14.0" 519> 520 521# Used by meson 522wheel: < 523 name: "infra/python/wheels/markupsafe/${vpython_platform}" 524 version: "version:2.0.1" 525> 526 527wheel: < 528 name: "infra/python/wheels/mako-py3" 529 version: "version:1.2.3" 530> 531