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# 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 30verify_pep425_tag: [ 31 {python: "cp38", abi: "cp38", platform: "manylinux1_x86_64"}, 32 {python: "cp38", abi: "cp38", platform: "linux_arm64"}, 33 34 {python: "cp38", abi: "cp38", platform: "macosx_10_10_intel"}, 35 {python: "cp38", abi: "cp38", platform: "macosx_11_0_arm64"}, 36 37 {python: "cp38", abi: "cp38", platform: "win32"}, 38 {python: "cp38", abi: "cp38", platform: "win_amd64"} 39] 40 41# Used by: 42# build/android/pylib/local/emulator/avd.py 43# components/policy/test_support/policy_testserver.py 44wheel: < 45 name: "infra/python/wheels/protobuf-py2_py3" 46 version: "version:3.15.8" 47> 48 49# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions 50# become available. 51wheel: < 52 name: "infra/python/wheels/six-py2_py3" 53 version: "version:1.15.0" 54> 55 56# Common utilities. 57# Use the same versions specified by //third_party/catapult/.vpython3 so that 58# Chromium tests using Telemetry function properly. 59wheel: < 60 name: "infra/python/wheels/numpy/${vpython_platform}" 61 version: "version:1.20.3" 62 # A newer version of numpy is required on ARM64, but it breaks older OS versions. 63 not_match_tag < 64 platform: "macosx_11_0_arm64" 65 > 66> 67wheel: < 68 name: "infra/python/wheels/numpy/mac-arm64_cp38_cp38" 69 version: "version:1.21.1" 70 match_tag < 71 platform: "macosx_11_0_arm64" 72 > 73> 74wheel: < 75 name: "infra/python/wheels/psutil/${vpython_platform}" 76 version: "version:5.8.0.chromium.2" 77> 78wheel: < 79 name: "infra/python/wheels/requests-py3" 80 version: "version:2.31.0" 81> 82 83# Used by various python unit tests. 84wheel: < 85 name: "infra/python/wheels/mock-py2_py3" 86 version: "version:2.0.0" 87> 88wheel: < 89 name: "infra/python/wheels/parameterized-py2_py3" 90 version: "version:0.7.1" 91> 92wheel: < 93 name: "infra/python/wheels/pbr-py2_py3" 94 version: "version:3.0.0" 95> 96 97wheel: < 98 name: "infra/python/wheels/pyfakefs-py2_py3" 99 version: "version:3.7.2" 100> 101 102# Used by: 103# build/chromeos/test_runner.py 104wheel: < 105 name: "infra/python/wheels/jsonlines-py2_py3" 106 version: "version:1.2.0" 107> 108wheel: < 109 name: "infra/python/wheels/python-dateutil-py2_py3" 110 version: "version:2.7.3" 111> 112 113# Used by WPT importer 114wheel: < 115 name: "infra/python/wheels/charset_normalizer-py3" 116 version: "version:2.0.4" 117> 118wheel: < 119 name: "infra/python/wheels/pyasn1-py2_py3" 120 version: "version:0.4.5" 121> 122wheel: < 123 name: "infra/python/wheels/pyasn1_modules-py2_py3" 124 version: "version:0.2.4" 125> 126wheel: < 127 name: "infra/python/wheels/rsa-py2_py3" 128 version: "version:3.4.2" 129> 130wheel: < 131 name: "infra/python/wheels/cachetools-py2_py3" 132 version: "version:2.0.1" 133> 134wheel: < 135 name: "infra/python/wheels/uritemplate-py2_py3" 136 version: "version:3.0.0" 137> 138wheel: < 139 name: "infra/python/wheels/google-auth-py2_py3" 140 version: "version:1.25.0" 141> 142wheel: < 143 name: "infra/python/wheels/googleapis-common-protos-py2_py3" 144 version: "version:1.52.0" 145> 146wheel: < 147 name: "infra/python/wheels/google-api-core-py2_py3" 148 version: "version:1.25.1" 149> 150wheel: < 151 name: "infra/python/wheels/google-auth-httplib2-py2_py3" 152 version: "version:0.1.0" 153> 154wheel: < 155 name: "infra/python/wheels/google-api-python-client-py3" 156 version: "version:2.2.0" 157> 158wheel: < 159 name: "infra/python/wheels/oauth2client-py2_py3" 160 version: "version:3.0.0" 161> 162 163# Used by Web Platform Tests (WPT) codebase in 164# //third_party/blink/web_tests/external/wpt/tools/ 165wheel: < 166 name: "infra/python/wheels/html5lib-py2_py3" 167 version: "version:1.0.1" 168> 169wheel: < 170 name: "infra/python/wheels/mozdebug-py2_py3" 171 version: "version:0.2" 172> 173wheel: < 174 name: "infra/python/wheels/mozinfo-py2_py3" 175 version: "version:1.2.2" 176> 177wheel: < 178 name: "infra/python/wheels/mozlog-py2_py3" 179 version: "version:7.1.0" 180> 181wheel: < 182 name: "infra/python/wheels/mozprocess-py2_py3" 183 version: "version:1.2.1" 184> 185wheel: < 186 name: "infra/python/wheels/urllib3-py2_py3" 187 version: "version:1.24.3" 188> 189wheel: < 190 name: "infra/python/wheels/blessings-py2_py3" 191 version: "version:1.7" 192> 193wheel: < 194 name: "infra/python/wheels/mozfile-py2_py3" 195 version: "version:2.0.0" 196> 197wheel: < 198 name: "infra/python/wheels/mozterm-py2_py3" 199 version: "version:1.0.0" 200> 201wheel: < 202 name: "infra/python/wheels/webencodings-py2_py3" 203 version: "version:0.5.1" 204> 205wheel: < 206 name: "infra/python/wheels/certifi-py2_py3" 207 version: "version:2020.11.8" 208> 209wheel: < 210 name: "infra/python/wheels/chardet-py2_py3" 211 version: "version:3.0.4" 212> 213wheel: < 214 name: "infra/python/wheels/idna-py2_py3" 215 version: "version:2.8" 216> 217wheel: < 218 name: "infra/python/wheels/distro-py2_py3" 219 version: "version:1.4.0" 220> 221wheel: < 222 name: "infra/python/wheels/pillow/linux-amd64_cp38_cp38" 223 version: "version:8.1.2" 224> 225wheel: < 226 name: "infra/python/wheels/aioquic/${vpython_platform}" 227 version: "version:0.9.15" 228> 229wheel: < 230 name: "infra/python/wheels/pylsqpack/${vpython_platform}" 231 version: "version:0.3.12" 232> 233wheel: < 234 name: "infra/python/wheels/cryptography/${vpython_platform}" 235 version: "version:3.3.1.chromium.1" 236> 237wheel: < 238 name: "infra/python/wheels/cffi/${vpython_platform}" 239 version: "version:1.14.5" 240> 241wheel: < 242 name: "infra/python/wheels/pycparser-py2_py3" 243 version: "version:2.19" 244> 245 246# Used by: 247# chrome/test/chromedriver/test/run_webdriver_tests.py 248wheel: < 249 name: "infra/python/wheels/iniconfig-py3" 250 version: "version:1.1.1" 251> 252 253wheel: < 254 name: "infra/python/wheels/packaging-py2_py3" 255 version: "version:16.8" 256> 257 258wheel: < 259 name: "infra/python/wheels/pyparsing-py2_py3" 260 version: "version:2.4.7" 261> 262 263wheel: < 264 name: "infra/python/wheels/toml-py3" 265 version: "version:0.10.1" 266> 267 268wheel < 269 name: "infra/python/wheels/pytest-py3" 270 version: "version:6.2.2" 271> 272 273wheel < 274 name: "infra/python/wheels/pytest-asyncio-py3" 275 version: "version:0.14.0" 276> 277 278wheel < 279 name: "infra/python/wheels/attrs-py2_py3" 280 version: "version:20.3.0" 281> 282 283wheel < 284 name: "infra/python/wheels/six-py2_py3" 285 version: "version:1.15.0" 286> 287 288wheel < 289 name: "infra/python/wheels/more-itertools-py2_py3" 290 version: "version:4.1.0" 291> 292 293wheel < 294 name: "infra/python/wheels/pluggy-py3" 295 version: "version:0.13.1" 296> 297 298wheel < 299 name: "infra/python/wheels/py-py2_py3" 300 version: "version:1.10.0" 301> 302 303wheel < 304 name: "infra/python/wheels/funcsigs-py2_py3" 305 version: "version:1.0.2" 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/colorama-py2_py3" 315 version: "version:0.4.1" 316> 317 318# Used by: 319# testing/buildbot/generate_buildbot_json_coveragetest.py 320wheel: < 321 name: "infra/python/wheels/coverage/${vpython_platform}" 322 version: "version:5.5.chromium.2" 323> 324 325# Used by: 326# //content/test/gpu 327wheel: < 328 name: "infra/python/wheels/pathos/${vpython_platform}" 329 version: "version:0.2.7.chromium.4" 330 not_match_tag < 331 abi: "cp27mu" 332 platform: "manylinux1_i686" 333 > 334 not_match_tag < 335 abi: "cp27mu" 336 platform: "linux_mips64" 337 > 338 not_match_tag < 339 abi: "cp27mu" 340 platform: "linux_armv6l" 341 > 342 not_match_tag < 343 abi: "cp27mu" 344 platform: "linux_armv7l" 345 > 346> 347 348# Used by: 349# //tools/infra/find_bad_builds.py 350wheel: < 351 name: "infra/python/wheels/pytz-py2_py3" 352 version: "version:2018.4" 353> 354 355# Used by: 356# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py 357wheel: < 358 name: "infra/python/wheels/pywin32/${vpython_platform}" 359 version: "version:300" 360 match_tag: < 361 platform: "win32" 362 > 363 match_tag: < 364 platform: "win_amd64" 365 > 366> 367 368# Used by: 369# //content/test/gpu/gpu_tests/color_profile_manager_mac.py 370wheel: < 371 name: "infra/python/wheels/pyobjc/${vpython_platform}" 372 version: "version:7.3.chromium.1" 373 match_tag: < 374 platform: "macosx_10_10_intel" 375 > 376> 377 378# Used by: 379# tools/perf/core/results_dashboard.py 380wheel: < 381 name: "infra/python/wheels/httplib2-py3" 382 version: "version:0.19.1" 383> 384 385# Used by: 386# tools/perf/flakiness_cli 387wheel: < 388 name: "infra/python/wheels/pandas/${vpython_platform}" 389 version: "version:1.3.2.chromium.1" 390 match_tag: < 391 platform: "win32" 392 > 393 match_tag: < 394 platform: "win_amd64" 395 > 396 match_tag: < 397 platform: "manylinux1_i686" 398 > 399 match_tag: < 400 platform: "manylinux1_x86_64" 401 > 402 match_tag: < 403 platform: "macosx_10_6_intel" 404 > 405> 406