[vpython] Migrate .vpython3 to vpython.toml

Migrate libyuv from legacy .vpython3 spec to modern vpython.toml and
vpython.toml.uv.lock, and configure vpython_spec_files in
build_overrides/build.gni.

Bug: 491263752
Change-Id: I8fdc6f5975db7cdf5301bf991c9331b68576e0d9
TAG=agy
CONV=b53bdf70-37e7-4696-be50-8ee6fc19b1f8
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8428882
Reviewed-by: Christoffer Dewerin <jansson@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Alex Ovsienko <ovsienko@google.com>
This commit is contained in:
Alex Ovsienko 2026-09-18 09:25:57 +09:00 committed by libyuv-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 2dd4257364
commit 34f4d462f6
4 changed files with 1803 additions and 410 deletions

410
.vpython3
View File

@ -1,410 +0,0 @@
# This is a vpython "spec" file.
#
# It describes patterns for python wheel dependencies of the python scripts in
# the chromium repo, particularly for dependencies that have compiled components
# (since pure-python dependencies can be easily vendored into third_party).
#
# When vpython is invoked, it finds this file and builds a python VirtualEnv,
# containing all of the dependencies described in this file, fetching them from
# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`,
# this never requires the end-user machine to have a working python extension
# compilation environment. All of these packages are built using:
# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/
#
# All python scripts in the repo share this same spec, to avoid dependency
# fragmentation.
#
# If you have depot_tools installed in your $PATH, you can invoke python scripts
# in this repo by running them as you normally would run them, except
# substituting `vpython` instead of `python` on the command line, e.g.:
# vpython path/to/script.py some --arguments
#
# Read more about `vpython` and how to modify this file here:
# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md
python_version: "3.11"
# The default set of platforms vpython checks does not yet include mac-arm64.
# Setting `verify_pep425_tag` to the list of platforms we explicitly must support
# allows us to ensure that vpython specs stay mac-arm64-friendly
verify_pep425_tag: [
{python: "cp311", abi: "cp311", platform: "manylinux1_x86_64"},
{python: "cp311", abi: "cp311", platform: "linux_arm64"},
{python: "cp311", abi: "cp311", platform: "macosx_10_10_intel"},
{python: "cp311", abi: "cp311", platform: "macosx_11_0_arm64"},
{python: "cp311", abi: "cp311", platform: "win32"},
{python: "cp311", abi: "cp311", platform: "win_amd64"}
]
# Used by:
# build/android/pylib/local/emulator/avd.py
# components/policy/test_support/policy_testserver.py
wheel: <
name: "infra/python/wheels/protobuf-py3"
version: "version:4.25.1"
>
# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions
# become available.
wheel: <
name: "infra/python/wheels/six-py2_py3"
version: "version:1.15.0"
>
# Common utilities.
# Use the same versions specified by //third_party/catapult/.vpython3 so that
# Chromium tests using Telemetry function properly.
wheel: <
name: "infra/python/wheels/numpy/${vpython_platform}"
version: "version:1.23.5.chromium.4"
>
wheel: <
name: "infra/python/wheels/psutil/${vpython_platform}"
version: "version:5.9.8"
>
wheel: <
name: "infra/python/wheels/requests-py3"
version: "version:2.31.0"
>
# Used by various python unit tests.
wheel: <
name: "infra/python/wheels/mock-py2_py3"
version: "version:2.0.0"
>
wheel: <
name: "infra/python/wheels/parameterized-py2_py3"
version: "version:0.7.1"
>
wheel: <
name: "infra/python/wheels/pbr-py2_py3"
version: "version:3.0.0"
>
wheel: <
name: "infra/python/wheels/pyfakefs-py2_py3"
version: "version:3.7.2"
>
# Used by:
# build/chromeos/test_runner.py
wheel: <
name: "infra/python/wheels/jsonlines-py2_py3"
version: "version:1.2.0"
>
wheel: <
name: "infra/python/wheels/python-dateutil-py2_py3"
version: "version:2.9.0"
>
# Used by WPT importer
wheel: <
name: "infra/python/wheels/charset_normalizer-py3"
version: "version:2.0.4"
>
wheel: <
name: "infra/python/wheels/pyasn1-py2_py3"
version: "version:0.4.5"
>
wheel: <
name: "infra/python/wheels/pyasn1_modules-py2_py3"
version: "version:0.2.4"
>
wheel: <
name: "infra/python/wheels/rsa-py2_py3"
version: "version:3.4.2"
>
wheel: <
name: "infra/python/wheels/cachetools-py2_py3"
version: "version:2.0.1"
>
wheel: <
name: "infra/python/wheels/uritemplate-py2_py3"
version: "version:3.0.0"
>
wheel: <
name: "infra/python/wheels/google-auth-py2_py3"
version: "version:1.25.0"
>
wheel: <
name: "infra/python/wheels/googleapis-common-protos-py2_py3"
version: "version:1.52.0"
>
wheel: <
name: "infra/python/wheels/google-api-core-py2_py3"
version: "version:1.25.1"
>
wheel: <
name: "infra/python/wheels/google-auth-httplib2-py2_py3"
version: "version:0.1.0"
>
wheel: <
name: "infra/python/wheels/google-api-python-client-py3"
version: "version:2.2.0"
>
wheel: <
name: "infra/python/wheels/oauth2client-py2_py3"
version: "version:3.0.0"
>
# Used by Web Platform Tests (WPT) codebase in
# //third_party/blink/web_tests/external/wpt/tools/
wheel: <
name: "infra/python/wheels/html5lib-py2_py3"
version: "version:1.0.1"
>
wheel: <
name: "infra/python/wheels/mozdebug-py2_py3"
version: "version:0.2"
>
wheel: <
name: "infra/python/wheels/mozinfo-py2_py3"
version: "version:1.2.2"
>
wheel: <
name: "infra/python/wheels/mozlog-py2_py3"
version: "version:7.1.0"
>
wheel: <
name: "infra/python/wheels/mozprocess-py2_py3"
version: "version:1.2.1"
>
wheel: <
name: "infra/python/wheels/urllib3-py2_py3"
version: "version:1.26.6"
>
wheel: <
name: "infra/python/wheels/brotli/${vpython_platform}"
version: "version:1.0.9"
>
wheel: <
name: "infra/python/wheels/blessings-py2_py3"
version: "version:1.7"
>
wheel: <
name: "infra/python/wheels/mozfile-py2_py3"
version: "version:2.0.0"
>
wheel: <
name: "infra/python/wheels/mozterm-py2_py3"
version: "version:1.0.0"
>
wheel: <
name: "infra/python/wheels/webencodings-py2_py3"
version: "version:0.5.1"
>
wheel: <
name: "infra/python/wheels/certifi-py2_py3"
version: "version:2020.11.8"
>
wheel: <
name: "infra/python/wheels/chardet-py2_py3"
version: "version:3.0.4"
>
wheel: <
name: "infra/python/wheels/idna-py2_py3"
version: "version:2.8"
>
wheel: <
name: "infra/python/wheels/distro-py2_py3"
version: "version:1.4.0"
>
wheel: <
name: "infra/python/wheels/pillow/linux-amd64_cp311_cp311"
version: "version:10.4.0"
>
wheel: <
name: "infra/python/wheels/aioquic/${vpython_platform}"
version: "version:1.2.0.chromium.1"
>
wheel: <
name: "infra/python/wheels/pyopenssl-py3"
version: "version:24.2.1"
>
wheel: <
name: "infra/python/wheels/service-identity-py3"
version: "version:24.1.0"
>
wheel: <
name: "infra/python/wheels/tzdata-py2_py3"
version: "version:2023.4"
>
wheel: <
name: "infra/python/wheels/pylsqpack/${vpython_platform}"
version: "version:0.3.12"
>
wheel: <
name: "infra/python/wheels/cryptography/${vpython_platform}"
version: "version:43.0.0"
>
wheel: <
name: "infra/python/wheels/cffi/${vpython_platform}"
version: "version:1.15.1.chromium.2"
>
wheel: <
name: "infra/python/wheels/pycparser-py2_py3"
version: "version:2.19"
>
# Used by:
# chrome/test/chromedriver/test/run_webdriver_tests.py
wheel: <
name: "infra/python/wheels/iniconfig-py3"
version: "version:1.1.1"
>
wheel: <
name: "infra/python/wheels/packaging-py2_py3"
version: "version:16.8"
>
wheel: <
name: "infra/python/wheels/pyparsing-py2_py3"
version: "version:2.4.7"
>
wheel: <
name: "infra/python/wheels/toml-py3"
version: "version:0.10.1"
>
wheel <
name: "infra/python/wheels/pytest-py3"
version: "version:6.2.2"
>
wheel <
name: "infra/python/wheels/pytest-asyncio-py3"
version: "version:0.14.0"
>
wheel <
name: "infra/python/wheels/attrs-py2_py3"
version: "version:20.3.0"
>
wheel <
name: "infra/python/wheels/six-py2_py3"
version: "version:1.15.0"
>
wheel <
name: "infra/python/wheels/more-itertools-py2_py3"
version: "version:4.1.0"
>
wheel <
name: "infra/python/wheels/pluggy-py3"
version: "version:0.13.1"
>
wheel <
name: "infra/python/wheels/py-py2_py3"
version: "version:1.10.0"
>
wheel <
name: "infra/python/wheels/funcsigs-py2_py3"
version: "version:1.0.2"
>
wheel: <
name: "infra/python/wheels/atomicwrites-py2_py3"
version: "version:1.3.0"
>
wheel: <
name: "infra/python/wheels/colorama-py2_py3"
version: "version:0.4.1"
>
# Used by:
# testing/buildbot/generate_buildbot_json_coveragetest.py
wheel: <
name: "infra/python/wheels/coverage/${vpython_platform}"
version: "version:7.3.1"
>
# Used by:
# //content/test/gpu
wheel: <
name: "infra/python/wheels/pathos/${vpython_platform}"
version: "version:0.3.0.chromium.2"
not_match_tag <
abi: "cp27mu"
platform: "manylinux1_i686"
>
not_match_tag <
abi: "cp27mu"
platform: "linux_mips64"
>
not_match_tag <
abi: "cp27mu"
platform: "linux_armv6l"
>
not_match_tag <
abi: "cp27mu"
platform: "linux_armv7l"
>
>
# Used by:
# //tools/infra/find_bad_builds.py
wheel: <
name: "infra/python/wheels/pytz-py2_py3"
version: "version:2024.1"
>
# Used by:
# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py
wheel: <
name: "infra/python/wheels/pywin32/${vpython_platform}"
version: "version:308"
match_tag: <
platform: "win32"
>
match_tag: <
platform: "win_amd64"
>
>
# Used by:
# //content/test/gpu/gpu_tests/color_profile_manager_mac.py
wheel: <
name: "infra/python/wheels/pyobjc/${vpython_platform}"
version: "version:10.0"
match_tag: <
platform: "macosx_10_10_intel"
>
>
# Used by:
# tools/perf/core/results_dashboard.py
wheel: <
name: "infra/python/wheels/httplib2-py3"
version: "version:0.19.1"
>
# Used by:
# tools/perf/flakiness_cli
wheel: <
name: "infra/python/wheels/pandas/${vpython_platform}"
version: "version:2.2.3.chromium.1"
match_tag: <
platform: "win32"
>
match_tag: <
platform: "win_amd64"
>
match_tag: <
platform: "manylinux1_i686"
>
match_tag: <
platform: "manylinux1_x86_64"
>
match_tag: <
platform: "macosx_10_6_intel"
>
>

