Commit Graph

387 Commits (ffd07cc90d8e6487ab3d216f1bb1de2698a73c57)

Author SHA1 Message Date
Debrian Figueroa 6095d40061 Make sure PresubmitResult can be converted to a json.
R=martiniss@google.com

Change-Id: Ida198bd834e39cc76d483a88a894f8e39d346976
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1681082
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Debrian Figueroa <debrian@google.com>
6 years ago
Debrian Figueroa dd2737e2b5 Augment presubmit_support to output a json summary.
Adds functionality to presubmit api to return error,
notification and warning messages caught in
presubmit_support.py in the form of a json.

Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Bug:971895
Change-Id: I42a3df3994077342216d002381b6135012b4334c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1666250
Commit-Queue: Debrian Figueroa <debrian@google.com>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Stephen Martinis <martiniss@chromium.org>
6 years ago
Edward Lemur 21000eb851 presubmit_support: Run tests on parallel when asked.
Bug: 819774
Change-Id: I19cd59aab23f3afb39da7fa04c470ad4b1c688f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1627402
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
6 years ago
Raul Tambre 7c93846385 Convert except statements to be Python 3 compatible
Ran "2to3 -w -n -f except ./".

The scripts still work with Python 2.
There are no intended behaviour changes.

Bug: 942522
Change-Id: Ifa274cb83f74cfa8ce092fffbb88f3ab5309e72c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1607841
Commit-Queue: Raul Tambre <raul@tambre.ee>
Auto-Submit: Raul Tambre <raul@tambre.ee>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
6 years ago
Raul Tambre 09e64b49ee Make presubmit scripts not inherit the executor script's context
This caused compatibility issues, because the executor script (presubmit_support.py) asks the parser for Python 3-style print functions and inherits this to the presubmit scripts it runs, of which some still use the old style statements.

Bug: 961783
Change-Id: I545d778991a53f484bce6c7e29089e0484dc19ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1605917
Auto-Submit: Raul Tambre <raul@tambre.ee>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
6 years ago
Raul Tambre 80ee78e7fa Convert print statements to Python 3 style
Ran "2to3 -w -n -f print ./" and manually added imports.
Ran "^\s*print " and "\s+print " to find batch/shell scripts, comments and the like with embedded code, and updated them manually.
Also manually added imports to files, which used print as a function, but were missing the import.

The scripts still work with Python 2.
There are no intended behaviour changes.

Bug: 942522
Change-Id: Id777e4d4df4adcdfdab1b18bde89f235ef491b9f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1595684
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Auto-Submit: Raul Tambre <raul@tambre.ee>
6 years ago
Yoshisato Yanagisawa 57dd17b46e expose temporary_directory.
Since python2 tempfile does not have TemporaryDirectory, we need to either use temporary_directory in gclient_utils or implement it by ourselves.  If we chose latter, we also need to implement rmtree for Windows.  Considering that, I suppose using gclient_utils should be much easier.

Bug: 939959
Change-Id: Ife21a2bc297ac61a4c1940b06df937c293961ae7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1524815
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Auto-Submit: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
6 years ago
Yoshisato Yanagisawa 04600b4f26 Expose gclient_paths via InputAPI.
The function we use with gclient_utils has moved to gclient_paths.
However, I am not sure gclient_utils is used by others or not.

Additional change:
- sorted testMembersChanged members for ease of understanding what is
  different.

Bug: 939959
Change-Id: I8b822e26afc73b39d2a33c5e07779c9c14cbd394
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1521850
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Fumitoshi Ukai <ukai@chromium.org>
6 years ago
Caleb Rouleau c0546b9817 presubmit: support 'Bug: 1234, 5678'
The current BugsFromDescription code returns ['1234, 5678'] but I think it
should return ['1234', '5678']. For 'BUG=1234, 5678' this already works.

This was preventing me from uploading
https://chromium-review.googlesource.com/c/catapult/+/1481239
because of https://cs.chromium.org/chromium/src/third_party/catapult/PRESUBMIT.py?q=catapult/PRESUBMIT.py&sq=package:chromium&g=0&l=52

See https://logs.chromium.org/logs/catapult/buildbucket/cr-buildbucket.appspot.com/8920885706080647120/+/steps/presubmit/0/stdout

Change-Id: Ibb3fca8c7a6ec664cdf9a38a8a7ac2bf66cb73ed
Reviewed-on: https://chromium-review.googlesource.com/c/1481240
Auto-Submit: Caleb Rouleau <crouleau@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
6 years ago
Edward Lemur 020b59722a presubmit: Remove EnsureCQIncludeTrybotsAreAdded
Bug: 845642
Change-Id: I552b2da4abbac7ca7f6f3961d2b1c5002fb26f47
Reviewed-on: https://chromium-review.googlesource.com/c/1351509
Reviewed-by: Andy Perelson <ajp@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
6 years ago
Edward Lemur 7e3c67f2c3 presubmit_support: Fix parallel execution of presubmit tests.
The flag value was not being propagated correctly.

Bug: 819774
Change-Id: I42519e1c84704b9a4a613005d3441b7ee12ea427
Reviewed-on: https://chromium-review.googlesource.com/1142533
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Yoshisato Yanagisawa 406de133ef Add gclient_utils to InputAPI export.
Let me make them exported via InputAPI to be used by our repo.

Change-Id: I1a0c7f49ab5a3c00b2617062444d67bbb9600837
Reviewed-on: https://chromium-review.googlesource.com/1117958
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
7 years ago
Aaron Gable 4b23a2c6d7 Remove more Rietveld support from presubmit
This simplifies future removals of unnecessary code from git-cl.

Bug: 770408
Change-Id: I20329fb6d93b349bf2e9f4aebc795b3f7ef0b646
Reviewed-on: https://chromium-review.googlesource.com/1070588
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
7 years ago
Edward Lemur 1037c743e3 presubmit: Don't overwrite cwd when running tests.
Sometimes 'cwd' has already been specified, for example by GetPythonUnitTests.
Don't overwrite it if it has been.

TBR=agable@chromium.org

Bug: 829084
Change-Id: Ide65c2811bcdd2628d4e886227d634dc66bfd297
Reviewed-on: https://chromium-review.googlesource.com/1038665
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Sergey Ulanov 166bc4ceed Add mojom and fidl files to DEFAULT_WHITE_LIST
This will allow to ensure that fidl and mojom files have proper
copyright header.

Bug: 831384
Change-Id: I5e41bbf27f2e3f2c6749a52de7463d651d033b81
Reviewed-on: https://chromium-review.googlesource.com/1036606
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
7 years ago
Kent Tamura 179dd1e016 input_api.DEFAULT_BLACK_LIST should not block third_party/blink.
We recently moved many files in third_party/WebKit to
third_party/blink. DEFAULT_BLACK_LIST should not block third_party/blink
as well as third_party/WebKit.

Bug: 836555
Change-Id: I5b3a3187f976b011c8efc8bf60635d6a5af1b56b
Reviewed-on: https://chromium-review.googlesource.com/1029562
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
7 years ago
John Budorick 161623779e presubmit: don't attempt to verify nonexistent vpython specs.
Bug: 834180
Change-Id: I431431e4fdf99c16c5fc3dbc7ed999b0c8da24bc
Reviewed-on: https://chromium-review.googlesource.com/1016690
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
7 years ago
Edward Lesmes 8e28279759 Reland "presubmit support: Run all tests in parallel."
Currently all tests in a PRESUBMIT.py file are run in parallel, but not
all tests across PRESUBMIT.py files.

This introduces a flag that will allow presubmit to run all tests across
PRESUBMIT files in parallel.

Bug: 819774
Change-Id: Idd3046cb3c85e9c28932a9789ba7b207a01d9f99
Reviewed-on: https://chromium-review.googlesource.com/994241
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 1ad681eca2 Revert "presubmit support: Run all tests in parallel."
This reverts commit c7d0b34084.

Reason for revert:

See https://logs.chromium.org/v/?s=infra%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8950238735438551408%2F%2B%2Fsteps%2Fpresubmit%2F0%2Fstdout
Two go bootstraps executing concurrently and breaking each other. govet and golint presubmit checks both try to bootstrap go at the same time. 


Original change's description:
> presubmit support: Run all tests in parallel.
> 
> Currently all tests in a PRESUBMIT.py file are run in parallel, but not
> all tests across PRESUBMIT.py files.
> 
> This introduces a pool common to all files so we can run all of them.
> 
> Bug: 819774
> Change-Id: Ic129af1bc9e6da568fa9fa71827193c6d8ab9af1
> Reviewed-on: https://chromium-review.googlesource.com/973691
> Reviewed-by: Aaron Gable <agable@chromium.org>
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>

TBR=agable@chromium.org,ehmaldonado@chromium.org

