Commit Graph

85 Commits (a5f17dd7b3cef04e687c33b69b033b2fecf0919f)

Author SHA1 Message Date
Gavin Mak a5f17dd7b3 Revert "Drop py2 support in recipe modules"
This reverts commit 5819c303f0.

Reason for revert: breaking dart builds

Original change's description:
> Drop py2 support in recipe modules
>
> python3 is the only supported version of python in depot_tools.
>
> Bug: 1475402
> Change-Id: I479de09a0c34b438aced35e4ced58a5972108132
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4808518
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Gavin Mak <gavinmak@google.com>

Bug: 1475402
Change-Id: I0fef7581835bb25ea7e4f22303eef11e72df9536
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4811596
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
2 years ago
Gavin Mak 5819c303f0 Drop py2 support in recipe modules
python3 is the only supported version of python in depot_tools.

Bug: 1475402
Change-Id: I479de09a0c34b438aced35e4ced58a5972108132
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4808518
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
2 years ago
recipe-roller 72d05d0d22 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8775574442380992545

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
a25e256b7c
  a25e256 (gbeaty@chromium.org)
      Remove json python2 backwards-compatibility separators value.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Icb78a982055ee8aa9b0551ac8d6dea80a7fa7dd9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4687678
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2 years ago
recipe-roller 4ec095fa85 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8777726121979453601

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
3b628ec844
  3b628ec (iannucci@chromium.org)
      [json] Add ability to dump json with unsorted keys.

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I941000effd8a6e7fb01a662a0dccdf90d1d3fe8a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4630530
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Robert Iannucci c868adc368 Remove OrderedDict from test expectation
`api.json.output` is going to start returning regular dict soon
(https://chromium-review.googlesource.com/c/infra/luci/recipes-py/+/4616531)

Note that in python3 (which in this context means 3.8+), dictionaries are
ordered by insertion order.

R=gbeaty

Change-Id: I3358ca32376512d13da945f13ea2c52acf07b404
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4630528
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Garrett Beaty 37f499daec Default to an empty footers dict instead of None.
By default during tests, the _get_footers_step call will return None for
the returned footers because it does not set any test data. This does
not match the actual behavior of the recipe because git_footers.py
returns an empty json object if the commit message has no footers. This
change updates it to return an empty dict instead of None and checks for
the cached footers value to be None instead of any non-true value so
that a commit message without footers doesn't get parsed multiple times.

Change-Id: I716a27e964eb92de138228df5cc0876322d82823
Recipe-Manual-Change: build
Recipe-Nontrivial-Roll: build_limited
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4492269
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Ariel Zhang 2d1c655c2c Add CL description getter
For context crrev.com/c/4450427.

R=gbeaty@google.com

Change-Id: Ic0a7847009be274010daeaf3181242ae34477a39
Bug: b/214597409
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4451469
Commit-Queue: Ariel Zhang <arielzhang@google.com>
Reviewed-by: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
2 years ago
Ben Pastene 97dadd025f Apply the gerrit REST timeout to only 'GetChanges' calls
https://crrev.com/c/4420526 put a 10s timeout on all calls made via
this script.

But it appears there are a variety of endpoints that take more than
10s, the latest being "SubmitChange", eg:
https://ci.chromium.org/ui/p/chromeos/builders/release/release-R113-15393.B-orchestrator/25/overview

So instead of applying the timeout to everything, and then opting
certain long-running calls out of it, this just opts-in the
"GetChanges" call to the timeout. This should cover the failure mode
that was originally solved for chrome's bots. And also bump the
timeout to 30s since we don't trust all get-changes queries to
reliably finish in under 10s.

This also bumps the step level timeout for the query in tryserver
recipe_mod to 8 min since there could be ~5min worth of sleeping +
150s worth of waiting+timing-out. So worst case the step will now
take 8min to fully exhaust all timeouts/sleeps.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: b/278083716
Change-Id: Ib366e004e0bb07297ba732590d488cae779e38ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4426524
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
2 years ago
Ben Pastene 9519fc1300 Add timeouts to the actual http calls in gerrit_util.py
When gerrit's availability drops, chrome's builds see an excessive
amount of failures, eg:
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359780/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359594/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359564/overview
https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/1359630/overview

Seemingly all failures occur in either the `gerrit fetch current CL
info` step or the `gerrit changes` step. Both steps have a 60s timeout
and shell out to depot_tools' gerrit_client.py. That script essentially
makes a single http call to gerrit. That request has no configured
timeout. So when gerrit's MIA and the call hangs indefinitely, so too
will the step hang. 60s after that, the step timeout is reached, and the
entire build crashes with an infra-failure.

However, one single retry has been shown to sufficiently work around
at least one instance of that failure:
dea9a6eca26f690ce10a959701a8fb51ad/+/build.proto

So this incorporates timeouts into the requests made by
gerrit_util.py. Each request is given a 10s timeout, which should be
enough for most/all gerrit calls. (Both steps have a p90 of less than
1sec.) When a timeout is reached, the script will automatically retry
up to 4 times.

This also bumps the timeouts of the step calls to gerrit_client.py to
6min since the script can now take up to 5 minutes to fail, ie:
the sequence of sleeps is roughly 10s, 20s, 40s, 80s, 160s, which is
about 5min. So a 6min timeout should cover all those retries.

This also passes in "--verbose" to all step calls to this script, so
the logging that prints out the retry + sleep log lines will be
visible in build logs.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Bug: 1432638
Change-Id: I9dc47f4beeda3783ae4f9152bd29ee441ac3e197
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4420526
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
2 years ago
Joanna Wang d04720454a Update recipes python tests.
For: http://shortn/_j5mixA1Mjr

Change-Id: I7ac4471fbb1e0629d59263266b3470e372d03a19
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4368938
Auto-Submit: Joanna Wang <jojwang@chromium.org>
Reviewed-by: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
2 years ago
Brian Sheedy 3971323b1d Remove get_footers patch_text TODO
Removes a TODO to remove the patch_text argument and its uses from
get_footers and related methods. The TODO indicated that it was
only used in example code, and thus should be handled another way.
However, it turns out that there is at least one legitimate use of
thus functionality downstream to retrieve footers from CL
descriptions earlier revisions.

Fixed: 1179039
Change-Id: I79996f6053a6769043943de39735b2b5d7ee02ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4283342
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
2 years ago
Brian Sheedy fce87337b1 Convert recipe_modules expectation tests
Converts all remaining recipe_modules expectation-based tests to be
assert/post_process-based.

Bug: 1418547
Change-Id: I0f45c92a4f682edcf186b5202ec2001475d04bec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4288230
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
2 years ago
Brian Sheedy 4756d7c420 Add tryserver test_api method
Updates the tryserver recipe module's test_api to support overriding
get_footers data.

Bug: angleproject:7985
Change-Id: Ie571bc8d1c77cbb1cd4f18955b50d56e377ca903
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4278466
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
2 years ago
Garrett Beaty 3d1a52e074 Remove recipe warnings due to python module.
The python module is deprecated in favor of using the step module with
an explicit python binary. Switching the code to use the step module and
remove DEPS on recipe_engine/python removes warnings when running recipe
tests in the repo.

Change-Id: If3c9d5d6aff5aab69898b535399accbef92f5c0b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3880624
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
3 years ago
Takuto Ikuta 7298625c85 recipes: use python3 for git_footers.py
Bug: 1327534
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: infra
Change-Id: I5c84648eef8930f51d3809692d1cb3ffa46db6f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3775846
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
3 years ago
Takuto Ikuta 90191b14c2 recipes: use vpython3 in gerrit recipe modules
This is to prevent failure like
https://ci.chromium.org/ui/p/chromium/builders/try/mac-rel/1057655/overview

Bug: 1327534
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: I922dddbd23eae0a02a95e020722b5edd1186ef77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3771540
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
3 years ago
recipe-roller 5b13afcae3 Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8815259687168433617

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
4cb1bf0fb0
  4cb1bf0 (gbeaty@chromium.org)
      Don't set the -u flag when running python unbuffered.

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: I0859db0f9db1c7548068073300150e979ac460b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3621157
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Garrett Beaty <gbeaty@google.com>
3 years ago
Xinan Lin ca3aae0014 Add step test data for update_files() in Gerrit module
Thus downstream recipes could run "train" without explicit
mock data everywhere.

BUG=1293270
TEST=train
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Change-Id: I09f6a27097f400dabd990f6ef61e301a75a39691
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3502768
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Xinan Lin <linxinan@chromium.org>
3 years ago
Garrett Beaty 4e4a2b865b Fix get_files_affected_by_patch to work with spaces in file names.
Bug: 1288604
Change-Id: Ie116316062e50138668299538a5e0759a1dd3fa9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3459466
Auto-Submit: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
3 years ago
Andrew Grieve c49a7334d3 Add gerrit_change_review_url to tryserver/api.py
This came up as a thing I wanted to use here:
https://chromium-review.googlesource.com/c/chromium/tools/build/+/3449158

Bug: None
Change-Id: I631c66a1b81bddedaf0e812a590a8e05db958fa5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3449844
Auto-Submit: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
3 years ago
Garrett Beaty dd93ebcac8 Add method for setting test data for get_files_affected_by_patch.
The get_files_affected_by_patch method on the test API will return a
TestData object that determines the output of the "git diff" call. a
Test was added specifically for the get_files_affected_by_patch API
method to ensure that the test API operates as expected.

Change-Id: Ia1846700461757a72ed518894a5a38a8ca54fcc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3422006
Auto-Submit: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Garrett Beaty <gbeaty@google.com>
3 years ago
Garrett Beaty d94f9a6d20 Add a method for enforcing a tryjob.
The tryserver.require_is_tryserver method will create an infra-failing
step that raises an exception if there is no CL associated with the
build. In the case of an LED task, it will only fail so as not to cause
the removal of the builder cache in the case of a minor user error.

Change-Id: I05d3a86cc727577f067fb3eae49e46398345f672
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3413971
Auto-Submit: Garrett Beaty <gbeaty@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
3 years ago
recipe-roller ffbe96997e Roll recipe dependencies (nontrivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8835439534712066113

Please review the expectation changes, and LGTM+CQ.

recipe_engine:
63c685b872~..f28ac0ab20025138a3f46845de09d625960c2a97
  63c685b (chanli@chromium.org)
      [buildbucket] test_api: emulate luci_context based on build info
  f28ac0a (chanli@chromium.org)
      Reland "[recipe-py] expose resultdb info in LUCI_CONTEXT"

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=nodir@chromium.org, tandrii@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: If2d4beb72d786f852feca9f4d43e08778bf71f3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3174366
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
Auto-Submit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
4 years ago
Gavin Mak bd0674c0d0 Fix remaining unicode py2+3 recipe module errors
Bug: 1227140
Change-Id: Ic29fff7556884935c301b35ba3995e281f178540
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3124901
Reviewed-by: Anthony Polito <apolito@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
4 years ago
Gavin Mak 535213f8cf Add PYTHON_VERSION_COMPATIBILITY to tryserver recipe module
Bug: 1227140
Change-Id: I67769aaf544ee43e58c7e0499d7b2a2a258d8fe9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3116776
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Anthony Polito <apolito@google.com>
4 years ago
Josip Sokcevic ce332a47a9 Use main as default branch in all recipes
Recipe-Manual-Change: build
Recipe-Nontrivial-Roll: build_limited
Recipe-Nontrivial-Roll: chrome_release
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: infra
Change-Id: I89008bc07b1c3de13d9c6dd64e723fe6dc8d01d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3015262
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Reviewed-by: Anthony Polito <apolito@google.com>
4 years ago
Stephanie Kim b992c4253f tryserver getter for CL repo host/project
Allows for quick retrieval of host and project without having to parse
gerrit_change_repo_url or hard coding.

Bug:
Change-Id: I43f6e0bfda4b54d742bfa7ea20ee781162796608
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2971110
Commit-Queue: Stephanie Kim <kimstephanie@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
4 years ago
Gavin Mak 6143a9473b Add python3 support to tryserver recipe module
Bug: 1227140
Change-Id: I54b9fb426e0471543be6c7801f5d5f76ff21c6f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3010715
Reviewed-by: Anthony Polito <apolito@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
4 years ago
Ben Pastene ad9487ab74 Add Cq-Depend to the list of known git footers in tryserver recipe_mod.
Gonna add a small warning in chromium's recipe when this footer is
used. Add it here so we can refer to the footer as a constant in
tryserver recipe_mod.

Bug: None
Change-Id: Ie4f9d1d208c0dad8d0df8f07b74e761da1051a1c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2864005
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Ben Pastene <bpastene@chromium.org>
4 years ago
Haiyang Pan 057831ef1f Recipe: Add timeout for fetching gerrit commit message in tryserver API
In crbug.com/1196159, a build got stuck at "gerrit changes" step for 3
hours. It would be good to add a timeout so that it fails early.

Also adjust the timeout for get_changes to 60s, from 600s

Bug: 1196159
Change-Id: Id2327ab40dd2fd8d95aaad6bb724f7ed06e6c244
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2811899
Commit-Queue: Haiyang Pan <hypan@google.com>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
4 years ago
Greg Guterman e8b56fbf3c Fix get_footer None AttributeError
R: nodir@chromium.org
Change-Id: Ib052dabd7a92b3643f7f2fa3cc7933eb7a60dd9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2753457
Auto-Submit: Gregory Guterman <guterman@google.com>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
4 years ago
Jacob Kopczynski e71d0282d1 Add list of canonical footers
Includes all footers used by the recipe. Other footers used only by presubmit
hooks not included.

Bug: chromium:1079219
Change-Id: I9c351bda158bc7c1e64a8254feb7055dc31fb6db
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2707709
Auto-Submit: Jacob Kopczynski <jkop@chromium.org>
Commit-Queue: Jacob Kopczynski <jkop@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
4 years ago
Jacob Kopczynski 03918630fa Refactor get_footers
It will be easier to support centralized management of what footers exist if we
require all callers to specifically declare which footers they want to check.
This is a partial step towards allowing that without increasing the number of
queries required. It introduced cache staleness as a potential issue, but should
not matter in practice.

Bug: chromium:1079219
Change-Id: I678fd366202bac5a4efa4258ffe02e70c64589bb
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: chromiumos
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2664790
Commit-Queue: Jacob Kopczynski <jkop@chromium.org>
Auto-Submit: Jacob Kopczynski <jkop@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
4 years ago
Nodir Turakulov 260eb0f662 [tryserver] Report affected files via property
To enable aggregate analysis on changed files in BigQuery, conditionally
report them via an output property.

This CL causes a non-trivial roll only because of the sorting.

Recipe-Nontrivial-Roll: build
Bug: 1151655
Change-Id: Ie7a6c622196143c1aef07af9a9a356fb4202ea56
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2553349
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
5 years ago
Josip Sokcevic 9c0dc3026e Replace non-inclusive terms
Bug: 1118410, 1118413, 1118422, 1118424, 1118426
Bug: 1118428, 1118430, 1118434, 1118438, 1118442
Bug: 1118453, 1118454
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build
Change-Id: I43e6305f8c3136774f01b57f12bb442bcb863371
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2551388
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
5 years ago
Xinan Lin 26ced49089 Improve the readability on variable name added in crrev/c/2528670
Bug: 1146487
Change-Id: I60476ac60ede4810f63403791386128508631db3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2551386
Commit-Queue: Xinan Lin <linxinan@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Xinan Lin <linxinan@chromium.org>
5 years ago
Xinan Lin 5589652282 Revert "Improve the setup logic for tryserver"
This reverts commit 4447336100.

Reason for revert: Breaks infra repo. See crrev.com/c/2548285

Original change's description:
> Improve the setup logic for tryserver
>
> If the given change does not have a valid gerrit host name, stop
> initializing the tryserver module.
> Also polished the variable name and docstr added in crrev/c/2528670.
>
> Recipe-Nontrivial-Roll: infra
> Bug:1146487
> Change-Id: I38193b25d37c724fd41d898eb020237fbf7cecdf
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2544000
> Commit-Queue: Xinan Lin <linxinan@chromium.org>
> Reviewed-by: Nodir Turakulov <nodir@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@google.com>

TBR=nodir@chromium.org,tandrii@google.com,recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com,linxinan@chromium.org,infra-scoped@luci-project-accounts.iam.gserviceaccount.com,sokcevic@google.com

Change-Id: I3871866454adab816ab5549f8273fe16af2d9adb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1146487
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2548409
Reviewed-by: Xinan Lin <linxinan@chromium.org>
Commit-Queue: Xinan Lin <linxinan@chromium.org>
5 years ago
Xinan Lin 4447336100 Improve the setup logic for tryserver
If the given change does not have a valid gerrit host name, stop
initializing the tryserver module.
Also polished the variable name and docstr added in crrev/c/2528670.

Recipe-Nontrivial-Roll: infra
Bug:1146487
Change-Id: I38193b25d37c724fd41d898eb020237fbf7cecdf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2544000
Commit-Queue: Xinan Lin <linxinan@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
5 years ago
Xinan Lin da73999f79 Make bot_update and tryserver module not crash for multiple changes
Currently bot_update and tryserver crashes at initialization step if
the input contains multiple gerrit changes. This is not friendly for
CrOS CLs, e.g. crrev.com/c/2536761.

This CL moves the “crash” out of initialization, thus the consumer
of these modules could control which gerrit change to pass to bot_update
and tryserver.

This CL does NOT enable the modules here to support multiple patchset,
but allows consumers to choose one.

Bug:1146487
Change-Id: Iec46a8041189912e34da9bc5e8ff4611123ec9e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2528670
Commit-Queue: Xinan Lin <linxinan@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
5 years ago
Quinten Yearsley b674f8a277 Edit depot_tools recipe_modules docstrings for consistency
Change-Id: I454e9c90d3159598ae34d97d22c96b9d20d55f80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2521656
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
5 years ago
Greg Guterman 35dec5f127 Add gerrit_change_owner field to tryserver recipe api
Bug: 923016
Change-Id: I1d55fb2403306763a06b44d2ea65caa0014936d3
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: build
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2292235
Commit-Queue: Gregory Guterman <guterman@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
5 years ago
Quinten Yearsley 925cedba7b Run spellchecker on depot_tools
This was made by running `codespell` and `scspell`
and then checking the results.

Change-Id: I169fd5b40294f83015075b4a899fbca263821f25
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2144602
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Auto-Submit: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
5 years ago
Andrii Shyshkalov 4d2824af52 Improve tests for api.tryserver.
R=yiwzhang

Bug: 1056725
Change-Id: Id09e1a243e7071b5dc5715d156063e4b08230e84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2080764
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
5 years ago
Andrii Shyshkalov e2aee98036 remove dead code.
R=smut

Change-Id: Ie919e4f90378ecdeb6a2e015cb313f044aa2d214
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2080206
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
Reviewed-by: smut <smut@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
5 years ago
Andrii Shyshkalov 8ac1b46551 Delete tryserver.set_do_not_retry.
Use cq.set_do_not_retry instead.
See https://crrev.com/c/2040838

R=yiwzhang

Change-Id: I110c398e794c19df30c42aa77e88a5da5d33276d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2040709
Commit-Queue: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
5 years ago
Andrii Shyshkalov e868546ad8 tryserver: delete failure_hash support.
It was used by CQ a while ago, but since 2019, it had little if any
effect, and has since been deleted from CQ entirely.

Companion CL
https://chromium-review.googlesource.com/c/chromium/tools/build/+/2040484

R=jbudorick

Change-Id: Ia570bce4886fa60a3bf16e88919f3a230d48fbc8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2040699
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
Auto-Submit: Andrii Shyshkalov <tandrii@google.com>
5 years ago
Edward Lemur b594247e39 Reland "depot_tools: Run recipe scripts using vpython."
Bug: 1002153
Recipe-Nontrivial-Roll: chromiumos
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: skia
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: release_scripts
Change-Id: I21b3223c5fc8a24fdafcc0795db51322cfe65148
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1865252
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
6 years ago
Michael Achenbach 61d3d4b0bd Revert "depot_tools: Run recipe scripts using vpython."
This reverts commit c6512213a7.

Reason for revert: The recipe-roll https://crrev.com/c/1859692 is
stuck on owners approval and blocks a P0 revert. Please watch and
assist the roll on next reland.

Original change's description:
> depot_tools: Run recipe scripts using vpython.
> 
> This is a reland of 88d7869db0
> 
> Original change's description:
> > Reland "depot_tools: Add httplib2 to .vpython"
> >
> > This is a reland of e1410883a3
> >
> > Use vpython to execute git_cl.py, gerrit_util.py and presubmit_support.py on recipes.
> >
> > Original change's description:
> > > depot_tools: Add httplib2 to .vpython
> > >
> > > Check that things won't break before further changes are made.
> > >
> > > Bug: 1002153
> > > Change-Id: I41866f26334bf9ec2732bc0f25007234a95130e4
> > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1854749
> > > Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org>
> > > Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
> > > Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
> >
> > Bug: 1002153
> > Recipe-Nontrivial-Roll: build
> > Recipe-Nontrivial-Roll: chromiumos
> > Recipe-Nontrivial-Roll: infra
> > Recipe-Nontrivial-Roll: skia
> > Recipe-Nontrivial-Roll: build_limited_scripts_slave
> > Recipe-Nontrivial-Roll: release_scripts
> > Change-Id: Id94057eae8830dec197257df3ea35c0c4ff946b7
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1856650
> > Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
> > Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> 
> Bug: 1002153
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: infra
> Recipe-Nontrivial-Roll: skia
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Recipe-Nontrivial-Roll: release_scripts
> Change-Id: If071bfd2e4514a06deec2c0d4196b4953841b64f
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1859895
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Anthony Polito <apolito@google.com>
> Reviewed-by: Andrii Shyshkalov <tandrii@google.com>

TBR=tandrii@google.com,ehmaldonado@chromium.org,apolito@google.com

Change-Id: I140264534db7eec0e1baf19354155d714fb58ed3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1002153
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1861974
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
6 years ago
Edward Lemur c6512213a7 depot_tools: Run recipe scripts using vpython.
This is a reland of 88d7869db0

Original change's description:
> Reland "depot_tools: Add httplib2 to .vpython"
>
> This is a reland of e1410883a3
>
> Use vpython to execute git_cl.py, gerrit_util.py and presubmit_support.py on recipes.
>
> Original change's description:
> > depot_tools: Add httplib2 to .vpython
> >
> > Check that things won't break before further changes are made.
> >
> > Bug: 1002153
> > Change-Id: I41866f26334bf9ec2732bc0f25007234a95130e4
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1854749
> > Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org>
> > Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
> > Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
>
> Bug: 1002153
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: chromiumos
> Recipe-Nontrivial-Roll: infra
> Recipe-Nontrivial-Roll: skia
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Recipe-Nontrivial-Roll: release_scripts
> Change-Id: Id94057eae8830dec197257df3ea35c0c4ff946b7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1856650
> Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

Bug: 1002153
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: infra
Recipe-Nontrivial-Roll: skia
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Recipe-Nontrivial-Roll: release_scripts
Change-Id: If071bfd2e4514a06deec2c0d4196b4953841b64f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1859895
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Anthony Polito <apolito@google.com>
Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
6 years ago
Nodir Turakulov 5abb9b7c5d Revert "Reland "depot_tools: Add httplib2 to .vpython""
This reverts commit 88d7869db0.

Reason for revert: Broke luci-go-presubmit. luci-go development has stopped. https://ci.chromium.org/p/infra/builders/try/luci-go-try-presubmit

Original change's description:
> Reland "depot_tools: Add httplib2 to .vpython"
> 
> This is a reland of e1410883a3
> 
> Use vpython to execute git_cl.py, gerrit_util.py and presubmit_support.py on recipes.
> 
> Original change's description:
> > depot_tools: Add httplib2 to .vpython
> >
> > Check that things won't break before further changes are made.
> >
> > Bug: 1002153
> > Change-Id: I41866f26334bf9ec2732bc0f25007234a95130e4
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1854749
> > Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org>
> > Commit-Queue: Andrii Shyshkalov <tandrii@google.com>
> > Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
> 
> Bug: 1002153
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: chromiumos
> Recipe-Nontrivial-Roll: infra
> Recipe-Nontrivial-Roll: skia
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Recipe-Nontrivial-Roll: release_scripts
> Change-Id: Id94057eae8830dec197257df3ea35c0c4ff946b7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1856650
> Reviewed-by: Andrii Shyshkalov <tandrii@google.com>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

TBR=tandrii@google.com,ehmaldonado@chromium.org,apolito@google.com

Change-Id: Ieecf0bf9164a14542a70ee6343763781a098a4a8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 1002153
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1858280
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
6 years ago