Index: site/dev/chrome/multi_repo_trybots.md |
diff --git a/site/dev/chrome/multi_repo_trybots.md b/site/dev/chrome/multi_repo_trybots.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9f3cfaa8f0a06c049c9d0a89cb78c8555bcf4d46 |
--- /dev/null |
+++ b/site/dev/chrome/multi_repo_trybots.md |
@@ -0,0 +1,70 @@ |
+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', |
dogben
2016/04/14 16:40:51
Maybe indicate that issue, patchset, and potential
bungeman-skia
2016/04/14 17:16:12
Eck, I actually wrote that but it appears I didn't
|
+ '--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. |