Change-Id: Ia5b5ae5af8d6cf9bd72388f58ff0f032a4367e10
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 819774
Reviewed-on: https://chromium-review.googlesource.com/994032
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Aaron Gable 668c1d8d1f Reland "Remove Rietveld support from presubmit"
Since no one can upload or land changes from Rietveld anymore,
PRESUBMIT and its support files no longer need to be able to
support it.

Bug: 770408
Change-Id: I4ca6391291e7b0755c78af453c3d006ad3666a17
Reviewed-on: https://chromium-review.googlesource.com/991053
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lesmes c7d0b34084 presubmit support: Run all tests in parallel.
Currently all tests in a PRESUBMIT.py file are run in parallel, but not
all tests across PRESUBMIT.py files.

This introduces a pool common to all files so we can run all of them.

Bug: 819774
Change-Id: Ic129af1bc9e6da568fa9fa71827193c6d8ab9af1
Reviewed-on: https://chromium-review.googlesource.com/973691
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Aaron Gable ecee74ca4e presubmit: don't die when skipping unknown checks
If someone doesn't want to run a check, and that check doesn't
exist... great! We won't be running that check anyway.

R=iannucci

Bug: 770408, 828154
Change-Id: I74478cac9988e21a1fadfb2c9d23dac1697aaa46
Reviewed-on: https://chromium-review.googlesource.com/991093
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Sean McCullough <seanmccullough@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable aa6ddc6017 Revert "Remove Rietveld support from presubmit"
This reverts commit f3eed0016e.

Reason for revert: Some PRESUBMIT checks still expect 
CheckRietveldTryJobExecution to exist.

Original change's description:
> Remove Rietveld support from presubmit
> 
> Since no one can upload or land changes from Rietveld anymore,
> PRESUBMIT and its support files no longer need to be able to
> support it.
> 
> R=​tandrii@chromium.org
> 
> Bug: 770408
> Change-Id: I749092b66fdca16d5cef77e8cefc905aa5375b50
> Reviewed-on: https://chromium-review.googlesource.com/693380
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>

TBR=agable@chromium.org,tandrii@chromium.org

Change-Id: I72e29bd8a9739406f29190adbeb7eb7718ed21cd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 770408
Reviewed-on: https://chromium-review.googlesource.com/991012
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable f3eed0016e Remove Rietveld support from presubmit
Since no one can upload or land changes from Rietveld anymore,
PRESUBMIT and its support files no longer need to be able to
support it.

R=tandrii@chromium.org

Bug: 770408
Change-Id: I749092b66fdca16d5cef77e8cefc905aa5375b50
Reviewed-on: https://chromium-review.googlesource.com/693380
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Robert Iannucci 5025893cb6 [presubmit_support] Prevent depot_tools' virtualenv from leaking into other repos.
Currently in LUCI `git cl` is invoked on chromium_presubmit using vpython. This
means that it operates under the depot_tools .vpython environment (which is
blank).

Some features in presubmit_support allow invocation of python subprocesses, and
previously they would use `sys.executable` (especially on windows, but
occasionally on non-windows as well).

In non-vpython environments, this just picks up the system python and whatever
modules happen to be installed there. Some python unittests work around this on
non-windows systems by having a shebang line which explicitly invokes vpython.

This CL changes presubmit_support so that invocations of 'python', or executions
of '.py' scripts will always end up invoking vpython. In the best case, this will
pick up the invoked scripts' vpython environment. In the worst case, this will
invoke the script under an empty vpython environment (aka "stock python").

R=dpranke@chromium.org, jbudorick@chromium.org, tandrii@chromium.org, tikuta@chromium.org

Bug: 821669
Change-Id: I5d2d5dfd0364022d56833c2c8af4983553a29c7a
Reviewed-on: https://chromium-review.googlesource.com/961865
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
7 years ago
Daniel Bratell 72272996b6 Remove duplicate assignment of same variable in presubmit code
Change-Id: I04261053a37db078e2aff579ab4521056cce673c
Reviewed-on: https://chromium-review.googlesource.com/931555
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
7 years ago
Aaron Gable 5d5f22ce9d Remove prompts to contact maruel
R=maruel

Change-Id: I0a5a18d598632bc77a8c70a21c8b3c4c2223d543
Reviewed-on: https://chromium-review.googlesource.com/899682
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Mun Yong Jang 603d01e818 [presubmit] Use GerritAccessor in CheckChangedLUCIConfigs
For tryjobs, determine the remote branch using GerritAccessor

Bug: 761488
Change-Id: Ieea6028d222af0014ec3a57c3ad7b7eb8af5ec33
Reviewed-on: https://chromium-review.googlesource.com/834995
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Aaron Gable 7817f02543 Reland "Use core.quotePath=false when git is listing files"
This is a reland of 9219d35688

The original was reverted due to a typo (core,quotePath instead
of core.quotePath). This version is fixed.

Original change's description:
> Use core.quotePath=false when git is listing files
>
> This prevents git from putting quotes around some file names
> (those that have astral-plane characters) and not around others.
>
> R=maruel
>
> Bug: 792302
>
> Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
> Reviewed-on: https://chromium-review.googlesource.com/815454
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>

Bug: 792302
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Change-Id: I28d2260948aaf63bd865888c2f60e4cdee9aea48
Reviewed-on: https://chromium-review.googlesource.com/822990
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Robbie Iannucci 6aaee3065c Revert "Use core.quotePath=false when git is listing files"
This reverts commit 9219d35688.

