1*4e366538SXin Li# This is a vpython "spec" file. 2*4e366538SXin Li# 3*4e366538SXin Li# It describes patterns for python wheel dependencies of the python scripts in 4*4e366538SXin Li# the chromium repo, particularly for dependencies that have compiled components 5*4e366538SXin Li# (since pure-python dependencies can be easily vendored into third_party). 6*4e366538SXin Li# 7*4e366538SXin Li# When vpython is invoked, it finds this file and builds a python VirtualEnv, 8*4e366538SXin Li# containing all of the dependencies described in this file, fetching them from 9*4e366538SXin Li# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`, 10*4e366538SXin Li# this never requires the end-user machine to have a working python extension 11*4e366538SXin Li# compilation environment. All of these packages are built using: 12*4e366538SXin Li# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/ 13*4e366538SXin Li# 14*4e366538SXin Li# All python scripts in the repo share this same spec, to avoid dependency 15*4e366538SXin Li# fragmentation. 16*4e366538SXin Li# 17*4e366538SXin Li# If you have depot_tools installed in your $PATH, you can invoke python scripts 18*4e366538SXin Li# in this repo by running them as you normally would run them, except 19*4e366538SXin Li# substituting `vpython` instead of `python` on the command line, e.g.: 20*4e366538SXin Li# vpython path/to/script.py some --arguments 21*4e366538SXin Li# 22*4e366538SXin Li# Read more about `vpython` and how to modify this file here: 23*4e366538SXin Li# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md 24*4e366538SXin Li 25*4e366538SXin Lipython_version: "3.8" 26*4e366538SXin Li 27*4e366538SXin Li# The default set of platforms vpython checks does not yet include mac-arm64. 28*4e366538SXin Li# Setting `verify_pep425_tag` to the list of platforms we explicitly must support 29*4e366538SXin Li# allows us to ensure that vpython specs stay mac-arm64-friendly 30*4e366538SXin Liverify_pep425_tag: [ 31*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "manylinux1_x86_64"}, 32*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "linux_arm64"}, 33*4e366538SXin Li 34*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "macosx_10_10_intel"}, 35*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "macosx_11_0_arm64"}, 36*4e366538SXin Li 37*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "win32"}, 38*4e366538SXin Li {python: "cp38", abi: "cp38", platform: "win_amd64"} 39*4e366538SXin Li] 40*4e366538SXin Li 41*4e366538SXin Li# Used by: 42*4e366538SXin Li# build/android/pylib/local/emulator/avd.py 43*4e366538SXin Li# components/policy/test_support/policy_testserver.py 44*4e366538SXin Liwheel: < 45*4e366538SXin Li name: "infra/python/wheels/protobuf-py2_py3" 46*4e366538SXin Li version: "version:3.15.8" 47*4e366538SXin Li> 48*4e366538SXin Li 49*4e366538SXin Li# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions 50*4e366538SXin Li# become available. 51*4e366538SXin Liwheel: < 52*4e366538SXin Li name: "infra/python/wheels/six-py2_py3" 53*4e366538SXin Li version: "version:1.15.0" 54*4e366538SXin Li> 55*4e366538SXin Li 56*4e366538SXin Li# Common utilities. 57*4e366538SXin Li# Use the same versions specified by //third_party/catapult/.vpython3 so that 58*4e366538SXin Li# Chromium tests using Telemetry function properly. 59*4e366538SXin Liwheel: < 60*4e366538SXin Li name: "infra/python/wheels/numpy/${vpython_platform}" 61*4e366538SXin Li version: "version:1.20.3" 62*4e366538SXin Li # A newer version of numpy is required on ARM64, but it breaks older OS versions. 63*4e366538SXin Li not_match_tag < 64*4e366538SXin Li platform: "macosx_11_0_arm64" 65*4e366538SXin Li > 66*4e366538SXin Li> 67*4e366538SXin Liwheel: < 68*4e366538SXin Li name: "infra/python/wheels/numpy/mac-arm64_cp38_cp38" 69*4e366538SXin Li version: "version:1.21.1" 70*4e366538SXin Li match_tag < 71*4e366538SXin Li platform: "macosx_11_0_arm64" 72*4e366538SXin Li > 73*4e366538SXin Li> 74*4e366538SXin Liwheel: < 75*4e366538SXin Li name: "infra/python/wheels/psutil/${vpython_platform}" 76*4e366538SXin Li version: "version:5.8.0.chromium.2" 77*4e366538SXin Li> 78*4e366538SXin Liwheel: < 79*4e366538SXin Li name: "infra/python/wheels/requests-py3" 80*4e366538SXin Li version: "version:2.31.0" 81*4e366538SXin Li> 82*4e366538SXin Li 83*4e366538SXin Li# Used by various python unit tests. 84*4e366538SXin Liwheel: < 85*4e366538SXin Li name: "infra/python/wheels/mock-py2_py3" 86*4e366538SXin Li version: "version:2.0.0" 87*4e366538SXin Li> 88*4e366538SXin Liwheel: < 89*4e366538SXin Li name: "infra/python/wheels/parameterized-py2_py3" 90*4e366538SXin Li version: "version:0.7.1" 91*4e366538SXin Li> 92*4e366538SXin Liwheel: < 93*4e366538SXin Li name: "infra/python/wheels/pbr-py2_py3" 94*4e366538SXin Li version: "version:3.0.0" 95*4e366538SXin Li> 96*4e366538SXin Li 97*4e366538SXin Liwheel: < 98*4e366538SXin Li name: "infra/python/wheels/pyfakefs-py2_py3" 99*4e366538SXin Li version: "version:3.7.2" 100*4e366538SXin Li> 101*4e366538SXin Li 102*4e366538SXin Li# Used by: 103*4e366538SXin Li# build/chromeos/test_runner.py 104*4e366538SXin Liwheel: < 105*4e366538SXin Li name: "infra/python/wheels/jsonlines-py2_py3" 106*4e366538SXin Li version: "version:1.2.0" 107*4e366538SXin Li> 108*4e366538SXin Liwheel: < 109*4e366538SXin Li name: "infra/python/wheels/python-dateutil-py2_py3" 110*4e366538SXin Li version: "version:2.7.3" 111*4e366538SXin Li> 112*4e366538SXin Li 113*4e366538SXin Li# Used by WPT importer 114*4e366538SXin Liwheel: < 115*4e366538SXin Li name: "infra/python/wheels/charset_normalizer-py3" 116*4e366538SXin Li version: "version:2.0.4" 117*4e366538SXin Li> 118*4e366538SXin Liwheel: < 119*4e366538SXin Li name: "infra/python/wheels/pyasn1-py2_py3" 120*4e366538SXin Li version: "version:0.4.5" 121*4e366538SXin Li> 122*4e366538SXin Liwheel: < 123*4e366538SXin Li name: "infra/python/wheels/pyasn1_modules-py2_py3" 124*4e366538SXin Li version: "version:0.2.4" 125*4e366538SXin Li> 126*4e366538SXin Liwheel: < 127*4e366538SXin Li name: "infra/python/wheels/rsa-py2_py3" 128*4e366538SXin Li version: "version:3.4.2" 129*4e366538SXin Li> 130*4e366538SXin Liwheel: < 131*4e366538SXin Li name: "infra/python/wheels/cachetools-py2_py3" 132*4e366538SXin Li version: "version:2.0.1" 133*4e366538SXin Li> 134*4e366538SXin Liwheel: < 135*4e366538SXin Li name: "infra/python/wheels/uritemplate-py2_py3" 136*4e366538SXin Li version: "version:3.0.0" 137*4e366538SXin Li> 138*4e366538SXin Liwheel: < 139*4e366538SXin Li name: "infra/python/wheels/google-auth-py2_py3" 140*4e366538SXin Li version: "version:1.25.0" 141*4e366538SXin Li> 142*4e366538SXin Liwheel: < 143*4e366538SXin Li name: "infra/python/wheels/googleapis-common-protos-py2_py3" 144*4e366538SXin Li version: "version:1.52.0" 145*4e366538SXin Li> 146*4e366538SXin Liwheel: < 147*4e366538SXin Li name: "infra/python/wheels/google-api-core-py2_py3" 148*4e366538SXin Li version: "version:1.25.1" 149*4e366538SXin Li> 150*4e366538SXin Liwheel: < 151*4e366538SXin Li name: "infra/python/wheels/google-auth-httplib2-py2_py3" 152*4e366538SXin Li version: "version:0.1.0" 153*4e366538SXin Li> 154*4e366538SXin Liwheel: < 155*4e366538SXin Li name: "infra/python/wheels/google-api-python-client-py3" 156*4e366538SXin Li version: "version:2.2.0" 157*4e366538SXin Li> 158*4e366538SXin Liwheel: < 159*4e366538SXin Li name: "infra/python/wheels/oauth2client-py2_py3" 160*4e366538SXin Li version: "version:3.0.0" 161*4e366538SXin Li> 162*4e366538SXin Li 163*4e366538SXin Li# Used by Web Platform Tests (WPT) codebase in 164*4e366538SXin Li# //third_party/blink/web_tests/external/wpt/tools/ 165*4e366538SXin Liwheel: < 166*4e366538SXin Li name: "infra/python/wheels/html5lib-py2_py3" 167*4e366538SXin Li version: "version:1.0.1" 168*4e366538SXin Li> 169*4e366538SXin Liwheel: < 170*4e366538SXin Li name: "infra/python/wheels/mozdebug-py2_py3" 171*4e366538SXin Li version: "version:0.2" 172*4e366538SXin Li> 173*4e366538SXin Liwheel: < 174*4e366538SXin Li name: "infra/python/wheels/mozinfo-py2_py3" 175*4e366538SXin Li version: "version:1.2.2" 176*4e366538SXin Li> 177*4e366538SXin Liwheel: < 178*4e366538SXin Li name: "infra/python/wheels/mozlog-py2_py3" 179*4e366538SXin Li version: "version:7.1.0" 180*4e366538SXin Li> 181*4e366538SXin Liwheel: < 182*4e366538SXin Li name: "infra/python/wheels/mozprocess-py2_py3" 183*4e366538SXin Li version: "version:1.2.1" 184*4e366538SXin Li> 185*4e366538SXin Liwheel: < 186*4e366538SXin Li name: "infra/python/wheels/urllib3-py2_py3" 187*4e366538SXin Li version: "version:1.24.3" 188*4e366538SXin Li> 189*4e366538SXin Liwheel: < 190*4e366538SXin Li name: "infra/python/wheels/blessings-py2_py3" 191*4e366538SXin Li version: "version:1.7" 192*4e366538SXin Li> 193*4e366538SXin Liwheel: < 194*4e366538SXin Li name: "infra/python/wheels/mozfile-py2_py3" 195*4e366538SXin Li version: "version:2.0.0" 196*4e366538SXin Li> 197*4e366538SXin Liwheel: < 198*4e366538SXin Li name: "infra/python/wheels/mozterm-py2_py3" 199*4e366538SXin Li version: "version:1.0.0" 200*4e366538SXin Li> 201*4e366538SXin Liwheel: < 202*4e366538SXin Li name: "infra/python/wheels/webencodings-py2_py3" 203*4e366538SXin Li version: "version:0.5.1" 204*4e366538SXin Li> 205*4e366538SXin Liwheel: < 206*4e366538SXin Li name: "infra/python/wheels/certifi-py2_py3" 207*4e366538SXin Li version: "version:2020.11.8" 208*4e366538SXin Li> 209*4e366538SXin Liwheel: < 210*4e366538SXin Li name: "infra/python/wheels/chardet-py2_py3" 211*4e366538SXin Li version: "version:3.0.4" 212*4e366538SXin Li> 213*4e366538SXin Liwheel: < 214*4e366538SXin Li name: "infra/python/wheels/idna-py2_py3" 215*4e366538SXin Li version: "version:2.8" 216*4e366538SXin Li> 217*4e366538SXin Liwheel: < 218*4e366538SXin Li name: "infra/python/wheels/distro-py2_py3" 219*4e366538SXin Li version: "version:1.4.0" 220*4e366538SXin Li> 221*4e366538SXin Liwheel: < 222*4e366538SXin Li name: "infra/python/wheels/pillow/linux-amd64_cp38_cp38" 223*4e366538SXin Li version: "version:8.1.2" 224*4e366538SXin Li> 225*4e366538SXin Liwheel: < 226*4e366538SXin Li name: "infra/python/wheels/aioquic/${vpython_platform}" 227*4e366538SXin Li version: "version:0.9.15" 228*4e366538SXin Li> 229*4e366538SXin Liwheel: < 230*4e366538SXin Li name: "infra/python/wheels/pylsqpack/${vpython_platform}" 231*4e366538SXin Li version: "version:0.3.12" 232*4e366538SXin Li> 233*4e366538SXin Liwheel: < 234*4e366538SXin Li name: "infra/python/wheels/cryptography/${vpython_platform}" 235*4e366538SXin Li version: "version:3.3.1.chromium.1" 236*4e366538SXin Li> 237*4e366538SXin Liwheel: < 238*4e366538SXin Li name: "infra/python/wheels/cffi/${vpython_platform}" 239*4e366538SXin Li version: "version:1.14.5" 240*4e366538SXin Li> 241*4e366538SXin Liwheel: < 242*4e366538SXin Li name: "infra/python/wheels/pycparser-py2_py3" 243*4e366538SXin Li version: "version:2.19" 244*4e366538SXin Li> 245*4e366538SXin Li 246*4e366538SXin Li# Used by: 247*4e366538SXin Li# chrome/test/chromedriver/test/run_webdriver_tests.py 248*4e366538SXin Liwheel: < 249*4e366538SXin Li name: "infra/python/wheels/iniconfig-py3" 250*4e366538SXin Li version: "version:1.1.1" 251*4e366538SXin Li> 252*4e366538SXin Li 253*4e366538SXin Liwheel: < 254*4e366538SXin Li name: "infra/python/wheels/packaging-py2_py3" 255*4e366538SXin Li version: "version:16.8" 256*4e366538SXin Li> 257*4e366538SXin Li 258*4e366538SXin Liwheel: < 259*4e366538SXin Li name: "infra/python/wheels/pyparsing-py2_py3" 260*4e366538SXin Li version: "version:2.4.7" 261*4e366538SXin Li> 262*4e366538SXin Li 263*4e366538SXin Liwheel: < 264*4e366538SXin Li name: "infra/python/wheels/toml-py3" 265*4e366538SXin Li version: "version:0.10.1" 266*4e366538SXin Li> 267*4e366538SXin Li 268*4e366538SXin Liwheel < 269*4e366538SXin Li name: "infra/python/wheels/pytest-py3" 270*4e366538SXin Li version: "version:6.2.2" 271*4e366538SXin Li> 272*4e366538SXin Li 273*4e366538SXin Liwheel < 274*4e366538SXin Li name: "infra/python/wheels/pytest-asyncio-py3" 275*4e366538SXin Li version: "version:0.14.0" 276*4e366538SXin Li> 277*4e366538SXin Li 278*4e366538SXin Liwheel < 279*4e366538SXin Li name: "infra/python/wheels/attrs-py2_py3" 280*4e366538SXin Li version: "version:20.3.0" 281*4e366538SXin Li> 282*4e366538SXin Li 283*4e366538SXin Liwheel < 284*4e366538SXin Li name: "infra/python/wheels/six-py2_py3" 285*4e366538SXin Li version: "version:1.15.0" 286*4e366538SXin Li> 287*4e366538SXin Li 288*4e366538SXin Liwheel < 289*4e366538SXin Li name: "infra/python/wheels/more-itertools-py2_py3" 290*4e366538SXin Li version: "version:4.1.0" 291*4e366538SXin Li> 292*4e366538SXin Li 293*4e366538SXin Liwheel < 294*4e366538SXin Li name: "infra/python/wheels/pluggy-py3" 295*4e366538SXin Li version: "version:0.13.1" 296*4e366538SXin Li> 297*4e366538SXin Li 298*4e366538SXin Liwheel < 299*4e366538SXin Li name: "infra/python/wheels/py-py2_py3" 300*4e366538SXin Li version: "version:1.10.0" 301*4e366538SXin Li> 302*4e366538SXin Li 303*4e366538SXin Liwheel < 304*4e366538SXin Li name: "infra/python/wheels/funcsigs-py2_py3" 305*4e366538SXin Li version: "version:1.0.2" 306*4e366538SXin Li> 307*4e366538SXin Li 308*4e366538SXin Liwheel: < 309*4e366538SXin Li name: "infra/python/wheels/atomicwrites-py2_py3" 310*4e366538SXin Li version: "version:1.3.0" 311*4e366538SXin Li> 312*4e366538SXin Li 313*4e366538SXin Liwheel: < 314*4e366538SXin Li name: "infra/python/wheels/colorama-py2_py3" 315*4e366538SXin Li version: "version:0.4.1" 316*4e366538SXin Li> 317*4e366538SXin Li 318*4e366538SXin Li# Used by: 319*4e366538SXin Li# testing/buildbot/generate_buildbot_json_coveragetest.py 320*4e366538SXin Liwheel: < 321*4e366538SXin Li name: "infra/python/wheels/coverage/${vpython_platform}" 322*4e366538SXin Li version: "version:5.5.chromium.2" 323*4e366538SXin Li> 324*4e366538SXin Li 325*4e366538SXin Li# Used by: 326*4e366538SXin Li# //content/test/gpu 327*4e366538SXin Liwheel: < 328*4e366538SXin Li name: "infra/python/wheels/pathos/${vpython_platform}" 329*4e366538SXin Li version: "version:0.2.7.chromium.4" 330*4e366538SXin Li not_match_tag < 331*4e366538SXin Li abi: "cp27mu" 332*4e366538SXin Li platform: "manylinux1_i686" 333*4e366538SXin Li > 334*4e366538SXin Li not_match_tag < 335*4e366538SXin Li abi: "cp27mu" 336*4e366538SXin Li platform: "linux_mips64" 337*4e366538SXin Li > 338*4e366538SXin Li not_match_tag < 339*4e366538SXin Li abi: "cp27mu" 340*4e366538SXin Li platform: "linux_armv6l" 341*4e366538SXin Li > 342*4e366538SXin Li not_match_tag < 343*4e366538SXin Li abi: "cp27mu" 344*4e366538SXin Li platform: "linux_armv7l" 345*4e366538SXin Li > 346*4e366538SXin Li> 347*4e366538SXin Li 348*4e366538SXin Li# Used by: 349*4e366538SXin Li# //tools/infra/find_bad_builds.py 350*4e366538SXin Liwheel: < 351*4e366538SXin Li name: "infra/python/wheels/pytz-py2_py3" 352*4e366538SXin Li version: "version:2018.4" 353*4e366538SXin Li> 354*4e366538SXin Li 355*4e366538SXin Li# Used by: 356*4e366538SXin Li# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py 357*4e366538SXin Liwheel: < 358*4e366538SXin Li name: "infra/python/wheels/pywin32/${vpython_platform}" 359*4e366538SXin Li version: "version:300" 360*4e366538SXin Li match_tag: < 361*4e366538SXin Li platform: "win32" 362*4e366538SXin Li > 363*4e366538SXin Li match_tag: < 364*4e366538SXin Li platform: "win_amd64" 365*4e366538SXin Li > 366*4e366538SXin Li> 367*4e366538SXin Li 368*4e366538SXin Li# Used by: 369*4e366538SXin Li# //content/test/gpu/gpu_tests/color_profile_manager_mac.py 370*4e366538SXin Liwheel: < 371*4e366538SXin Li name: "infra/python/wheels/pyobjc/${vpython_platform}" 372*4e366538SXin Li version: "version:7.3.chromium.1" 373*4e366538SXin Li match_tag: < 374*4e366538SXin Li platform: "macosx_10_10_intel" 375*4e366538SXin Li > 376*4e366538SXin Li> 377*4e366538SXin Li 378*4e366538SXin Li# Used by: 379*4e366538SXin Li# tools/perf/core/results_dashboard.py 380*4e366538SXin Liwheel: < 381*4e366538SXin Li name: "infra/python/wheels/httplib2-py3" 382*4e366538SXin Li version: "version:0.19.1" 383*4e366538SXin Li> 384*4e366538SXin Li 385*4e366538SXin Li# Used by: 386*4e366538SXin Li# tools/perf/flakiness_cli 387*4e366538SXin Liwheel: < 388*4e366538SXin Li name: "infra/python/wheels/pandas/${vpython_platform}" 389*4e366538SXin Li version: "version:1.3.2.chromium.1" 390*4e366538SXin Li match_tag: < 391*4e366538SXin Li platform: "win32" 392*4e366538SXin Li > 393*4e366538SXin Li match_tag: < 394*4e366538SXin Li platform: "win_amd64" 395*4e366538SXin Li > 396*4e366538SXin Li match_tag: < 397*4e366538SXin Li platform: "manylinux1_i686" 398*4e366538SXin Li > 399*4e366538SXin Li match_tag: < 400*4e366538SXin Li platform: "manylinux1_x86_64" 401*4e366538SXin Li > 402*4e366538SXin Li match_tag: < 403*4e366538SXin Li platform: "macosx_10_6_intel" 404*4e366538SXin Li > 405*4e366538SXin Li> 406