Commit Graph

4683 Commits (e83d02446d9e81ad3922f2f974326e766c0d84c5)
 

Author SHA1 Message Date
Dan Jacques 209a681f9c [git] Remove hard-coded "depot_tools" Git.
Several tools, including the "git" recipe module, hard-code a
checkout-relative "git.bat" path. Git is a feature that is provided by
the system, both to tooling and recipes:

1) For users, "depot_tools" must be on PATH, and during setup it will
   have installed "git.bat", ensuring that Git tooling is available in
   PATH.
2) For bots, the system is responsible for providing "git.bat" on PATH.
   This is typically done at "/b/depot_tools/git.bat", which is sync'd
   through the "update_scripts" step.

By formally treating Git as a system resource, we absolve Windows bots
and users from manually installing a depot_tools-local Git, bringing
them in line with other platforms.

BUG=chromium:590806
TEST=local

Change-Id: I93e89855cdd330a2ba7a8cfb8117a1789d1ab54e
Reviewed-on: https://chromium-review.googlesource.com/568694
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
Dan Jacques e8eed65fec Always copy "python.bat".
This change should be safe, since batch files are not generally
write-contended, and "gclient" is run atomically (other things depend on
this).

The mechanism to detect whether we're downgrading is broken by
"bot_update". While future syncs should not encounter this issue,
current syncs still have no way to resolve it, and are left with a
broken "python.bat" setup.

We remedy this by always installing "python.bat", even if it's already
there. This is safe, since the intended state of HEAD is for this file
to be present at all times.

BUG=chromium:741650
TEST=None

Change-Id: Ief28217bf89d201d830c46b31e0b4040c51cb322
Reviewed-on: https://chromium-review.googlesource.com/568588
Reviewed-by: Sergey Berezin <sergeyberezin@chromium.org>
8 years ago
Dan Jacques aab09ca686 Whitelist "python_bin_reldir.txt".
the revert mechanism for the Python bundle patch relies on the resitual
"python_bin_reldir.txt" file existing. Apparently "bot_update" purges
this file as part of its depot_tools checkout, breaking the revert
mechanism. Whitelist it so that this stops happening.

TBR=tandrii@chromium.org
BUG=chromium:741650
TEST=None

Change-Id: Id6b7c966b6fa3f5084be5e1906b3e10d38ab8b6c
Reviewed-on: https://chromium-review.googlesource.com/568530
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
Andrii Shyshkalov af5c20f5a4 Revert "[win_tools] Use bundled Python CIPD packages."
This reverts commit bf1446791e.

Reason for revert: broke win bots http://o/410053

Original change's description:
> [win_tools] Use bundled Python CIPD packages.
> 
> Enable bundled Python CIPD packages in bleeding-edge mode. This
> replaces the ZIP unpacking approach used before, and introduces
> validation and management through the CIPD tool. The bleeding edge
> version will only install if a sentinel file is present in the
> "depot_tools" root; otherwise, default behavior will continue.
> 
> This method adds a upgrade and downgrade path to/from ZIP and
> CIPD installations. This is done by rewriting the "win_tools.bat"
> process:
> 
> 1) Ensure that a bootstrap Python is present.
> 2) Use it to run "win_tools.py", which has the functionality of
>     "git_bootstrap.py" plus Python installation.
> 3) Run "win_tools.py" with appropriate flags.
> 
> Some tricks were employed to handle cases where there is an
> already-running Python instance that uses the current Python
> installation and executable. This happens on bots because the
> system uses the same "depot_tools" checkout at multiple launch
> layers. To this end, we use the "python.bat" as the "current Python"
> authority and refrain from cleaning up old Python directories if their
> "python.exe" binaries are currently in use.
> 
> We change the Git bleeding edge file to share the same
> sentinel file as Python, ".bleeding_edge".
> 
> The new Python should have the same facilities as the original Python
> bundle.
> 
> BUG=chromium:740171
> TEST=local
> 
> Change-Id: I1b3b7d31d47d1a37a9dba9114d31681bec558736
> Reviewed-on: https://chromium-review.googlesource.com/563036
> Commit-Queue: Daniel Jacques <dnj@chromium.org>
> Reviewed-by: Robbie Iannucci <iannucci@chromium.org>

