docs/managing-third-party/README.md
[TOC]
Before reading documentation in this directory, please check the general policies in Adding third_party Libraries. You MUST obtain the required approvals before adding a third-party dependency and accept the responsibility as a dependency owner.
This directory contains how-to guides on managing your dependency with autoroll tooling (aka. well-lit paths). Please refer to individual files to understand their use cases and constraints. You should adopt one well-lit path that suits your need (e.g. code organization, need for patching).
You can request to be exempted from the well-lit paths if your dependency does not release new versions or updating would introduce performance regressions. Please refer to Autoroll Exceptions for more detail.
If you are not sure which path to take, please file a bug in "Chromium > Third Party > Freshness" component for consultation.
If you're a Googler, you can alternatively email [email protected].
Recommended for dependencies that are imported as Git submodules, and can be used without modifying the dependency's source code. You can add BUILD.gn rules and tests alongside your dependency.
Recommended for checked-in code (e.g. a subset of files), or if you need to patch upstream source code.
Recommended for dependencies which cannot be built from source.
Owners of existing dependencies will progressively receive bugs to onboard them to autoroll mechanisms as they become available. The bugs propose a well-lit path suitable for the dependency based on static analysis, but you may choose any of the three above.
There are several steps involved with onboarding a dependency to automated updates. We recommend doing them in the below order: landing a change between each step, to reduce the chance of build breakage and make changes more reviewable.
//base which make
git submodule use undesirable?patches/
directory, following the recommended directory structure and store patches
there, as numbered files. We recommend one patch file per logic change
to make future maintenance easier.Now that your dependency is cleaned up, it's time to update.
Determine which well-lit path your dependency should be using and create the required configuration, following the guides above.
Fixed and re-assign to [email protected]
for verification.