# 3pp_common Contains helper scripts for chromium 3pp configs. ## Usage Most scripts assume the following `3pp.pb` format, which does as little as possible in the recipes so that scripts can be tested locally. ``` create { source { script { name: "3pp.py" use_fetch_checkout_workflow: true } } build { install: ["3pp.py", "install"] # Any 3pp packages here are added to PATH by recipes. # For local testing, they must already exist on your PATH. tool: "chromium/third_party/maven" } } upload { # Assuming 3pp.pb is in //third_party/foo/bar/3pp/3pp.pb pkg_prefix: "chromium/third_party/foo" universal: true } ``` Flow for local testing: ``` # Install any tools needed (that are listed as "tools" in 3pp.pb") $ sudo apt-get install maven # Tests all three commands. $ 3pp/3pp.py local-test ``` To test individual steps: ``` $ 3pp/3pp.py latest someversion.somehash $ 3pp/3pp.py checkout /tmp/foo --version someversion.somehash $ 3pp/3pp.py install out unused_dep_dir --version someversion.somehash --checkout-dir /tmp/foo ``` ## References * [`//docs/docs/cipd_and_3pp.md`](/docs/cipd_and_3pp.md) * [`//build/recipes/recipe_modules/chromium_3pp/api.py`]https://source.chromium.org/chromium/infra/infra_superproject/+/main:build/recipes/recipe_modules/chromium_3pp/api.py)