Reason for revert: unfortunately this says "core,quotePath" and since it includes recipe changes, we need something that the roller can munch on :(

Original change's description:
> Use core.quotePath=false when git is listing files
> 
> This prevents git from putting quotes around some file names
> (those that have astral-plane characters) and not around others.
> 
> R=​maruel
> 
> Bug: 792302
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
> Reviewed-on: https://chromium-review.googlesource.com/815454
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>

TBR=maruel@chromium.org,agable@chromium.org

Change-Id: I226388f19024403240a1443eb2b878b9293220e1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 792302
Reviewed-on: https://chromium-review.googlesource.com/821671
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
7 years ago
Aaron Gable 9219d35688 Use core.quotePath=false when git is listing files
This prevents git from putting quotes around some file names
(those that have astral-plane characters) and not around others.

R=maruel

Bug: 792302
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
Reviewed-on: https://chromium-review.googlesource.com/815454
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
7 years ago
Daniel Cheng d36fce4408 Fix silly bug in presubmit_support implementation of AppendCC.
The executor needs to accumnulate more_cc, not overwrite them.

Bug: 786386
Change-Id: Iadfe836ae9623f1b66d2db8209d347b5e61ccae8
Reviewed-on: https://chromium-review.googlesource.com/784553
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Daniel Cheng 7227d2175a Add OutputApi.AppendCC to allow presubmit checks to add CCs
Bug: 786386
Change-Id: If29acf287355d150e0f89f45b2f7aa87a08dcc57
Reviewed-on: https://chromium-review.googlesource.com/776645
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Raphael Kubo da Costa f2d1615bc8 presubmit: Add InputApi.CreateTemporaryFile()
Sometimes, InputApi users need to create temporary files, write to them and
pass them to another process, like this:

  with input_api.tempfile.NamedTemporaryFile() as f:
    f.write('foo')
    input_api.subprocess.check_output(['/path/to/script',
        '--reading-from', f.name])

While this works fine on Unix, on Windows subprocess cannot open and read
the file while we have it open for writing.

To work around this, we now offer a CreateTemporaryFile() that wraps a call
to tempfile.NamedTemporaryFile(delete=False), and we then take care of
removing all files created this way at the end of a presubmit run.

The idea is for users to do something like this:

  with input_api.CreateTemporaryFile() as f:
    f.write('foo')
    f.close()
    input_api.subprocess.check_output(['/path/to/script',
        '--reading-from', f.name])

with the temporary file being removed automatically in a transparent fashion
later.

Bug: 780629
Change-Id: I0d705a5d52928a43f39a51f94a2c48d277bd5ced
Reviewed-on: https://chromium-review.googlesource.com/758637
Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Andrew Grieve 92b8b99069 presubmit: Update pydoc for AffectedFile.LocalPath()
To mention that it should not be used for accessing files.

Change-Id: I01ea79134bfc1f394c1791d47eb6fdb798358941
Reviewed-on: https://chromium-review.googlesource.com/750646
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: agrieve <agrieve@chromium.org>
8 years ago
Dan Jacques 94652a3767 Add CIPD manifest PRESUBMIT.
Add CIPD manifest PRESUBMIT canned checks.

BUG=None
TEST=local

Change-Id: Ibf739147f47b4f38a2892c856cf45c5839d1c3e7
Reviewed-on: https://chromium-review.googlesource.com/707557
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
Aaron Gable 5254da1843 Revert "Capture ctrl-c in presubmit multiprocessing pool"
This reverts commit 873c28d175.

Reason for revert: Broken on Windows (crbug.com/762389)

Original change's description:
> Capture ctrl-c in presubmit multiprocessing pool
> 
> Presubmit spins up lots of multiprocessing processes to run
> each individual test. If you cancel your presubmit run with
> <ctrl>+c, that signal gets passed through to each of those,
> which then raises its own KeyboardInterrupt, and prints its
> own stacktrace.
> 
> This change has each member of the multiprocessing pool instead
> exit gracefully (albeit with an error code) so that only the
> parent process prints its stacktrace.
> 
> R=​michaelpg@chromium.org
> 
> Bug: 635196
> Change-Id: If9081910a359889a43bc1b72c91a859ebe37a1d6
> Reviewed-on: https://chromium-review.googlesource.com/651764
> Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
> Commit-Queue: Aaron Gable <agable@chromium.org>

TBR=iannucci@chromium.org,agable@chromium.org,michaelpg@chromium.org

Change-Id: Ib8e5b2f59b0060dfbfbeba348e211db292318b3b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 635196
Reviewed-on: https://chromium-review.googlesource.com/653434
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 873c28d175 Capture ctrl-c in presubmit multiprocessing pool
Presubmit spins up lots of multiprocessing processes to run
each individual test. If you cancel your presubmit run with
<ctrl>+c, that signal gets passed through to each of those,
which then raises its own KeyboardInterrupt, and prints its
own stacktrace.

This change has each member of the multiprocessing pool instead
exit gracefully (albeit with an error code) so that only the
parent process prints its stacktrace.

R=michaelpg@chromium.org

Bug: 635196
Change-Id: If9081910a359889a43bc1b72c91a859ebe37a1d6
Reviewed-on: https://chromium-review.googlesource.com/651764
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Takeshi Yoshino 07a6bea90f Expose ast via InputApi
To be used by https://chromium-review.googlesource.com/c/593708/

Bug:
Change-Id: I0d005bf6a6ba4262197a222cb337308551ed61a6
Reviewed-on: https://chromium-review.googlesource.com/595308
Commit-Queue: Takeshi Yoshino <tyoshino@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Aaron Gable 8b478f0406 PRESUBMIT: Be resilient to changes with no Code-Review label
Bug: 750694
Change-Id: I69778c3ea0789795ad7e50d11bf677df8f7bc262
Reviewed-on: https://chromium-review.googlesource.com/594839
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Jeremy Roman dce2250d14 Presubmit: Treat changes with Gerrit-style Tbr: header as TBRed.
Bug: 735158
Change-Id: I1444f34c84862f542909d0b70c5cdfd02394526c
Reviewed-on: https://chromium-review.googlesource.com/541638
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
8 years ago
Aaron Gable 12ef501b02 Parse Bug, R, and Tbr git-footers in PRESUBMIT
This gives PRESUBMIT equal support for all the
gerrit-style footers that we're migrating to.

R=iannucci@chromium.org, tandrii@chromium.org

Bug: 710327,710803
Change-Id: I64b8f39ef923d90ebda7dd191b83d1a7cc87c776
Reviewed-on: https://chromium-review.googlesource.com/506551
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable fc03e67e9a Refactor PRESUBMIT support for tags
We want PRESUBMIT to be able to equally support
BUG= tags (old style) and Git-Footer: footers
(new style). This change refactors the way that
the presubmit api gives access to those properties
so that it is easier to add support for equivalent
footers.

It also limits the scope of tags/footers that it
exposes, as code search shows no PRESUBMIT files
that take advantage of any of the more esoteric
ones.

Bug: 710327, 710803
Change-Id: I86f1d6cb2e1f0aff9653ef3fb455e0a6f47acf5d
Reviewed-on: https://chromium-review.googlesource.com/506450
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable b584c4f0d1 Make CQ_INCLUDE_TRYBOTS support review-specific
This CL wholly revamps the way presubmit_support adds
CQ_INCLUDE_TRYBOTS lines in commit descriptions. In
particular, when the CL is being uploaded to Gerrit,
it uses our pre-existing support for manipulating git
footers to make the whole process much simpler.

R=tandrii@chromium.org

Bug: 710547
Change-Id: I5858282a44c590f131021fa3820f1cb3f70ef620
Reviewed-on: https://chromium-review.googlesource.com/487831
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Kenneth Russell df6e7348b9 Fix addition of CQ_INCLUDE_TRYBOTS on Gerrit.
BUG=710547

Change-Id: I6558ba08683b8e010ac5051dabfd82d9a5b9c551
Reviewed-on: https://chromium-review.googlesource.com/486083
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
8 years ago
Aaron Gable 6f5a8d9987 Flip gerrit_util to raise exceptions on 404 by default
This makes the library behave more like what we'd expect,
while still allowing certain function to specify that
returning 204 or 404 is expected/acceptable behavior.

Change-Id: If3ce5598d1603819ee97aaeab0072a9e786ed96d
Reviewed-on: https://chromium-review.googlesource.com/481043
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 19ee16c860 Reland "Refactor ReadHttpResponse to be error-friendlier"
Gerrit sometimes returns a full response json object at
the same time as returning a non-200 status code. This
refactor makes it easier for calling code to request
access to that object and handle error cases on its own.

The original version of this commit had a bug where
ReadHttpResponse properly set the default value for
accept_statuses, but all calls which came through
ReadHttpJsonResponse were setting None instead.

Bug: 710028
Change-Id: I8cee435d8acd487fb777b3fd69b5e48e19d2e5a3
Reviewed-on: https://chromium-review.googlesource.com/481060
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 382674be12 Revert "Refactor ReadHttpResponse to be error-friendlier"
This reverts commit 6d7ab1bfe5.

Reason for revert: Stacktrace:
 File "/s/depot_tools/gerrit_util.py", line 816, in GetAccountDetails
   return ReadHttpJsonResponse(conn)
 File "/s/depot_tools/gerrit_util.py", line 376, in ReadHttpJsonResponse
   fh = ReadHttpResponse(conn, accept_statuses)
 File "/s/depot_tools/gerrit_util.py", line 365, in ReadHttpResponse
   if response.status not in accept_statuses:
TypeError: argument of type 'NoneType' is not iterable

Original change's description:
> Refactor ReadHttpResponse to be error-friendlier
> 
> Gerrit sometimes returns a full response json object at
> the same time as returning a non-200 status code. This
> refactor makes it easier for calling code to request
> access to that object and handle error cases on its own.
> 
> Bug: 710028
> Change-Id: Id1017d580d2fb843d5ca6287efcfed8775c52cd6
> Reviewed-on: https://chromium-review.googlesource.com/479450
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
> 

TBR=agable@chromium.org,tandrii@chromium.org,chromium-reviews@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ia9d9ce835e207a32e7cc8ee35c0cf40c823c7b78
Reviewed-on: https://chromium-review.googlesource.com/481059
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 6d7ab1bfe5 Refactor ReadHttpResponse to be error-friendlier
Gerrit sometimes returns a full response json object at
the same time as returning a non-200 status code. This
refactor makes it easier for calling code to request
access to that object and handle error cases on its own.

Bug: 710028
Change-Id: Id1017d580d2fb843d5ca6287efcfed8775c52cd6
Reviewed-on: https://chromium-review.googlesource.com/479450
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Jochen Eisinger d0573ec067 Use OldContents() for OWNERS files to do checks
BUG=141253
R=dpranke@chromium.org

Change-Id: Iacbc2f0571e725e4f2ccf5ea7878f101972289bb
Reviewed-on: https://chromium-review.googlesource.com/476610
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
8 years ago
Jochen Eisinger 76f5fc6cd9 Also print comments found in files during presubmit owners suggestion
R=dpranke@chromium.org
BUG=694222

Change-Id: I5676db2283dd43378293bc9bb32f71e0a1225806
Reviewed-on: https://chromium-review.googlesource.com/471609
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
8 years ago
Lei Zhang 9611c4cee5 Remove cruft of presubmit_support.py:
- TODO regarding --trybot-json
- TODO regarding SVN
- Remove else before return

BUG=583578

Change-Id: I486d4a48ecca729ec2ecfb78f41d4be28665f37d
Reviewed-on: https://chromium-review.googlesource.com/467266
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Jochen Eisinger eb7447605b Configure path to OWNERS.status file via toplevel OWNERS
BUG=694222
R=dpranke@chromium.org

Change-Id: Ie841332129dd6fa8555d2e940c919b812fc9408d
Reviewed-on: https://chromium-review.googlesource.com/467250
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
8 years ago
Jochen Eisinger 72606f8c24 Add support for a global status files for OWNERS
This allows for having some global comments such as timezones or
long-term unavailability.

The comments go into build/OWNERS.status (that way, they should be
available in all repos that map in build/ for the gn config files).
The local can be overwritten in codereview.settings.

The format is

email: status

Comments (starting with #) are allowed in that file, but they're ignored.

BUG=694222
R=dpranke@chromium.org

Change-Id: I49f58be87497d1ccaaa74f0a2f3d373403be44e7
Reviewed-on: https://chromium-review.googlesource.com/459542
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Daniel Cheng 2da34fea29 Fix typo in pydoc for OldContents().
BUG=702851

Change-Id: I56ae20bdc096aaa92ccb5e6e250349ccf4c01a32
Reviewed-on: https://chromium-review.googlesource.com/457913
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Daniel Cheng 7a1f04d377 Implement presubmit API to get the old contents of an affected file.
BUG=702851

Change-Id: I6f005d19524cbb8b361d3fcb0b91912885c46e00
Reviewed-on: https://chromium-review.googlesource.com/456755
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Kenneth Russell 61e2ed43fb Moved EnsureCQIncludeTrybotsAreAdded to OutputApi.
This makes them accessible to presubmit scripts' PostUploadHook.

Fixed bugs where caching needed to be bypassed in order for
sequential PostUploadHooks to see each others' results.

BUG=688765

Change-Id: I56c0c6b6419e2474f4b7f701be036fb2a524f8e3
Reviewed-on: https://chromium-review.googlesource.com/439877
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
8 years ago
Kenneth Russell 1678a364a5 Add presubmit_support.EnsureCQIncludeTrybotsAreAdded.
The PostUploadHooks in the Chromium repository which add
CQ_INCLUDE_TRYBOTS entries to the issue description will be rewritten
in terms of this primitive, which will compose properly if multiple
sub-directories attempt to modify it.

BUG=688765

Change-Id: Icf72edb872f29af1e082038e96bc547504edfd07
Reviewed-on: https://chromium-review.googlesource.com/438925
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
8 years ago
Andrii Shyshkalov 9c3a464bf7 For Gerrit: use CURRENT_COMMIT option to get description, not gitiles.
R=sergiyb@chromium.org
BUG=681704

Change-Id: I48804955d8e5e579eae6e60fccac304aaaa9230e
Reviewed-on: https://chromium-review.googlesource.com/430625
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Quinten Yearsley b2cc4a94da depot_tools: Replace pylint error numbers with symbolic names.
This affects a bunch of files, but only changes comments,
and shouldn't make any difference to behavior.

The purpose is to slightly improve readability of pylint
disable comments.

Change-Id: Ic6cd0f8de792b31d91c6125f6da2616450b30f11
Reviewed-on: https://chromium-review.googlesource.com/420412
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
8 years ago
Quinten Yearsley 516fe7f881 Presubmit: if there are warnings and may_prompt is false, don't fail.
Rationale: The description of the -f flag to git cl upload is "force
yes to questions (don't prompt)", so when git cl upload -f is run,
I would expect it to abort on errors, but still continue on warnings.

When the -f is given, DoPresubmitChecks is called with may_prompt=False;
this CL would change the behavior of DoPresubmitChecks so that when
may_prompt is False and there are warnings but no errors, then that
means we will print warnings but not fail.

BUG=671683

Change-Id: Ie0f1ac1983d875226db8ad741cbce3dc0bc4eb96
Reviewed-on: https://chromium-review.googlesource.com/419148
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
8 years ago
Aaron Gable f5644a927c Fix keyerror in presubmit_support
BUG=669153

Change-Id: I1e078bfc83ccfa4fd3785fd7388560c4ba43b735
Reviewed-on: https://chromium-review.googlesource.com/416389
Reviewed-by: Mike Stipicevic <stip@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
agable 0b65e732b4 Remove SVN support from PRESUBMIT
R=maruel@chromium.org
BUG=475320

Review-Url: https://codereview.chromium.org/2394043002
9 years ago
Andrii Shyshkalov c6c8b4c99b presubmit_support for Gerrit: don't ignore 404.
Before, presubmit_support would fail with not very useful stacktrace if
Gerrit returns 404, which is usually due to missing/invalid credentials.

This CL fixes that and improves the exception message, and also improves
logic in git_cl.

R=agable@chromium.org
BUG=

Change-Id: Iae8f0c24422c46af70929c7d5d71993164887511
Reviewed-on: https://chromium-review.googlesource.com/409650
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
9 years ago
qyearsley 136b49ff7e depot_tools: Remove DoGetTrySlaves, GetTrySlavesExecuter, GetPreferredTrySlaves
Note: This CL originally just removed a deprecated use of Remove use of DoGetTrySlaves, suggested in http://crrev.com/2442153002, then was expanded to remove DoGetTrySlaves, GetPreferredTrySlaves and GetTrySlavesExecuter since these are all deprecated and unused.

BUG=660453

Review-Url: https://codereview.chromium.org/2453823002
9 years ago
thakis adcd4b78d5 presubmit_support: Remove a noisy logging.debug()
On a CL with a single file, presubmit writes all this noise:

Running /b/build/slave/linux/build/src/PRESUBMIT.py
DEBUG:root:Running CheckChangeOnCommit in /b/build/slave/linux/build/src/PRESUBMIT.py
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.(cc|cpp|cxx|mm)$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:git diff -p --no-color --no-prefix --no-ext-diff 691e0c7d46341465de7a605b5f2aee941ccfedc0...HEAD --no-renames;  cwd=/b/build/slave/linux/build/src
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:/usr/bin/python /b/build/slave/linux/build/src/tools/checkperms/checkperms.py --root /b/build/slave/linux/build/src --file content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:^(android_webview|base|content|net)[\\\/].* matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.(cc|cpp|cxx|mm)$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:LocalPaths: ['content/browser/gpu/gpu_data_manager_impl_private.cc']
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.(cc|cpp|cxx|mm)$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:.+\.cc$ matched content/browser/gpu/gpu_data_manager_impl_private.cc
DEBUG:root:Running CheckChangeOnCommit done.

The "a matched b" lines are boring and numerous, so remove this log line.
If we ever need it to debug something, we can add it back then (temporarily).

(From https://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/260304/steps/presubmit/logs/stdio)

BUG=none

Review-Url: https://codereview.chromium.org/2341103002
9 years ago
scottmg 86099d7ce5 Shutdown multiprocess pool after running tests to avoid _finalizer spew on Windows
Can't just let the GC collect the pool on Windows.

R=tandrii@chromium.org
BUG=618726

Review-Url: https://codereview.chromium.org/2296723006
9 years ago
agable 92bec4f56f Delete gcl, drover, and trychange
These tools are relatively standalone, and only ever worked for SVN.
Removing these is a good start to removing other SVN support code.

R=maruel@chromium.org
BUG=475321

Review-Url: https://codereview.chromium.org/2269413002
9 years ago
tobiasjs ff061c0d1d Do not assume that all presubmit directories still exist.
In the case where a CL deletes the last file in the directory,
it is listed in the presubmit files list, but the directory to
which it refers will not exist, leading to os.listdir failing.

BUG=638343

Review-Url: https://codereview.chromium.org/2250353003
9 years ago
tobiasjs 2836bcf810 Support additional user presubmit scripts named PRESUBMIT*.py.
This allows users to specify additional local presubmit tests that
do not need to exist as locally maintained changes to PRESUBMIT.py
files.

BUG=

Review-Url: https://codereview.chromium.org/2232203002
9 years ago
agable 565adb55a6 Have presubmit accept various Code-Review label configurations
Since different projects can have different configurations for what
the maximum value of the "Code-Review" label is in Gerrit, this teaches
presubmit_support to inspect the maximum configured value and see who
has granted it (the same behavior as the Submit button in Gerrit itself).

R=andybons@chromium.org, martiniss@chromium.org, tandrii@chromium.org
BUG=630738

Review-Url: https://codereview.chromium.org/2178673002
9 years ago
dtu 944b60530e Fix per-file owners check for deleted files.
Previously if you deleted a file that you had per-file owners on, it would fail
the owners check. This fixes that.

Originally, owners.Database used glob to enumerate the directory and added all
the matching files in the directory to some dicts holding the owners
information. If a CL deleted a file, it'd no longer be on the filesystem, so it
wouldn't be in these dicts. There'd be no per-file owners information for it.

With this patch, the Database no longer enumerates individual files. It instead
keeps track of the glob patterns and checks the CL's files against the patterns
at lookup time.

BUG=622381
TEST=tests/owners_unittest.py && tests/owners_finder_test.py  # Unit test included.

Review-Url: https://codereview.chromium.org/2148153002
9 years ago
sergiyb f8a3b38c36 Report keyboard interrupt as abnormal (infra) failure
R=tandrii@chromium.org
BUG=579589

Review-Url: https://codereview.chromium.org/2125713002
9 years ago
dcheng 091b7db64c Expose fnmatch in presubmit's input_api.
BUG=611905

Review-Url: https://codereview.chromium.org/2070493002
9 years ago
dbeam@chromium.org 78d65556a8 Remove unused PresubmitAddReviewers
R=dpranke@chromium.org
BUG=none

Review-Url: https://codereview.chromium.org/1960763002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300488 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org 37b07a78ee Reland Implement owners check in presubmit for Gerrit.
R=machenbach@chromium.org,phajdan.jr@chromium.org
BUG=605563

Review-Url: https://codereview.chromium.org/1927773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300353 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org 83b1b238c6 Revert of Implement owners check in presubmit for Gerrit. (patchset #5 id:80001 of https://codereview.chromium.org/1927773002/ )
Reason for revert:
now it doesn't work for gerrit. Damn it.

Original issue's description:
> Implement owners check in presubmit for Gerrit.
> 
> R=machenbach@chromium.org,phajdan.jr@chromium.org
> BUG=605563
> 
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=300350

TBR=machenbach@chromium.org,phajdan.jr@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=605563

Review-Url: https://codereview.chromium.org/1935563002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300352 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org b4cd1960d5 Implement owners check in presubmit for Gerrit.
R=machenbach@chromium.org,phajdan.jr@chromium.org
BUG=605563

Review-Url: https://codereview.chromium.org/1927773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300350 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
machenbach@chromium.org 6996a10666 Revert of Implement owners check in presubmit for Gerrit. (patchset #3 id:40001 of https://codereview.chromium.org/1927773002/ )
Reason for revert:
Breaks presubmit:
https://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/175120/steps/presubmit/logs/stdio

Original issue's description:
> Implement owners check in presubmit for Gerrit.
> 
> R=machenbach@chromium.org,phajdan.jr@chromium.org
> BUG=605563
> 
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=300320

TBR=phajdan.jr@chromium.org,tandrii@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=605563

Review-Url: https://codereview.chromium.org/1928343002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300326 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org f48a375153 Implement owners check in presubmit for Gerrit.
R=machenbach@chromium.org,phajdan.jr@chromium.org
BUG=605563

Review-Url: https://codereview.chromium.org/1927773002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300320 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org 57bafac9aa Add --dry_run to presubmit_support.
Also, implement skipping of CheckOwners presumbit canned check. To be used by run_presubmit recipe in build repo in 
https://codereview.chromium.org/1931633002

R=sergiyb@chromium.org,phajdan.jr@chromium.org,machenbach@chromium.org
BUG=594127

Review-Url: https://codereview.chromium.org/1923623004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300262 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
tandrii@chromium.org 015ebae720 Add basic Gerrit support for presubmit_support.
R=andybons@chromium.org,scottmg@chromium.org
BUG=605563

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300164 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
phajdan.jr@chromium.org 2ff301874b depot_tools: remove code for --trybot-json
It was added in https://codereview.chromium.org/112503005
for https://bugs.chromium.org/p/chromium/issues/detail?id=278558 ,
but we ended up implementing the functionality in different way.

BUG=583578

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299433 0039d316-1c4b-4281-b951-d872f2087c98
9 years ago
primiano@chromium.org b9658c343c presubmit: unblacklist third_party/WebKit
The current DEFAULT_BLACKLIST in presubmit_support blacklists by
default third_party/.* in every repo. This requires an adjustement
after the blink merge, as it causing all the blink presubmits to
become noops.

BUG=539768

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@297030 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
iannucci@chromium.org d61a4950b2 Changes to improve multiprocessing PRESUBMIT support in Windows
* make RunTest's multiprocessing.Pool in the constructor of InputApi
    to avoid getting tripped up by chdir manipulation.
  * Don't do the split cyclic-import check when the invoker of the
    Pylint presubmit checks explicitly sends cyclic import check
    parameters via extra_args
  * fix pseudobug where ownership of the files variable was unclear,
    and pass all arguments on stdin (instead of mix of CLI + stdin).
  * fix bug in pylint which caused it to manipulate sys.path before
    spawning its subprocesses, which caused multiprocessing to fail
    on windows.
    * Note: This may carry a slight semantic change. Before, pylint would
      add all .py files' directories to sys.path while checking any of
      them. Now in parallel mode, pylint will only add the path of the
      single file to sys.path. This behavior actually mirrors Python's
      own behavior, so the check should be more-correct than before (and
      should cut down on pylint import scanning time with very large
      sys.path's).
    * If someone encounters an issue with this, please note that the
      GetPylint check also includes an extra_paths_list which is
      expressly for this purpose.

R=dpranke@chromium.org, kbr@chromium.org, maruel@chromium.org
BUG=501012

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295908 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
iannucci@chromium.org 0af3bb37eb Parallelize pylint PRESUBMIT checks.
R=maruel@chromium.org
BUG=479837,499650

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295664 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
vadimsh@chromium.org cf6a5d2026 Extract authentication options handling into a separate function.
It is done in preparation for switching to OAuth2 as default (and only)
authentication method. Having all auth options handled by the same code makes it
easier to gradually add OAuth2 support.

As part of this, some options that would no longer work with OAuth2 (and that
are not being used from anywhere now, as far as I can tell) are removed:
  * Passing account password for authentication via command line.
  * Overriding 'Host' header when making requests to Rietveld (won't work with
    SSL anyway).
  * --account_type option (seems to be ClientLogin specific).

R=maruel@chromium.org
BUG=356813

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294746 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
sbc@chromium.org 013731e832 Handle KeyboardInterrupt consistently in python scripts
Handle KeyboardInterrupt gracefully rather the printing a
backtrace. Most users of these tools don't expect a
backtrace when then hit Ctrl-C.

Also, fix a few other inconsistencies found in the python
startup code of these different scripts:
- always call main function 'main' (rather than 'Main')
- always return 0 from main function
- if main takes args never include argv[0]

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294250 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
rmistry@google.com 5626a92eec Add ability to specify and run post upload hooks.
Motivation: There are a few things we want to do in Skia infrastructure that is not possible to do without this functionality.
Eg1: If there is a change made to Skia's markdown then automatically include a 'DOCS_PREVIEW_URL=https://skia.org?cl=1234' in the CL's description.
Eg2: Automatically add 'NOTRY=true' for changes impacting things that do not need trybot runs.
Eg3: Include CL specific links to skia's perf (https://perf.skia.org/) and correctness (https://gold.skia.org/) servers.

BUG=chromium:462208

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294242 0039d316-1c4b-4281-b951-d872f2087c98
10 years ago
thakis@chromium.org c6ef53a877 Revert of Added orphaned compiled Python file checks. (patchset #2 id:20001 of https://codereview.chromium.org/621533002/)
Reason for revert:
Makes `git cl upload` very slow in chrome checkouts.

Original issue's description:
> Added orphaned compiled Python file checks.
> 
> There have been a handful of cases where orphaned compiled Python files (.pyc
> files without an accompanying .py file) have been loaded preferentially by
> the presubmit scripts, causing weird problems. This adds a check and a mode for
> such files, either warning the user or deleting them.
> 
> BUG=None
> TEST=local
>   - Tested against local repository.
> 
> R=iannucci@chromium.org, szager@chromium.org
> 
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=292703

TBR=iannucci@chromium.org,szager@chromium.org,dnj@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=None

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292818 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
dnj@chromium.org e917ddc33d Added orphaned compiled Python file checks.
There have been a handful of cases where orphaned compiled Python files (.pyc
files without an accompanying .py file) have been loaded preferentially by
the presubmit scripts, causing weird problems. This adds a check and a mode for
such files, either warning the user or deleting them.

BUG=None
TEST=local
  - Tested against local repository.

R=iannucci@chromium.org, szager@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292703 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
pgervais@chromium.org bd0cace8c1 Added os to input_api
BUG=
R=maruel@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292291 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
agable@chromium.org 40a3d0b62b Recursively find all tests in a git repo.
This method is necessary to allow good code organization (i.e., unittests live
adjacent to the source files they test) in the new infra.git repository.

R=maruel@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@270564 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
pgervais@chromium.org e57b09db3a Fixed wrong test
BUG=366554

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@268647 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
agable@chromium.org ea84ef1828 Get presubmit_support to compute diffs against a given upstream.
R=hinoka@chromium.org
BUG=368720

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@267309 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
agable@chromium.org 2da1ade7b4 Add --upstream flag to presubmit_support for Git.
R=hinoka@chromium.org
BUG=368720

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@267254 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
pgervais@chromium.org 2f64f78a07 logged changed paths list
This should help debugging should presubmit failures on a CQ.

BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@266063 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
djacques@chromium.org 7b654f5942 Added implicit empty password to 'presubmit_support.py'
BUG=363477
TEST=localtest

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@263781 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
pgervais@chromium.org 92c300923c Added POST capability to oauth Rietveld
BUG=319446

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@263750 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
isherman@chromium.org b5cded6951 Infer CL author and reviewer list from local state if the issue has not previously been uploaded.
R=agable@chromium.org
BUG=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@259250 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
mdempsky@chromium.org d59e761ba8 Make missing PRESUBMIT.py warning consistent with others.
Review URL: https://codereview.chromium.org/188013003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@255125 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
alokp@chromium.org f634964529 Fix presubmit checks when --trybot-json flag is specified.
Must change current working directory to the presubmit file's directory
to follow the contract of the presubmit scripts.

BUG=348691

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@254618 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
machenbach@chromium.org 58a69cbe01 Support multiple try masters when sending tries to rietveld.
BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@254321 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
maruel@chromium.org 1ce8e665e7 Do not tell people to ask me for help. I won't help them.
Write a small HowTo to help confused people by confusing checks.

R=iannucci@chromium.org
BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@244717 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
stip@chromium.org f7d31f5296 Have presubmit.py accept an option to output trybot data as json.
BUG=278558

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@242918 0039d316-1c4b-4281-b951-d872f2087c98
11 years ago
stip@chromium.org 5ca2762dea Allow PRESUBMIT.py files to have old and new-style trybot specifications (as long as each file is consistent).
BUG=278554

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@241590 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
maruel@chromium.org ffeb2f36d7 Print test duration in verbose mode.
This is useful to diagnose slow tests. Make this multiprocessing aware. Stop
printing when the commands are added but use the proper message system instead.

R=iannucci@chromium.org
BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@238388 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
stip@chromium.org 68e0419d2f Rework bot and test parsing to allow receipt of (bot, set(test)) specifications.
This is needed for a further CL to unify TS and CQ using PRESUBMIT.py.

BUG=278554

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@232813 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
thakis@chromium.org c1c963566a Remove references to sconsbuild.
scons hasn't been used in a long time.

Also remove support for using make on Mac, it's no longer supported. All bots
that were using make on mac are using ninja these days.

BUG=305702

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@227778 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
danakj@chromium.org 1827852dbe Update hack in presubmit check to reflect new chromium path.
src/base/hash_tables.h has moved to src/base/containers/hash_tables.h in r205241.

R=maruel@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16787005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@205662 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
nick@chromium.org ff526198c4 presubmit_support: Call git once per change, to get a diff for all files. Parse this result to generate per-file diffs, which go into a cache that's shared between the AffectedFile instances.
Greatly improves presubmit performance on Blink where there may be rule violations (my test case went from 50s to 5s).

BUG=236206
TEST=new test in presubmit_unittest.py; manual performance test on Mac and Windows after touching hundreds of files in webkit; testing included add/move/edit/delete on both binary and text files.

Review URL: https://chromiumcodereview.appspot.com/15898005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@205275 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org 5678d33ca8 Change parallel test logic to run only with jobs>1
Regular map is preferred when parallization does
not speed presubmit tests.  It makes stacktraces more
understandable and facilitates debugging.  Only use
parallel pool when tests > 1.

R=maruel@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15385002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@200940 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org 9c60ab237a Fix RunTests to not stall on empty test list
Some PRESUBMIT files dynamically generate test list
and so may pass an empty list to RunTests.  There
appears to be a bug in multiprocessing.Pool that
causes a stall in map_async with an empty list.

TBR=maruel

Review URL: https://chromiumcodereview.appspot.com/14962011

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@200613 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org e7ceaadef1 Fix uninitialized variable error in presubmit_support
Remove 'out' variable reference.  If subprocess.communicate()
throws an exception, out cannot contain data.

BUG=236073
TBR=cmp

Review URL: https://chromiumcodereview.appspot.com/14386022

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@196904 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 720fd7ae8d Allow presubmit_support to fetch issue data from Rietveld.
R=ilevy@chromium.org, maruel@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/13966016

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@196023 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
ilevy@chromium.org bc11731a9e Add support for parallel presubmit unit testing.
Enable parallel tests on depot_tools.
On Z620 presubmit times: 3m -> 35s.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@195377 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
maruel@chromium.org c6f60e8906 Fix R= line handling when there is no value and improve presubmit TAG line regex
Make it more consistent across the tool. Using \s also includes \n, which
confuses the tool.

Add more tests.

R=iannucci@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14265007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@195214 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
enne@chromium.org e72c5f519a Add cpplint to presubmit input_api
This will let clients that don't use the heavily filtered canned cpplint
check and want to behave more strictly (aka cc/) reuse any common
settings applied to the cpplint module.

R=maruel@chromium.org
BUG=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@194264 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
wez@chromium.org a6d011e8dc Add PresubmitPromptOrNotify helper.
PresubmitPromptOrNotify prints the message and prompts the user only
if the presubmit is on upload, not commit.

This is useful to provide upload-time sanity checks without blocking
the CL from being landed via the commit-queue.


Review URL: https://chromiumcodereview.appspot.com/12676031

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@190711 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
iannucci@chromium.org 8a4a2bc611 Add skip_canned option to presubmit_support.
This will replace the hack in commit-queue/verification/presubmit_shim, and will
be used on the presubmit trybot.

R=maruel@chromium.org
BUG=

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@186922 0039d316-1c4b-4281-b951-d872f2087c98
12 years ago
maruel@chromium.org 4bac4b5517 Create CachingRietveld to automatically cache results for presubmit checks.
Multiple presubmit checks may call the same function multiple times, so it's
worth caching the results to speed up the presubmit check run.

Convert presubmit_support, git-cl and gcl to use it.

R=dpranke@chromium.org
BUG=


Review URL: https://chromiumcodereview.appspot.com/11280143

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@169726 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
dpranke@chromium.org 17cc244cdb implement per-file OWNERS support
R=maruel@chromium.org
BUG=119394


Review URL: https://chromiumcodereview.appspot.com/11114005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@162529 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
gavinp@chromium.org 656326d43d Permit google app engine to be installed in testing_support.
I recently needed to run presubmit tests in depot_tools, and I was helpfully told:

$ gcl presubmit mychange
... eliding stuff ...
Install google_appengine sdk in /scratch/scratch/chrome/depot_tools_git/testing_support or higher up

This was a lie. If you put google_appengine there, the same presubmit
tools that told you to install it there will fail you for numerous
style violations contained within appengine itself. This change makes
us ignore those by blacklisting google_appengine inside of
testing_support.

Review URL: https://chromiumcodereview.appspot.com/10829293

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@151210 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 4f6852cca4 Remove python 2.5 compatibility code.
R=cmp@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/10165007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133265 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 3ecc8ea477 Adds saner behavior for git try -t foo to not fail in a inexplicable way.
Enforces that each builder and builder:test association must be in its own list item in PRESUBMIT.py/GetPreferredTrySlaves().

If a user run git try -t foo, trychange.py will now take the list of all the
slaves, will skip any :compile builder, and apply the test filter to them.

Currently, git try -t foo on a chromium checkout throws an exception because of
PRESUBMIT.py files containing test specification.

R=petermayo@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/9664015

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@125975 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
estade@chromium.org ae7af92aba Add CSS as a source file type.
this forces license headers, no line-end whitespace, etc.

Also update the default license header regex to allow concluding */ on the final line.

Review URL: http://codereview.chromium.org/9109001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@119448 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 9b31f1678b Fix running presubmit_support.py directly
R=cmp@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/9234038

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@119264 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org 3bbf29439c Cache diff to speed up when the diff is processed multiple times
R=dpranke@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/9127026

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@117040 0039d316-1c4b-4281-b951-d872f2087c98
13 years ago
maruel@chromium.org d579fcf951 Enforces using cwd in all svn calls.
That helps weed out some issues faces with svn plus helped me figure out some
misuses.

Most of the commands have been implicitly depending on os.getcwd(). This change
makes it always consistent and clear when dependence on the current directory is
needed.

Remove default arguments to scm.SVN.GenerateDiff and a few other calls to be
sure the refactoring was done right.

R=dpranke@chromium.org
BUG=
TEST=make sure most commands aren't broke


Review URL: http://codereview.chromium.org/8771042

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@114262 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 428342a0a7 Standardize the sys.path fix up and fix a few pylint warnings.
Disable temporarily W0403, will be reenabled on the next CL

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/8508017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@109435 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 7ccb4bb83e Blacklist .diff and .patch files
Otherwise, silly checks like EOL whitespace triggers constantly.

R=dpranke@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/8494013

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@108899 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org e085d81a36 Add assert to make sure the files argument type is valid.
This would have caught a bug in the CQ instead of silently failing.

R=dpranke@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/8203002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@104767 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
asvitkine@chromium.org 1516995e79 Support for |change| argument to |GetPreferredTrySlaves()|, try 2.
Needed to make it so changes containing only *.mm are only sent to Mac trybots by default.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/8059009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102930 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 6fb14d906b Revert r102783 "Support for |change| argument to |GetPreferredTrySlaves()|."
Cause an infinite recursion in some context.

TBR=asvitkine@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/8036046

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102836 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 7af6c4dc80 Use universal EOL conversion when calling the text editor in gcl.
This was causing issues for windows user with notepad2.

Fix trychange.py on python2.5.

R=dpranke@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/8038028

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102797 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
asvitkine@chromium.org c0c424bca4 Support for |change| argument to |GetPreferredTrySlaves()|.
Needed to make it so changes containing only *.mm are only sent to Mac trybots by default.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7925014

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@102783 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org fae707be99 Fix a typo that resulted in no tests to be run in depot_tools. :(
Add a warning when RunUnitTestsInDirectory() finds no test to run to
catch this kind of regression.

Fix all the regressions that where introduced in the meantime...

TBR=dpranke@chromium.org
BUG=
TEST=


Review URL: http://codereview.chromium.org/7906009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@101347 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org cc73ad68ff Remove manual --tbr support and convert it into automatic TBR= detection.
It result in less code, forces uploading the change for eventual review and most
importantly enables the commit queue to correctly handle this.

BUG=
TEST=

Review URL: http://codereview.chromium.org/7253015

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@91575 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org c33455af29 Remove files without an extension from the presubmit checks.
This may include Makefile but it's saner to not include it by default

R=dpranke@chromium.org
BUG=
TEST=updated

Review URL: http://codereview.chromium.org/7251002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@90403 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 239f411a1d Add --rietveld_XXX arguments to presubmit_support to the commit queue can use it.
presubmit_support.py can now creates a Rietveld object on its own.

This is necessary since the object needs to be recreated out of process. The
commit queue runs the presubmit check out of process for sanity reasons.

Added TODO to push the cookie instead of the password.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/7058054

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87842 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 6fba34d0cf Add input_api.logging.
This makes it possible to dump logging information from a PRESUBMIT script when
calling git cl presubmit -v -v -v for example.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/7027031

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87603 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org fe1211ae6e Improve the sources regexp to be more correct.
R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/7030023

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@87185 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
bradnelson@google.com 78230020bb Allowing project name to be used to select groups of bots.
BUG=79546
TEST=None
Review URL: http://codereview.chromium.org/7063004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@86460 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
sail@chromium.org 5538e022ab Remove presubmit warning for long lines in .grd files
The presubmit check complained about long lines in .grd files. This isn't a useful warning since .grd files aren't really source files.

The problem was that callers were passing in a file filter to InputApi.AffectedFiles but it was being ignored. Fix was to use the passed in file filter.

BUG=None
TEST=Ran on a local change and verified that I no longer got long line warnings on .grd files.
Review URL: http://codereview.chromium.org/6932060

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@85148 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
nick@chromium.org 2a3ab7e861 presubmit_support: cache the result of ChangedContents.
Review URL: http://codereview.chromium.org/6897005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@83228 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org ea7c855b52 Inhibit python subprocess from generating .pyc files anymore.
This would case a failure when:
- a .py file is moved
- *.pyc is in svn:ignore, causing the .pyc to not be deleted.
- the new .py modifies its API.
- another .py imports the old .py and uses the new API.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6854022

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@81942 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 58407af8be Add author to Change object. Don't set it yet.
It's mostly to be used with the commit queue.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6820076

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@81326 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org c193875b49 Use class-level variable instead of instance members for Change object.
R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6821083

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@81322 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org cab38e994e First stab at using Rietveld wrapper object in both gcl.py and git-cl.
Exposes InputApi.rietveld and deprecate host_url.

This is useful since it places authentication at a single place.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6825008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@81019 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 899e1c1a61 Add verbose support throught presubmit checks
Add propagation of verbose flag from git cl to presubmit_support

Rename NotImplementedException to standard NotImplementError.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6810012

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@80798 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 84f4fe3755 Use subprocess2 so check_call() can be use consistently in presubmit checks.
Do s/Popen+communicate/check_call/ replacement in a later change in case it
breaks something.

R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6794057

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@80615 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 725f1c3b69 Add a warning if the current version of python is not 2.5
R=dpranke@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6791018

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@80212 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 2b5ce56a97 Add RunUnitTests() and RunUnitTestsInDirectory() canned checks.
Deprecate RunPythonUnitTests() since it is a bit awkward.

Add os_listdir, os_walk and platform to InputApi.

GOAL=Slowly adds python 2.5 support for unit tests
BUG=none
TEST=new unit test
R=dpranke@chromium.org

Review URL: http://codereview.chromium.org/6778027

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@80009 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 0a2bb37a5f improve logging slightly
Review URL: http://codereview.chromium.org/6736018

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79356 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 0d1bdeadb7 fix a few minor lint and test issues. Note that presubmit_canned_checks
should never import any modules directly but always access modules
through input_api.

Review URL: http://codereview.chromium.org/6676128

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79337 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 604a5895ef Fix presubmit check output when the items are AffectedFile instances.
R=dpranke@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6676093

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79217 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 35625c7e56 Fix locale.getlocale() exception.
Reapply r79006 with fixes for ubuntu 10.4.

The only change is in fix_default_encoding() to trap an exception
locale.getlocale() may throw.

R=dpranke@chromium.org
BUG=none
TEST=unit test

Review URL: http://codereview.chromium.org/6721029

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79144 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org f946b22f96 Revert r79006: "Add code to 'fix' python encoding and it's unit test."
It is causing exception for some users on ubuntu 10.4 with:
"category LC_ALL is not supported"

TBR=dpranke

Review URL: http://codereview.chromium.org/6717025

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79012 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 8e741d3bb1 Add code to 'fix' python encoding and it's unit test.
With this code in action, I can successfully print arabic and chinese on linux
and cygwin. It fails to print chinese on my Mac but prints arabic. It prints '?'
on Windows console but it *doesn't throw* which is the biggest improvement here.
It was particularly a problem on windows because WindowsError's description text
is in the current ANSI code page so it failed to print if the text was not pure
ASCII, like error message when using Windows' French UI.

R=dpranke@chromium.org
BUG=none
TEST=manual unit test ./tests/fix_encoding_test.py and it shouldn't throw

Review URL: http://codereview.chromium.org/6676090

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79006 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 20254fc742 Revert r79002 - bug processing reviewer lists
TBR=maruel@chromium.org

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79005 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 0c20c2fc23 The parsing of change descriptions had a lot of overlap and inconsistencies between gcl and git-cl. In particular, we weren't handling TBR= consistently, or probably a few other things.
This change moves most of the code into presubmit_support and gclient_utils and just leaves the formatting differences for the messages between the two tools.

Review URL: http://codereview.chromium.org/6719004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@79002 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 5c8c6de7e5 Make sure warnings fail the check when may_prompt=False.
Split presubmit_support.Main() in two to make it simpler.

Handle better the case with unversioned files and add a unit test.

R=dpranke@chromium.org

Review URL: http://codereview.chromium.org/6674059

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@78700 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 82e5f28e29 Improve presubmit_support main by not stripping arguments.
Necessary for commit queue.

R=dpranke@chromium.org


Review URL: http://codereview.chromium.org/6698041

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@78538 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 5ac2101164 This change moves the code I added to git-cl to parse the results of the presubmit hooks into presubmit_support itself. It also removes a lot of the text-file parsing that is no longer necessary since everything is in process.
It also simplifies all of the PresubmitResult* objects and the way we're using output streams since we can assume more about how the callers are calling us.

Note that I uses PEP-8 style method names where I was adding entirely new classes (or rewriting existing classes completely) since per maruel@ he is trying to new that style for new code.

This change also contains two small changes to git_cl to fix bugs and restore the previous behavior of --force skipping the presubmit checks.

Review URL: http://codereview.chromium.org/6694009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@78328 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 970c522f0f Make git-cl work with OWNERS file hooks properly.
This version calls into presubmit_support directly to support the OWNERS hooks. We do not need both this patch and http://codereview.chromium.org/6646009/

This patch depends on http://codereview.chromium.org/6665018/ .

Review URL: http://codereview.chromium.org/6674014

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@77898 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 627ea67f26 Actually check Rietveld for LGTMs ...
This change requires us to change the previous signature for the CheckOwners() hook to provide the server address and email regexp to use for parsing approvals from Rietveld.

Review URL: http://codereview.chromium.org/6657028

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@77891 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org d945f368d2 suppress some unimportant lint warnings
Review URL: http://codereview.chromium.org/6658013

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@77882 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org ff5a87adfb suppress messages for PresubmitAddText results
Review URL: http://codereview.chromium.org/6646040

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@77700 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 3ae183fbb7 add PresubmitAddText() result class to indicate that text needs to be passed back to git cl / gcl.
Also, this properly wires up the presubmit code to the owners code and adds unit tests.

Review URL: http://codereview.chromium.org/6623074

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@77523 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
dpranke@chromium.org 2a00962421 Add first changes needed for OWNERS file support.
This changes adds the first pass of code needed for OWNERS files.
In total there should probably be maybe four user-visible changes:
  * new gcl/git-cl "suggest-reviewers" command
  * a presubmit hook on upload to automatically add the reviewers
  * an addition to gcl/git-cl status command that tells you
    which files still need review/approval.
  * a presubmit hook on commit to ensure all of the needed reviewers
    have approved the file.

This change implements a core "owners Database" object with the
dumbest possible algorithm for determining a covering set of reviewers,
and the skeleton of the presubmit hooks. This code will not be
used by anything yet, and is also missing unit tests.

Review URL: http://codereview.chromium.org/6581030

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@76342 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 1f31281229 scm.SVN.GenerateDiff() expects an array.
So pass a single item array. The presubmit checks would fail otherwise.

This code path was definitely not exercised by the unit tests. Unit tests are
left as an exercise to the reader.

TBR=vbendeb
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6479006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@74396 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org ab05d582fa Modify presubmit checks to work on changed lines only.
Unittest is being also updated.

TEST=manual
. run ./presubmit_unittest.py, observe success
.create a CL with code style violations (long lines, traling spaces) and observe the violations reported by 'git cl presubmit'

Patch contributed by Vadim

Review URL: http://codereview.chromium.org/6461011

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@74378 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 7444c50483 Improve presubmit_support.py handling of git checkout.
It would fail otherwise when called directly from a git checkout subdirectory.

Updated unit test.

BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6459010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@74281 0039d316-1c4b-4281-b951-d872f2087c98
14 years ago
maruel@chromium.org 5d0dc43e26 Fix path filtering to be on the relative path and no on the absolute path.
Add logging to presubmit_support.py.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6004006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@70378 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org b17b55beca Disable the remaining pylint warnings locally and enable pylint warnings in PRESUBMIT.
This causes some code clutter.

TEST=Increased pylint warning level
BUG=none

Review URL: http://codereview.chromium.org/4321006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@64913 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org cb2985fb69 Largely reduce the number of pylint warnings and fix one typo.
Most of them are style issues or variable aliasing.

TEST=Can almost enable pylint warnings
BUG=none

Review URL: http://codereview.chromium.org/4360002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@64908 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 310b355529 Fix decoding to work more often with various encodings found on platforms.
TEST=none
BUG=none

Review URL: http://codereview.chromium.org/4108011

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@64598 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 8d19523063 Add a note warning the users that presubmit hooks will be run.
Otherwise the scripts make it looks like they are hung when the presubmit checks
are slow.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/3613007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@61506 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 35db5099a4 This is still necessary.
This breaks non-ascii output on Windows but if it's not there it breaks unicode
output on all other platforms. Ah code pages...

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/3415010

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@59966 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 5631746743 Improve the testing situation on Windows.
For now that involves disabling a lot of tests when they can't be run.

I'm unsure about the ascii encoding, it fails here if I keep this call on a French UI.

TEST=none
BUG=none
Review URL: http://codereview.chromium.org/3333028

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@59137 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org fa410372ba Add pylint to presubmit checks.
This tool has been quite useful noticing errors in the past and I'd have avoided a breakage in r58936 if I had run it.

Had to fix a few scripts first.

BUG=none
TEST=new test

Review URL: http://codereview.chromium.org/3337018

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@59107 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
bradnelson@google.com 4c13cccd83 Handle the case when there is unicode in the tree status more gracefully.
BUG=None
TEST=None

Review URL: http://codereview.chromium.org/3184024

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@57447 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org b1901a6e45 Look for PRESUBMIT.py beyond root if inherit-review-settings-ok is present.
Patch contributed by Darin Petkov

Review URL: http://codereview.chromium.org/2845004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49868 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
tony@chromium.org 5e9f2ed7fb Fix presubmit_unittests on some versions of python2.5.
On our hardy boxes, the python has the json module, but it doesn't
have all the expected methods.  Fallback to simplejson if it
doesn't have json.loads().

Review URL: http://codereview.chromium.org/1520025

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@43907 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org d08cb1e848 Fix import of simplejson included in depot_tools
TEST=verified it works in python 2.4
BUG=none

Review URL: http://codereview.chromium.org/1110006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@42177 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 59c7ba6b87 Add simplejson 2.1.0 and use it when it's not already installed.
TEST=none
BUG=none

Review URL: http://codereview.chromium.org/1105007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@42175 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org fb11c7b98d Add input_api.json to presubmit checks.
Review URL: http://codereview.chromium.org/1116001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@41973 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org a73d793164 Fix the regexp in DEFAULT_WHITE_LIST.
For example, r".*\.c" was triggering for foo.checksum.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/558026

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@37461 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org ef77648dd4 Change the default source lists;
Remove *.txt and *.json, add *.pl and *.pm.

TEST=none
BUG=none

Review URL: http://codereview.chromium.org/548172

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@37406 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
estade@chromium.org 593258b903 Add a trailing \ when printing filenames for presubmit checks.
This makes it easier to apply commands to a set of files. For example:

Run the command: svn pset svn:eol-style LF \
  chrome/browser/extensions/extension_accessibility_apitest.cc \
  chrome/browser/extensions/extension_accessibility_api_constants.cc \
  chrome/browser/extensions/extension_accessibility_api.h \
  chrome/browser/extensions/extension_accessibility_api.cc \
  chrome/browser/extensions/extension_accessibility_api_constants.h \
  chrome/browser/gtk/accessible_widget_helper_gtk.h \
  chrome/browser/gtk/accessible_widget_helper_gtk.cc \
  chrome/browser/gtk/accessibility_event_router_gtk.h \
  chrome/browser/gtk/accessibility_event_router_gtk.cc \
  chrome/common/accessibility_events.cc \
  chrome/common/accessibility_events.h

requires just 1 copy-paste.

Review URL: http://codereview.chromium.org/552202

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@37350 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 5aeb7dd54c Reapply 32057, 32058, 32059, 32062 and fixes problems introduced by these changes.
Noteworthy change is scm.SVN.GetFileProperty calls Capture instead of Run.

TEST=unit tests
BUG=none

Review URL: http://codereview.chromium.org/399009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@32181 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
maruel@chromium.org 261eeb5e93 Revert 32057, 32058, 32059, 32062 because they still have unwanted side-effects.
Revert "Group SCM-specific functions in classes to simplify generalization of the interface."
Revert "Fix 2 recently introduced errors."
Revert "Fix a variable aliasing error."
Revert "Fix typo."

TBR=dpranke
TEST=none
BUG=none

Review URL: http://codereview.chromium.org/391075

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@32065 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
maruel@chromium.org 85a3192f9c Group SCM-specific functions in classes to simplify generalization of the interface.
TEST=none
BUG=none

Move scm functions into a class to make it simpler to manage.

Review URL: http://codereview.chromium.org/391052

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@32057 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
maruel@chromium.org e3608dfc1a Run pychecker over most scripts in depot_tools. Catched a few bugs.
TEST=unit tests
BUG=none

Review URL: http://codereview.chromium.org/385007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@31590 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
gspencer@google.com efb9450e27 This makes presubmit queries accept "yes" as well as "y"
as an answer.
Review URL: http://codereview.chromium.org/268023

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@28557 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
thestig@chromium.org de24345ee7 Make the try slave selection client side.
BUG=23071
TEST=none
Review URL: http://codereview.chromium.org/248029

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@28155 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
chase@chromium.org 8e416c83a8 Git support in presubmit tests.
Expand presubmit_support and gclient_scm to support
getting basic status and changed files from a Git
checkout.

BUG=5339
TEST=presubmit_support.py works from a git checkout,
gcl presubmit works from a svn checkout
Review URL: http://codereview.chromium.org/242140

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@28092 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
maruel@chromium.org 5f3eee3bab gclient: remove wildcard import from git_scm
Part of a larger refactoring to abstract SCM-specific bits.

presubmit_support, revert, gcl: modify to import gclient_scm and gclient_utils

Part of a larger refactoring to abstract SCM-specific bits.

revert, gcl: modify to import gclient_scm and gclient_utils

Part of a larger refactoring to abstract SCM-specific bits.

gclient: pull out SCM bits

Pulled out SCMWrapper into gcliet_scm.py as part of a larger refactoring to
abstract SCM-specific bits. Plan is to evenutally add git support.

Pulling out SCMWrapper also required pulling out utility functions into
a gclient_utility.py.

Patch contributed by msb@

TEST=none
BUG=none


git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@26423 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
pam@chromium.org ed9a083365 Report computation time before showing a prompt, so the response time
isn't included in the calculation.

BUG=none
TEST=submit change with presubmit warning, note reported time

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@25806 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago
thestig@chromium.org 6bd3170a1a Change directory to repository root before running CheckSvnModifiedDirectories.
Review URL: http://codereview.chromium.org/191002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@25270 0039d316-1c4b-4281-b951-d872f2087c98
16 years ago