Multiple repo Chromium trybots
==============================

When a proposed Skia change will require a change in Chromium or Blink it is
often helpful to locally create the Chromium and Blink changes and test with the
proposed Skia change. This often happens with Skia API changes and changes
which affect Blink layout tests. While simple to do locally, this explains how
to do so on the Chromium trybots.

The basic idea is to make your Chromium and Blink change in the usual way, but
then pull in other changes by modifying the \<chromium>/src/DEPS file.


Rietveld
--------
If the the patch to be applied is to a project already in Chromium (like Skia)
and the patch is already in Rietveld, then add the following to
\<chromium>/src/DEPS in the 'hooks' array just before the 'gyp' hook.

      {
        'name': 'apply_custom_patch',
        'pattern': '.',
        'action': ['apply_issue',
                   '--root_dir', 'src/third_party/skia',
                   '--issue', '1873923002',
                   '--patchset', '160001',
                   '--server', 'https://codereview.chromium.org',
                   '--force',
                   '--ignore_deps',
                   '-v',
                   '-v',
                   '--no-auth',
                   '--blacklist', 'DEPS'
        ],
      },

An example of this being used can be seen at
https://crrev.com/1877673002/#ps120001 .


External changes not in rietveld
--------------------------------
If the patch is to files where the above is not possible, then it is still
possible to patch the files manually by adding the following to
\<chromium>/src/DEPS in the 'hooks' array just before the 'gyp' hook.

      {
        'name': 'apply_custom_patch',
        'pattern': '.',
        'action': ['python',
                   '-c', 'from distutils.dir_util import copy_tree; copy_tree("src/patch/", "src/");'
        ],
      },

Then, copy all 'out of tree' files into \<chromium>/src/patch/, using the same
directory structure used by Chromium. When 'gclient runhooks' is run, the files
in \<chromium>/src/patch/ will be copied to and overwrite corresponding files in
\<chromium>/src/. For example, if changing \<skia>/include/core/SkPath.h, place
a copy of the modified SkPath.h at
\<chromium>/src/patch/third_party/skia/include/core/SkPath.h.

An example of this being used can be seen at
https://crrev.com/1866773002/#ps20001 .


Try the patch
-------------
After committing these \<chromium>/src/DEPS and \<chromium>/src/patch/ changes
locally, 'git cl upload' can be used in the usual way. Be sure to add
'COMMIT=false' to the issue description to avoid accidentally checking it in.

Add doc instructions for multi-repo Chromium trybots.
Add doc instructions for multi-repo Chromium trybots.

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=1865153003

Review URL: https://codereview.chromium.org/1865153003