View File

@ -58,3 +58,8 @@ declare_args() {
# Defined here rather than in gtest.gni to match chromium.
gtest_enable_absl_printers = true
}
vpython_spec_files = [
"//vpython.toml",
"//vpython.toml.uv.lock",
]

76
vpython.toml Normal file
View File

@ -0,0 +1,76 @@
# Copyright 2026 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
requires-python = '>=3.11,<3.12'
dependencies = [
'protobuf==4.25.1',
'six==1.15.0',
'numpy==1.23.5+chromium.4',
'psutil==5.9.8',
'requests==2.31.0',
'mock==2.0.0',
'parameterized==0.7.1',
'pbr==3.0.0',
'setuptools==68.0.0 ; python_version < "3.14"',
'setuptools>=75.0.0 ; python_version >= "3.14"',
'pyfakefs==3.7.2',
'jsonlines==1.2.0',
'python-dateutil==2.9.0',
'charset-normalizer==2.0.4',
'pyasn1==0.4.5',
'pyasn1-modules==0.2.4',
'rsa==3.4.2',
'cachetools==2.0.1',
'uritemplate==3.0.0',
'google-auth==1.25.0',
'googleapis-common-protos==1.52.0',
'google-api-core==1.25.1',
'google-auth-httplib2==0.1.0',
'google-api-python-client==2.2.0',
'oauth2client==3.0.0',
'html5lib==1.0.1',
'mozdebug==0.2',
'mozinfo==1.2.2',
'mozlog==7.1.0',
'mozprocess==1.2.1',
'urllib3==1.26.6',
'brotli==1.0.9',
'blessings==1.7',
'mozfile==2.0.0',
'mozterm==1.0.0',
'webencodings==0.5.1',
'certifi==2020.11.8',
'chardet==3.0.4',
'idna==2.8',
'distro==1.4.0',
'pillow==10.4.0',
'aioquic==1.2.0+chromium.1',
'pyopenssl==24.2.1',
'service-identity==24.1.0',
'tzdata==2023.4',
'pylsqpack==0.3.12',
'cryptography==43.0.0',
'cffi==1.15.1+chromium.2',
'pycparser==2.19',
'iniconfig==1.1.1',
'packaging==16.8',
'pyparsing==2.4.7',
'toml==0.10.1',
'pytest==6.2.2',
'pytest-asyncio==0.14.0',
'attrs==20.3.0',
'more-itertools==4.1.0',
'pluggy==0.13.1',
'py==1.10.0',
'funcsigs==1.0.2',
'atomicwrites==1.3.0',
'colorama==0.4.1',
'coverage==7.3.1',
'pathos==0.3.0+chromium.2',
'pytz==2024.1',
"pywin32==308; sys_platform == 'win32'",
"pyobjc==10.0; sys_platform == 'darwin'",
'httplib2==0.19.1',
"pandas==2.2.3+chromium.1; sys_platform != 'linux' or platform_machine != 'aarch64'"
]

1722
vpython.toml.uv.lock generated Normal file

File diff suppressed because it is too large Load Diff