Owners check in presubmit doesn't take into account dependent patches. |
|||||||||||
Issue descriptionhttps://codereview.chromium.org/2290743002/ in particular at https://codereview.chromium.org/2290743002/#ps40001 had a tracking and upstream branch of https://codereview.chromium.org/2287813002. chromium_presubmit is failing on https://codereview.chromium.org/2290743002/ saying that it needs an lgtm from someone for content/common/view_messages.h. That file was not modified in https://codereview.chromium.org/2290743002/, only in the dependent.
,
Aug 30 2016
I think this is also valid for Gerrit
,
Aug 30 2016
,
Aug 30 2016
Really? Is that new behaviour? I don't recall ever running into it before.
,
Aug 30 2016
No, it's not new. I don't recall it ever working. The way patches are applied on bots makes it impossible to determine which file is changed by just looking at git checkout.
,
Aug 30 2016
I've just checked, the code in question is https://cs.chromium.org/chromium/tools/depot_tools/presubmit_support.py?q=%22def+AffectedFiles%22&sq=package:chromium&dr=C&l=591
,
Aug 30 2016
I don't know if that means it could have worked at some point in the past. :) FWIW, I also noticed that the rietveld thing on the LHS now says """ Target Ref: refs/pending/heads/master """ but it used to say something about the local branch name there. If there's any chance I'm not crazy and it used to work, perhaps that's related.
,
Aug 30 2016
So, I'm claiming that it had never worked, and the reason it's not frequently noticed is that CQ dry run skips owners checks. And if you trigger full CQ run, CQ would abort immediately because dependency hasn't landed yet. What you are doing however is unusual - you are asking CQ to ignore dependent CL by adding this line into description: NO_DEPENDENCY_CHECKS=true which disables the check and hence CQ proceeds and schedules the full presubmit tryjob.
,
Aug 30 2016
I am actually very curious why you add NO_DEPENDENCY_CHECKS=true. Do you really want CQ to land the CL before its dependency? If not, then don't add that line and just use CQ dry run.
,
Aug 30 2016
I hate that check sooooo much! I just pipeline changes locally so I don't have to rebuild everything to switch back and forth between branches, but they're not necessarily related in any way. Anyway, thanks. Not a major issue, I'll just git cl land it.
,
Aug 30 2016
well, NO_DEPENDENCY_CHECKS=true isn't very helpful, because tryjobs are still run on the whole dependency tree. But you have this option: https://cs.chromium.org/chromium/tools/depot_tools/git_cl.py?q=skip-deps-uploads&sq=package:chromium&l=3830&dr=C Admittedly it's not very easy to use, but if you want to add another option to git cl upload --dont-track-dependency i'd not be against it.
,
Aug 30 2016
Cool, thanks. I'll have a look at that next time.
,
Aug 30 2016
,
Aug 30 2016
,
Sep 6 2016
Status of this issue so far: the way dependent patches are applied in Rietvled and Gerrit makes it impossible to determine which file came from which patch. in CQ Dry Run this check is skipped, so it's not a huge problem => Pri2. once Rietveld is gone, and all patches are Gerrit patches, we can choose to leave CL commits in the checkout (instead of "git reset --soft ToT_HEAD"), and hence it'd be possible to improve this in presubmit_support as well.
,
Sep 27 2016
,
Apr 5 2017
,
Aug 18 2017
,
Jan 3 2018
Removing Milestone-Afterglow, as it has ceased to have meaning. More refined milestones may be added back in the near future.
,
Jan 5 2018
Rietveld is gone, long live Gerrit. |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by tandrii@chromium.org
, Aug 30 2016Summary: Owners check in presubmit doesn't take into account dependent patches. (was: dependent patch set upload seems to be broken for the CQ)