You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Raphael Kubo da Costa b45f6428f8 fake_repos: Create a new socket for every connection attempt while waiting for a port
connect(2) says stream sockets may only succeed to connect once. This means
if the call to sock.connect() fails it will continue failing for the
entirety of the wait loop, and we will fail to wait for a port to bind even
when it eventually becomes available.

Make sure we create a new socket every time we are about to try to connect
to it.

Change-Id: I16d7dbea3590c5bf7f7240bdefcc5ec0bcd1edb5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1528291
Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
6 years ago
bootstrap/win [gclient] enable git protocol version 2 for windows 6 years ago
fetch_configs Make fetch compatible with Python 3 6 years ago
git-templates
infra Roll recipe dependencies (trivial). 6 years ago
man Update documentation of `git new-branch` 6 years ago
recipes [recipe_modules/gsutil] Fix docstring and potential error in name derivation. 6 years ago
support chromite_wrapper: add python3 support for except 7 years ago
testing_support fake_repos: Create a new socket for every connection attempt while waiting for a port 6 years ago
tests Support bug prefixes when stripping away empty bug in git-cl-upload. 6 years ago
third_party Reland "httplib: Update to 0.11.3" 6 years ago
win_toolchain Fix a typo 6 years ago
zsh-goodies
.gitattributes Add autoninja* to .gitattributes. 6 years ago
.gitignore introduce ninjalog_uploader to autoninja 6 years ago
.style.yapf
CROS_OWNERS OWNERS: start a CrOS specific list for CrOS files in here 6 years ago
LICENSE
OWNERS [OWNERS] revive agable 6 years ago
PRESUBMIT.py [cipd] Bump CIPD client version to 2.2.8, add presubmit check for *.digests. 7 years ago
README.gclient.md
README.git-cl.md
README.md Update depot_tools README cpplint section 6 years ago
README.testing
WATCHLISTS Remove tandrii@ from watching git cl changes. 7 years ago
annotated_gclient.py
appengine_mapper.py
auth.py auth: request refresh tokens with expiry <3 minutes. 7 years ago
autoninja [autoninja] upload ninjalog even in failed build 6 years ago
autoninja.bat [autoninja] upload ninjalog even in failed build 6 years ago
autoninja.py autoninja: limit j value for mac 6 years ago
breakpad.py
buildbucket.py buildbucket: add --response-json. 6 years ago
cbuildbot
checkout.py Use core.quotePath=false for more git diffs 7 years ago
chrome_set_ver
cipd [cipd] Check CIPD client hash against pinned SHA256 during updates. 7 years ago
cipd.bat [cipd] Check CIPD client hash during updates on Windows. 7 years ago
cipd.ps1 [cipd] More careful error handling during CIPD bootstrap on Windows. 7 years ago
cipd_bin_setup.bat [cipd] Bump version, log at warning (#2). 8 years ago
cipd_bin_setup.sh Fix depot_tools errors that cause runhooks to be inoperable for Cygwin 7 years ago
cipd_client_version [cipd] Update to 2.2.18. 6 years ago
cipd_client_version.digests [cipd] Update to 2.2.18. 6 years ago
cipd_manifest.txt [led] Update led. 6 years ago
cipd_manifest.versions [led] Update led. 6 years ago
cit
cit.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
cit.py [cit] Use subprocess2 to properly sink stdout. 7 years ago
clang-format
clang-format.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
clang_format.py Move gclient path access to separate module. 6 years ago
clang_format_merge_driver
clang_format_merge_driver.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
clang_format_merge_driver.py
codereview.settings
compile_single_file Add a script to make it easier to build a single source file with ninja 8 years ago
compile_single_file.bat Add a script to make it easier to build a single source file with ninja 8 years ago
compile_single_file.py Add a script to make it easier to build a single source file with ninja 8 years ago
cpplint.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
cpplint.py CppLint changes for VSCode cpplint plugin 6 years ago
cpplint_chromium.py
cros
cros_sdk
dart_format.py Move gclient path access to separate module. 6 years ago
depot-tools-auth
depot-tools-auth.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
depot-tools-auth.py
detect_host_arch.py Fixing getting machine arch on AIX running in an LPAR environment 6 years ago
download_from_google_storage
download_from_google_storage.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
download_from_google_storage.py AIX: Enable usage of fetch and gclient 7 years ago
ensure_bootstrap [depot_tools] Add "ensure_bootstrap" script. 8 years ago
fetch
fetch.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
fetch.py Make fetch compatible with Python 3 6 years ago
fix_encoding.py
gclient gclient setdep doesn't need to update_depot_tools 7 years ago
gclient-new-workdir.py os.realpath => os.path.realpath in gclient-new-workdir.py 7 years ago
gclient.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
gclient.py Reland "Remove exception for relative CIPD" 6 years ago
gclient_completion.sh
gclient_eval.py gclient eval: Replace monorail with crbug.com in error message. 6 years ago
gclient_paths.py Make sys a top-level import in gclient_paths. 6 years ago
gclient_scm.py Make fetch compatible with Python 3 6 years ago
gclient_utils.py Make fetch compatible with Python 3 6 years ago
gerrit_client.py Add gerrit.abandon_change command 6 years ago
gerrit_util.py Improve error message for missing gerrit credentials in git-cl. 6 years ago
git-cache
git-cl
git-crrev-parse Fix git-crrev-parse on Mac. 8 years ago
git-drover
git-find-releases
git-footers
git-freeze
git-gs
git-hyper-blame
git-map
git-map-branches
git-mark-merge-base
git-nav-downstream
git-nav-upstream Make git-nav-upstream include the current branch name 6 years ago
git-new-branch
git-number
git-rebase-update
git-rename-branch
git-reparent-branch
git-retry
git-runhooks
git-squash-branch
git-thaw
git-upstream-diff
git_cache.py Fix filename sorting logic in git_cache.py 6 years ago
git_cl.py Make git cl issue handle bad arguments more gracefully. 6 years ago
git_cl_completion.sh
git_common.py Make fetch compatible with Python 3 6 years ago
git_dates.py
git_drover.py Reland "Use core.quotePath=false when git is listing files" 7 years ago
git_find_releases.py
git_footers.py Let git_footers split final paragraphs in specific cases 7 years ago
git_freezer.py
git_hyper_blame.py git hyper-blame: Fix tabulation of Unicode characters in author name. 7 years ago
git_map.py git-map: use committer date instead of author date 8 years ago
git_map_branches.py Make `git map-branches` detect and report cycles 6 years ago
git_mark_merge_base.py
git_nav_downstream.py metrics: Separate metrics collection and print notice logic. 7 years ago
git_new_branch.py Revert "Fix semantics of git new-branch --upstream" 6 years ago
git_number.py Pass user name and email to git-number's initial commit. 8 years ago
git_rebase_update.py Add --current to rebase the current branch 6 years ago
git_rename_branch.py
git_reparent_branch.py Limit the rebase-update call after reparent-branch 6 years ago
git_retry.py
git_squash_branch.py
git_upstream_diff.py Fix minor regression in git_upstream_diff. 7 years ago
gn
gn.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
gn.py Move gclient path access to separate module. 6 years ago
gsutil.py gsutil update default version to 4.30 7 years ago
gsutil.py.bat Add windows .bat file for gsutil.py. 6 years ago
gsutil.vpython Add the crcmod wheel for gsutil, to get it to shut up. 7 years ago
led [bootstraps] Sync at gclient, suppress output (#2) 8 years ago
led.bat [bootstraps] Sync at gclient, suppress output (#2) 8 years ago
luci-auth [luci-auth] Add statically-linked luci-auth CLI tool. 7 years ago
luci-auth.bat [luci-auth] Add statically-linked luci-auth CLI tool. 7 years ago
lucicfg [cipd] Add lucicfg tool. 6 years ago
lucicfg.bat [cipd] Add lucicfg tool. 6 years ago
mac_toolchain depot_tools: add mac_toolchain shim 7 years ago
metrics.README.md metrics: Spell out PII. 6 years ago
metrics.py metrics: Collect git version. 6 years ago
metrics_utils.py Metrics: stop trying to print the notice in color and unicode 6 years ago
my_activity.py my_activity.py: Add date to format 6 years ago
my_reviews.py Use dateutil.parser for parsing dates. 8 years ago
ninja [ninja] update ninja repository url 6 years ago
ninja-linux32 Update ninja to v1.8.2 8 years ago
ninja-linux64 Update ninja to v1.8.2 8 years ago
ninja-mac Update ninja to v1.8.2 8 years ago
ninja.exe Update ninja to v1.8.2 8 years ago
ninjalog.README.md [ninjalog] add ninjalog.README.md 6 years ago
ninjalog_uploader.py [ninjalog_uploader] add path for httplib2 6 years ago
ninjalog_uploader_wrapper.py do not decrements countdown when that is 0 6 years ago
owners.py owners.py: Use os.path.split to handle file separators correctly 6 years ago
owners_finder.py Add a --ignore-self parameter to "git cl owners" 6 years ago
patch.py Revert "Fix checkout.py issues when p.patchlevel > 1." 8 years ago
post_build_ninja_summary.py Improve post_build_ninja_summary.py's incremental build handling 7 years ago
presubmit_canned_checks.py Add presubmit check that runs 'lucicfg validate <script>'. 6 years ago
presubmit_support.py expose temporary_directory. 6 years ago
profile.xml
prpc [prpc] Add pRPC CLI tool to depot_tools. 7 years ago
prpc.bat [prpc] Add pRPC CLI tool to depot_tools. 7 years ago
pylint
pylint.py
pylintrc pylint: reland upgrade to 1.5.6 7 years ago
python_runner.sh
repo repo: update launcher to v1.13.1 6 years ago
rietveld.py Change rietveld.py to use GET on get_depends_on_patchset 7 years ago
roll-dep
roll-dep-svn
roll-dep-svn.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
roll-dep.bat [.bat] Remove "depot_tools" override. (#2) 8 years ago
roll_dep.py roll-dep: use Middle Out Compression™️ for logs 6 years ago
roll_dep_svn.py Update roll_dep_svn for new DEPS syntax 7 years ago
scm.py Simplify GIT.IsValidRevision 6 years ago
setup_color.py
split_cl.py Support --enable-auto-submit in `git cl split` 6 years ago
subcommand.py Revert "gclient: return non-zero exit code on unknown command" 8 years ago
subprocess2.py subprocess2: cache the string-escape codec at load time. 6 years ago
update_depot_tools fix fetch on aix 7 years ago
update_depot_tools.bat [bootstraps] Sync at gclient, suppress output (#2) 8 years ago
update_depot_tools_toggle.py [auto_update] Add control script, allow disable. 8 years ago
upload_metrics.py Suppress URLErrors when uploading metrics. 7 years ago
upload_to_google_storage.py Make download_from_google_storage.py print nothing in the happy case where it needs to do nothing. 8 years ago
vpython [vpython] Implement developer bypass parser in vpython wrapper. 7 years ago
vpython.bat [bootstraps] Sync at gclient, suppress output (#2) 8 years ago
watchlists.py watchlists: Precompile filepath regular expressions before using them. 7 years ago
weekly
wtf
yapf Update yapf version 0.22 -> 0.24 6 years ago
yapf.bat Fix git cl format --python on windows 6 years ago

README.md

depot_tools

Tools for working with Chromium development. It requires python 2.7.

Tools

The most important tools are:

  • fetch: A gclient wrapper to checkout a project. Use fetch --help for more details.
  • gclient: A meta-checkout tool. Think repo or git submodules, except that it support OS-specific rules, e.g. do not checkout Windows only dependencies when checking out for Android. Use gclient help for more details and README.gclient.md.
  • git cl: A code review tool to interact with Rietveld or Gerrit. Use git cl help for more details and README.git-cl.md.
  • roll-dep: A gclient dependency management tool to submit a dep roll, updating a dependency to a newer revision.

There are a lot of git utilities included.

Updating

depot_tools updates itself automatically when running gclient tool. To disable auto update, set the environment variable DEPOT_TOOLS_UPDATE=0.

To update package manually, run update_depot_tools.bat on Windows, or ./update_depot_tools on Linux or Mac.

On Windows only, running gclient will install git and python.

Contributing

To contribute change for review:

git new-branch <somename>
# Hack
git add .
git commit -a -m "Fixes goat teleporting"
# find reviewers
git cl owners
git log -- <yourfiles>

# Request a review.
git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail

# Edit change description if needed.
git cl desc

# If change is approved, flag it to be committed.
git cl set-commit

# If change needs more work.
git rebase-update
...
git cl upload -t "Fixes goat teleporter destination to be Australia"

See also open bugs, open reviews, forum or report problems.

cpplint.py

Until 2018, our cpplint.py was a copy of the upstream version at https://github.com/google/styleguide/tree/gh-pages/cpplint. Unfortunately, that repository is not maintained any more. If you want to update cpplint.py in depot_tools, just upload a patch to do so. We will figure out a long-term strategy via issue https://crbug.com/916550.

Note that the cpplint.py here is also used by the Tricium analyzer, so if the cpplint.py here changes, we should also update the copy used there.