TBR=iannucci@chromium.org,dnj@chromium.org

Change-Id: I84574a01bbad6596912e4aaa34f019d24720b638
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:740171
Reviewed-on: https://chromium-review.googlesource.com/567009
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Michael Achenbach 7dadf05dad Query Gerrit for destination branch in bot_update
This makes bot_update query Gerrit when syncing for Gerrit tryjobs.

The query will establish the actual destination branch of the CL,
which can be different from master (e.g. a feature branch).

Bot_update will ensure to use this destination branch for the repo
that corresponds to the CL's project. Both the main project or a
deps'ed project work.

Initially, this lives behind a flag that can be controlled in
downstream recipes. Eventually we'll set this to default after a
gradual roll-out.

Branches in branch-heads are not supported yet.

Bug: 740456
Change-Id: I4a0d50e2ca8fe90f8d29964a3ffab17291f7be60
Reviewed-on: https://chromium-review.googlesource.com/566824
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Dan Jacques bf1446791e [win_tools] Use bundled Python CIPD packages.
Enable bundled Python CIPD packages in bleeding-edge mode. This
replaces the ZIP unpacking approach used before, and introduces
validation and management through the CIPD tool. The bleeding edge
version will only install if a sentinel file is present in the
"depot_tools" root; otherwise, default behavior will continue.

This method adds a upgrade and downgrade path to/from ZIP and
CIPD installations. This is done by rewriting the "win_tools.bat"
process:

1) Ensure that a bootstrap Python is present.
2) Use it to run "win_tools.py", which has the functionality of
    "git_bootstrap.py" plus Python installation.
3) Run "win_tools.py" with appropriate flags.

Some tricks were employed to handle cases where there is an
already-running Python instance that uses the current Python
installation and executable. This happens on bots because the
system uses the same "depot_tools" checkout at multiple launch
layers. To this end, we use the "python.bat" as the "current Python"
authority and refrain from cleaning up old Python directories if their
"python.exe" binaries are currently in use.

We change the Git bleeding edge file to share the same
sentinel file as Python, ".bleeding_edge".

The new Python should have the same facilities as the original Python
bundle.

BUG=chromium:740171
TEST=local

