Support multiple patches in bot_update |
|||
Issue descriptionIn Pinpoint, when we're bisecting to find the cause of a performance regression, we often run into commit ranges where the test is busted. To continue bisecting, we automatically apply a fix the failing range. Sometimes, multiple failures overlap. But we have no way to apply multiple patches, since bot_update / buildbucket only supports builds with one patch applied.
,
Mar 12 2018
,
Mar 13 2018
We also want to support patches in dependent repositories, e.g. catapult, v8, skia, angle. Doing it in our own recipe would work for us, as long as we can get dependent repositories to work as well.
,
Mar 13 2018
Getting it work for deps is more work because (in order of difficulty): a) you need to figure out the path where DEPS-ed in project lives based on Gerrit project name. b) for main gclient project (aka chromium/src) you apply patches then do gclient sync. For DEPS-ed in projects, you probably need to: 1. apply all patches to chromium/src 2. gclient sync 3. apply all patches other than chromium/src. c) but b) doens't support recursive DEPS (ie if say catapult had its own DEPS. If you need that, it's even more work :(
,
Mar 13 2018
This is something I believe bot_update should support. In the meantime: a) 'gclient revinfo --url <project_url>' might help: $ gclient revinfo --url https://chromium.googlesource.com/angle/angle.git src/third_party/angle: https://chromium.googlesource.com/angle/angle.git@888081d59aae6bb4b2322501d84bd645b8a8c6de You can get the output in json format as well. b) I think this should work: 1. Apply all patches and commit. 2. gclient sync c) I think 'b)' above would support recursive DEPS.
,
Mar 14 2018
|
|||
►
Sign in to add a comment |
|||
Comment 1 by tandrii@chromium.org
, Mar 12 2018Components: Infra>Platform
+agable@ +ehmaldonado@ who may also have strong opinions on bot_update. From my PoV, you can implement this yourself in your own recipe: * bot_update to checkout needed revision * for patch in patches: git fetch <patch.ref> git cherry-pick FETCH_HEAD