Source code

Revision control

Copy as Markdown

Other Tools

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# One task per group of vendored libraries. Each re-vendors every library in its
# `members` list at the revision pinned in that library's moz.yaml and checks the
# result matches what is committed.
#
# Every vendored moz.yaml (one with a `vendoring:` section, non-rust) must
# appear in exactly one group's `members` -- the `coverage` task turns the tree
# orange for any that don't. Which group a library is in only decides which task
# verifies it, so put a new one with related libraries.
#
# Libraries that do not re-vendor cleanly yet are annotated in
# taskcluster/scripts/misc/vendor-verify-expected-fail.yml.
---
task-defaults:
description: Verify that re-vendoring libraries reproduces the committed tree
worker-type: t-linux-docker-amd
attributes:
# Deliberately not wired to the code-review bot: code-review: true would
# trip remove_optimization_on_central and run every group unconditionally
# on mozilla-central.
code-review: false
worker:
docker-image: {in-tree: static-analysis-build}
# A group re-vendors all of its libraries, some of which are slow, so this
# needs more than the 20-minute task default.
max-run-time: 1800
env:
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE: system
treeherder:
kind: test
tier: 1
platform: lint/opt
run:
clone-with: hg
using: run-task
cwd: '{checkout}'
# Some libraries' update-actions need tooling the image doesn't have: gfx/angle
# runs gn, and dom/webgpu/tests/cts runs cargo, which in turn runs npm. Fetching
# gn also stops the build system bootstrapping it at runtime, which fails in a
# task that sets no UPLOAD_DIR. Fetch these for every group rather than tracking
# which library needs what -- the libraries that need tooling are spread across
# most of the groups, and only the group whose files changed actually runs.
fetches:
toolchain:
- linux64-gn
- linux64-node
- linux64-rust
algorithms:
treeherder:
symbol: vendor(algorithms)
members:
- dom/webauthn/winwebauthn/moz.yaml
- mfbt/double-conversion/moz.yaml
- modules/brotli/moz.yaml
- modules/fdlibm/moz.yaml
- modules/xz-embedded/moz.yaml
- modules/zlib/moz.yaml
- nsprpub/moz.yaml
- security/nss/moz.yaml
- third_party/gemmology/moz.yaml
- third_party/js/PKI.js/moz.yaml
- third_party/picosha2/moz.yaml
- third_party/simde/moz.yaml
- third_party/xsimd/moz.yaml
- third_party/zstd/moz.yaml
- third_party/zucchini/chromium/moz.yaml
data:
treeherder:
symbol: vendor(data)
members:
- mozglue/misc/decimal/moz.yaml
- parser/expat/moz.yaml
- third_party/msgpack/moz.yaml
- third_party/skv/moz.yaml
- third_party/sqlite3/ext/sqlite-vec/moz.yaml
- third_party/sqlite3/moz.yaml
- toolkit/components/jsoncpp/moz.yaml
- toolkit/components/protobuf/moz.yaml
fonts:
treeherder:
symbol: vendor(fonts)
members:
- extensions/spellcheck/hunspell/moz.yaml
- gfx/graphite2/moz.yaml
- gfx/harfbuzz/moz.yaml
- gfx/ots/moz.yaml
- modules/freetype2/moz.yaml
- modules/woff2/moz.yaml
gfx:
treeherder:
symbol: vendor(gfx)
members:
- dom/canvas/test/webgl-conf/moz.yaml
- dom/webgpu/tests/cts/moz.yaml
- gfx/angle/moz.yaml
- gfx/cairo/moz.yaml
- gfx/pixman/moz.yaml
- gfx/vr/service/openvr/moz.yaml
- media/libjpeg/moz.yaml
- media/libpng/moz.yaml
- media/libwebp/moz.yaml
- third_party/drm/moz.yaml
- third_party/gbm/moz.yaml
- third_party/libepoxy/moz.yaml
js-engine:
treeherder:
symbol: vendor(js-engine)
members:
- js/src/ctypes/libffi/moz.yaml
- js/src/irregexp/moz.yaml
- js/src/zydis/Zycore/moz.yaml
- js/src/zydis/Zydis/moz.yaml
js-ui:
treeherder:
symbol: vendor(js-ui)
members:
- devtools/client/shared/vendor/source-map/moz.yaml
- third_party/js/cfworker/moz.yaml
- third_party/js/prosemirror/moz.yaml
- third_party/js/prosemirror/prosemirror-commands/moz.yaml
- third_party/js/prosemirror/prosemirror-history/moz.yaml
- third_party/js/prosemirror/prosemirror-keymap/moz.yaml
- third_party/js/prosemirror/prosemirror-markdown/moz.yaml
- third_party/js/prosemirror/prosemirror-model/moz.yaml
- third_party/js/prosemirror/prosemirror-schema-basic/moz.yaml
- third_party/js/prosemirror/prosemirror-state/moz.yaml
- third_party/js/prosemirror/prosemirror-suggestions/moz.yaml
- third_party/js/prosemirror/prosemirror-transform/moz.yaml
- third_party/js/prosemirror/prosemirror-view/moz.yaml
- third_party/js/qrcode/moz.yaml
- toolkit/components/pdfjs/moz.yaml
- toolkit/components/reader/moz.yaml
- toolkit/content/vendor/lit/moz.yaml
media:
treeherder:
symbol: vendor(media)
members:
- dom/media/gmp/widevine-adapter/moz.yaml
- dom/media/webrtc/transport/third_party/nICEr/moz.yaml
- media/libaom/moz.yaml
- media/libcubeb/moz.yaml
- media/libdav1d/moz.yaml
- media/libnestegg/moz.yaml
- media/libogg/moz.yaml
- media/libopus/moz.yaml
- media/libsoundtouch/moz.yaml
- media/libspeex_resampler/moz.yaml
- media/libvorbis/moz.yaml
- media/libvpx/moz.yaml
- media/libyuv/moz.yaml
- netwerk/sctp/src/moz.yaml
- third_party/libsrtp/moz.yaml
- third_party/pipewire/moz.yaml
misc:
treeherder:
symbol: vendor(misc)
members:
- ipc/chromium/src/third_party/libevent/moz.yaml
- mobile/android/android-components/plugins/dependencies/src/main/java/moz.yaml
- third_party/application-services/moz.yaml
- third_party/content_analysis_sdk/moz.yaml
- third_party/cups/moz.yaml
- third_party/fmt/moz.yaml
- third_party/function2/moz.yaml
- third_party/llama.cpp/moz.yaml
- third_party/opentelemetry-cpp/moz.yaml
- third_party/opentelemetry-cpp/third_party/opentelemetry-proto/moz.yaml
- third_party/perfetto/moz.yaml
- third_party/python/vsdownload/moz.yaml
- toolkit/components/ml/vendor/openai/moz.yaml
- toolkit/components/nimbus/schemas/moz.yaml
- tools/lint/eslint/eslint-plugin-sdl-vendored/moz.yaml
sandbox:
treeherder:
symbol: vendor(sandbox)
members:
- config/external/rlbox_wasm2c_sandbox/moz.yaml
- config/external/wasm2c_sandbox_compiler/moz.yaml
- security/sandbox/chromium/moz.yaml
- security/sandbox/linux/launch/glibc_hack/moz.yaml
- third_party/rlbox/moz.yaml
testing:
treeherder:
symbol: vendor(testing)
members:
- testing/mochitest/pywebsocket3/moz.yaml
- third_party/googletest/moz.yaml
- third_party/webkit/PerformanceTests/MotionMark/moz.yaml
- third_party/webkit/PerformanceTests/Speedometer3/moz.yaml
- third_party/webkit/PerformanceTests/media-capabilities/moz.yaml
- third_party/webkit/PerformanceTests/webaudio/moz.yaml
- tools/fuzzing/libfuzzer/moz.yaml
# No `members`: this one checks that every vendored library is in a group
# above, rather than verifying any library itself.
coverage:
description: Check every vendored library is assigned to a vendor-verify group
treeherder:
symbol: vendor(coverage)
run:
command: './mach python taskcluster/scripts/misc/check-vendor-coverage.py'
when:
files-changed:
- '**/moz.yaml'
- 'taskcluster/kinds/source-test/vendor-verify.yml'
- 'taskcluster/scripts/misc/check-vendor-coverage.py'