Change-Id: I1b3b7d31d47d1a37a9dba9114d31681bec558736
Reviewed-on: https://chromium-review.googlesource.com/563036
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
recipe-roller b80fac66ad Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/3d76281f54f9d0568fcbae1acbf884c86fbb29a7 [uuid] Remove unused uuid module (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I395cafcd2aca4eb02492ce90dcc412601253a39d
Reviewed-on: https://chromium-review.googlesource.com/567478
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Dan Jacques 265255f501 [bootstrap/win] Replace "python.bat" only on downgrade.
We're implementing a bootstrap downgrade for potential revert of
https://chromium-review.googlesource.com/c/563036

Currently, the downgrade sees the presence of the landed patch
as a sign to completely reinstall Python. However, this causes
the "python276_bin" directory to be deleted, which both ruins
any running process (notably "service manager" and BuildBot)
and fails due to those running processes, leaving the system in
a broken state.

Instead, we'll view the revert path as a signal to swap in the
old "python.bat" specifically, then fall through to standard
installation detection. Since the upgrade will not actually
delete "python276_bin", the expected revert case will leave it
alone, preserving existing execution environments.

BUG=chromium:740966, chromium:740171
TEST=local
  - Ran simulation of revert path with this change, observed
    better outcome.

Change-Id: I0dfa5924a27bcaba49134272a344f7b9f1d475c5
Reviewed-on: https://chromium-review.googlesource.com/567167
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
Paweł Hajdan, Jr 24025d3e71 tryserver: add support for gerrit footers
Bug: 644609
Change-Id: Ied7439d688b89f90b9705968927521b5060c5fb4
Reviewed-on: https://chromium-review.googlesource.com/565564
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Nicolas Dossou-gbete 903ea73119 [activity.py] Identify Gerrit-style bug annotations in commit messages
Extract bug numbers noted "Bug: 99999" in addition to the older
"BUG=99999" style.

Bug: None
Change-Id: If29139ee2bae3c515748395a846e45ce6995d9ec
Reviewed-on: https://chromium-review.googlesource.com/548718
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Commit-Queue: Nicolas Dossou-Gbété <dgn@chromium.org>
8 years ago
Michael Achenbach 49b8147be0 Add support to query a CL's branch to gerrit recipe module
Bug: 740456
Change-Id: Ic4f3c1f046cfa025d8e60172ee58e2b2e1b76ee6
Reviewed-on: https://chromium-review.googlesource.com/565560
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Dan Jacques 4cb9d7422d [bootstrap/win] Enable revert from upcoming patch.
The upcoming CL, https://chromium-review.googlesource.com/c/563036,
updates "bootstrap/win"'s mechanism. However, if that patch needs to be
reverted, its "python.bat" stub may still exist in the reverted
repository, and will continue to point to the reverted toolchain.

We don't have a good way to detect whether we should revert "python.bat".
Instead, we will look a file generated by the CL,
"//python_bin_reldir.txt". If we find it, we will assume that the updated
"python.bat" is in use, and reinstall.

Note that if that CL lands and does not require a revert, this logic
will be deleted. It's just there as a safety mechanism to allow a safe
revert.

BUG=chromium:740171
TEST=local

Change-Id: Ifc638cf0512d2a889c37fbf6b8e3f7a3269331b1
Reviewed-on: https://chromium-review.googlesource.com/566073
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
Dan Jacques 13e88538fc Ignore the ".bleeding_edge" file.
This file is introduced via Puppet and will be migrated to from
".git_bleeding_edge". In the meantime, ignore it so Git doesn't
think it's an untracked modication.

TBR=iannucci@chromium.org
BUG=chromium:740171
TEST=None

Change-Id: Ia878996c3c32c49e1f7d80293bef55ed0a09dbab
Reviewed-on: https://chromium-review.googlesource.com/565888
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
Andrii Shyshkalov c81738256b git cl creds-check: improve report and give better recommendation.
R=machenbach@chromium.org,agable@chromium.org
Bug: N/A
Change-Id: I831e9e72c8687c248022f49ea405e149538ef02a
Reviewed-on: https://chromium-review.googlesource.com/563671
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 4978917c6d Adjust CQ config for luci.infra.try -> luci.infra.depot_tools.try bucket move
See https://chromium-review.googlesource.com/c/565402/ for context.

Bug: 644609
Change-Id: I8edacafdb3bc969e3d0d2fb4589b3ba3fcf9f5d6
Reviewed-on: https://chromium-review.googlesource.com/565412
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Michael Achenbach 9cb802ca48 Improve gerrit recipe_module example
The /a suffix in the hots URL is not necessary as the gerrit_util adds it by
default to authenticate. Having it hard-coded in the example can be misleading.

Bug: 685318
Change-Id: I333cd8b2aa9020aadfd186f2e18fbff0aa917681
Reviewed-on: https://chromium-review.googlesource.com/564611
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
8 years ago
Dan Jacques 79e897b017 [git_bootstrap] Support new Git bundles.
Support new fully-bundled Git CIPD packages. These are generated by the
"third_party_packages" infra builder, and require no installer.

BUG=chromium:740171
TEST=local

Change-Id: I6126655359ba981eb18ad1e088fe787100719d46
Reviewed-on: https://chromium-review.googlesource.com/562531
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
recipe-roller 8af4646948 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/9959b0728785d9f5e7110e4db516f7cf09090bed Remove shutil module. (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iebb3ba8b4ae2051b33345702f6f85ed04cacc937
Reviewed-on: https://chromium-review.googlesource.com/564018
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Bruce Dawson 1f767e1797 Fix autoninja.py for ninja -t compatibility
The -t tools in ninja fail if -j or -l are specified. So, autoninja.py
needs to watch for -t and omit -j and -l if it is noticed.

R=sebmarchand@chromium.org
BUG=740227

Change-Id: I1418193daeab154178d15be60ab09551bacaf3af
Reviewed-on: https://chromium-review.googlesource.com/563775
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
8 years ago
Dan Jacques 7466d1a9b7 [cipd] Run client in .bat to preserve STDIN.
Currently, the PowerShell execution does not allow STDIN to be
read by the CIPD client. Fix this by using PowerShell to acquire
the client, but batch to actually invoke the client. This removes
some indirection and allows STDIN to function as expected.

BUG=None
TEST=local
  - Ran w/ and w/out ".cipd_client.exe" locally, observed
    install and fallthrough.
  - Ran w/ an error code, observed exit code being preserved.
  - Ran "auth-login", was able to paste token.

Change-Id: I4efafa7dc80aa093de0fbf5dfd188c299fa104db
Reviewed-on: https://chromium-review.googlesource.com/563602
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
8 years ago
Dan Jacques 13f258bf05 Remove SVN bootstrapping and some tooling.
Remove Windows SVN bootstrapping and some SVN tooling. Since
"depot_tools" is no longer sync'd to SVN, and we have been committed to
Git for years now, this is obsolete. Any transition code will never
reach SVN users, and any remaining code should not be used by Chromium
developers.

BUG=chromium:630904
TEST=unit

Change-Id: Ie984e8400a748702b125eaeed8157719ef4b88cc
Reviewed-on: https://chromium-review.googlesource.com/562748
Commit-Queue: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
recipe-roller b12c5256f9 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/26475d6816d9e1f79dc23d0cf5714e6fda5573aa Add more experimental downstream trybots (phajdan.jr@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic984a8f1c8505e9a251b737d3468ef2ac2050714
Reviewed-on: https://chromium-review.googlesource.com/563997
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
recipe-roller 016f92e6f5 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/5c349eb803f77edd0458b36e41bfdf17ebf4eab9 [file] allow glob to handle nested patterns (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I6a01f7ed504870a2b7b25341165a5cb01027de05
Reviewed-on: https://chromium-review.googlesource.com/563859
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
recipe-roller 6850698593 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/12e7ca450489763234b7380edddfddc8d9e3cb8f recipes.py test: enforce recipe expectations literally (phajdan.jr@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic2ed0099adf5d1254d077ef189087bc5390f361c
Reviewed-on: https://chromium-review.googlesource.com/563236
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Paweł Hajdan, Jr 215ded779e Fix testFlattenPinAllDeps
This needs an update after simultaneous landing of
https://chromium-review.googlesource.com/c/561681/ and
https://chromium-review.googlesource.com/c/562138/ .

TBR=dpranke

Bug: 570091
Change-Id: I35ba4fa95ee97a8059eedf5ebf13b09b1c5ee89c
Reviewed-on: https://chromium-review.googlesource.com/563196
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 271a16809a gclient flatten: implement --pin-all-deps
Bug: 570091
Change-Id: Ibf7c6a73cab8bb777a7e4a8d958f085238c76450
Reviewed-on: https://chromium-review.googlesource.com/562138
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr fb02201796 gclient flatten: include vars
ChromeOS build depends on buildspec_platforms variable, see
https://bugs.chromium.org/p/chromium/issues/detail?id=703268 .

Bug: 570091
Change-Id: I9c964d332b45cf10f5cb79a82ea721bd4aba80d3
Reviewed-on: https://chromium-review.googlesource.com/561681
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
recipe-roller e36a84317b Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/241ddc299faa009b8842f95d40fdd7760b81791e [file] fix glob_paths when NO paths match, add tests. (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I706bcd7efa2ed820ca05adb8ae026c0ed734f229
Reviewed-on: https://chromium-review.googlesource.com/562241
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Andrii Shyshkalov de37c01295 Fix git-numberer swallowing of footers for Rietveld.
Due to relaxation of when last paragraph of commit message is
is consider as containing footers, `git cl land` started removing
non-canonic footer lines from last paragraph if Git Numberer is enabled
on a repo. This only manifests in manual lands of Rietveld CLs or
bypassing code review entirely.

R=agable@chromium.org
Bug: 736852
Change-Id: I3972c590c3959974157ada9de9891a3c08bd385a
Reviewed-on: https://chromium-review.googlesource.com/562278
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Anna Henningsen 4e89144a75 git-cl: fix auth error message computation
Bug:
Change-Id: Ic57563b131ff7e50985748eeb3d55e4b69b8db87
Reviewed-on: https://chromium-review.googlesource.com/562279
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Dan Jacques 7c2e05b430 [cipd] Fix CIPD bootstraps run concurrently.
It's currently possible for CIPD bootstraps that provision concurrently to:
1) On Linux, step on each other during download, and
2) On Windows, fail.

Fix these respective scripts so that bootstraps are safe to use
concurrently.

On Linux and Mac, we download to a temporary file and use "mv" (atomic)
to write it to the final destination. Concurrent initializations will
perform parallel downloads, execute the "mv", and copy their downloaded
file to the destination path.

On Windows, we use filesystem locking to lock the operation and ensure
that only one download can happen.

BUG=chromium:739195
TEST=local
  - Ran in parallel on Windows, Linux, and Max.

Change-Id: Ie050d37598da67389f21728e781bd58904ef9c17
Reviewed-on: https://chromium-review.googlesource.com/560521
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
Paweł Hajdan, Jr aaf93f486a gclient flatten: refactor flatten code to a class
Instead of passing around 6+ out-parameters, keep state inside the class.

No intended behavior change.

Bug: 570091
Change-Id: Ia15c1db2170680f0ec087b61f51af49e12fd7579
Reviewed-on: https://chromium-review.googlesource.com/561700
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Paweł Hajdan, Jr 807caf84e9 gclient flatten: remove --require-pinned-revisions
It turns out it most likely won't be needed. Instead, auto-pinning
deps is useful mode.

This removal helps simplify and restructure the flatten code.

Bug: 570091
Change-Id: Ia70221c88a37f210cf1338a36d79168d2cfe96f6
Reviewed-on: https://chromium-review.googlesource.com/561717
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Michael Achenbach 6fbf12f21c Enable query for changes in gerrit recipe module
This'll allow to query gerrit from recipes for e.g. current changes in
CQ.

Bug: 685318
Change-Id: I73d08d4b186b2e5fe044fd4d4fafd9db62e27066
Reviewed-on: https://chromium-review.googlesource.com/558939
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Paweł Hajdan, Jr c6846aa200 gclient flatten: fix a bug with deps_os getting omitted for recursed deps
Bug: 570091
Change-Id: I4fac33ca683ff2011fa7307d5175592f3d9e258e
Reviewed-on: https://chromium-review.googlesource.com/560171
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 4baaa11c01 gclient: avoid adding potentially duplicate entries to work queue
The main goal is to provide a migration path, where we can add
conditional src-internal entry to src/DEPS, and have it still
work on checkouts where .gclient pulls src-internal, provided
the condition evaluates to False.

The migration path is then to remove the .gclient entry, and
at the same time flip the condition to True (e.g. by overriding
a variable).

Bug: 570091
Change-Id: I9b9850a644463ab0b1f368d65a5cd5f47cf7be97
Reviewed-on: https://chromium-review.googlesource.com/559150
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr d379025129 gclient: apply custom_vars when evaluating conditions
Bug: 570091
Change-Id: Ib8009ae9ac77e50a09e3e2714cec7c67537b47a2
Reviewed-on: https://chromium-review.googlesource.com/558970
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
recipe-roller a8fdab966f Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/11d7598fa760017f168aec1c53a9ced74b2fc8a6 [file] Allow placeholders in file.copy (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I0c4b2d35f805aaeb647a574aa6d62fa5caeea1ef
Reviewed-on: https://chromium-review.googlesource.com/560737
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Dan Jacques e82c0dec65 [cipd] Fail if setup has an error.
Make Linux/Mac CIPD wrapper fail if any step returns an error.

Include the "-f" curl flag, which will cause it to error on non-200
status.

BUG=chromium:739195
TEST=local
R=iannucci@chromium.org

Change-Id: I3efea3f38c1ee322cb9d63f29819472564107ddc
Reviewed-on: https://chromium-review.googlesource.com/560723
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
Vadim Shtayura b1ad2f04c9 Update CIPD client, vpython and "LUCI editor".
New version correctly handle LUCI_CONTEXT['local_auth'] environment.

BUG=730878
R=dnj@chromium.org, smut@google.com

Change-Id: I1ed9c48eb15010856502d35baf140c97d1dd566c
Reviewed-on: https://chromium-review.googlesource.com/559954
Reviewed-by: Daniel Jacques <dnj@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
8 years ago
recipe-roller 6a1ab84339 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/9419a0e2ea6ab618b33a1e962ce62b36664e5234 [doc] Put all external URLs in a single section. (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I39a8a4934d27e1461379cf5be48f722cc571c103
Reviewed-on: https://chromium-review.googlesource.com/559511
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
recipe-roller 32f0e5d7af Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/4b6b21e529889fcb3f4b1128ddd0fb941210012a [doc] Fix randomization of DEPS link order, give DEPS links fully qualified names (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ifb23eec7d9298dc5cd75536860e5374936fdeae8
Reviewed-on: https://chromium-review.googlesource.com/560130
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
recipe-roller bc9c5ccf00 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/3ac778ec88ee4a878bd75ab8a89162c848b3d1db [recipe_autoroller] regen docs on trivial rolls too. (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ia2ec717f995182adb820c0773c11d060405d2223
Reviewed-on: https://chromium-review.googlesource.com/558153
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Robert Iannucci 54adb2a31c Generate initial recipes README.
Tbr: dnj@chromium.org
Bug:
Change-Id: Icc87cb23571341835e54cc80210fa23bc33fb1f0
Reviewed-on: https://chromium-review.googlesource.com/558382
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
8 years ago
recipe-roller 603545b7ae Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/c8d78bf15c065b5a35ccfc5798d1498d0899bb68 [doc] Automatically generate and update cross-indexed recipe markdown files. (iannucci@chromium.org)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I64f3ebdbf1565f7f8c08c6e21df516f87533ac7b
Reviewed-on: https://chromium-review.googlesource.com/558392
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Paweł Hajdan, Jr e015878d80 gclient flatten: fix an issue with an deps_os entry getting added to deps
The previous code did not distinguish between None and [] value for orig_deps.

This could be triggered by not having any deps, but some entries in deps_os,
in which case these deps_os entries would get added by mistake to deps.

Bug: 570091
Change-Id: Id5b41e37ea717d5d00404694ad5bfce8df9da934
Reviewed-on: https://chromium-review.googlesource.com/558349
Reviewed-by: Michael Moss <mmoss@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Paweł Hajdan, Jr 6014b56642 gclient flatten: also handle allowed_hosts
Bug: 570091
Change-Id: I96417d462efb3b0476ee17d42ac5f19d8c4f99c3
Reviewed-on: https://chromium-review.googlesource.com/558352
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Dan Jacques 70b3f3aae5 [bot_update] Pass spec as file.
"bot_update" currently passes a full "gclient" specification as a
command-line argument to "bot_update.py". This file contains all sorts
of junk that clutters the command-line, and revealed a batch file
escaping bug that seems to be present in the recipe engine. Change this
so that "bot_update" passes the spec as file content instead of a
command-line flag.

Also, "bot_update" apparently called "--spec", which optparse kindly
recognized as the real flag, "--specs". This has always(?) been a bug,
and is no longer a problem.

BUG=chromium:738348
TEST=expectations

Change-Id: I5324b94dd5ef78503e7cfdc28b5fde8f434e4359
Reviewed-on: https://chromium-review.googlesource.com/558207
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago
recipe-roller 1af0a337f1 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
recipe_engine:
  https://crrev.com/5873ef21cc9f2a9d9d6de868608c51976fdca20a Fix "env_prefixes" rendering. (dnj@google.com)


TBR=iannucci@chromium.org

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib15645fe57cb10b05aca2bb57bba412b807005c1
Reviewed-on: https://chromium-review.googlesource.com/557659
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
8 years ago
Dan Jacques dc598e8223 [bot_update] Prefix PATH, cleanup.
Prefix "depot_tools" to PATH instead of appending. This will ensure that
"depot_tools" pulls resources from the recipe checkout as a preference,
not as a last resort.

Use "env_prefixes" instead of "env" to prefix PATH.

Remove Git speed limit settings, which are taken care of by the Git
wrapper now.

BUG=chromium:738176
TEST=expectations
R=hinoka@chromium.org, iannucci@chromium.org

Change-Id: I2e509a331266e867be323bc70e3bc0f08f85246f
Reviewed-on: https://chromium-review.googlesource.com/556287
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Commit-Queue: Daniel Jacques <dnj@chromium.org>
8 years ago