Provide step_test_data in gerrit.get_revision_info.

This will reduce the need to manually mock steps: calls to get revision
info will now return CLs that match the requested change and patchset
numbers. Manually mocking will only be required if specific values for
other field are desired or if the test case should not have revision
info that matches the change and patchset.

Change-Id: Ibc6ec62100616680e36d9a842449ac9c6fb2440b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2765162
Commit-Queue: Garrett Beaty <gbeaty@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@google.com>
Auto-Submit: Garrett Beaty <gbeaty@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
5 files changed
tree: 66690b63808e6c0b0bafb078fcceccfd6cdf4dba
  1. bootstrap/
  2. fetch_configs/
  3. git-templates/
  4. infra/
  5. man/
  6. python-bin/
  7. python2-bin/
  8. recipes/
  9. testing_support/
  10. tests/
  11. third_party/
  12. win_toolchain/
  13. zsh-goodies/
  14. .cipd_impl.ps1
  15. .gitattributes
  16. .gitignore
  17. .style.yapf
  18. .vpython
  19. .vpython3
  20. auth.py
  21. autoninja
  22. autoninja.bat
  23. autoninja.py
  24. bb
  25. bb.bat
  26. bootstrap_python3
  27. breakpad.py
  28. cipd
  29. cipd.bat
  30. cipd_bin_setup.bat
  31. cipd_bin_setup.sh
  32. cipd_client_version
  33. cipd_client_version.digests
  34. cipd_manifest.txt
  35. cipd_manifest.versions
  36. cit
  37. cit.bat
  38. cit.py
  39. clang-format
  40. clang-format.bat
  41. clang_format.py
  42. clang_format_merge_driver
  43. clang_format_merge_driver.bat
  44. clang_format_merge_driver.py
  45. codereview.settings
  46. compile_single_file
  47. compile_single_file.bat
  48. compile_single_file.py
  49. cpplint.bat
  50. cpplint.py
  51. cpplint_chromium.py
  52. cros
  53. CROS_OWNERS
  54. crosjobs
  55. detect_host_arch.py
  56. DIR_METADATA
  57. dirmd
  58. dirmd.bat
  59. download_from_google_storage
  60. download_from_google_storage.bat
  61. download_from_google_storage.py
  62. ensure_bootstrap
  63. fetch
  64. fetch.bat
  65. fetch.py
  66. fix_encoding.py
  67. gclient
  68. gclient-new-workdir.py
  69. gclient.bat
  70. gclient.py
  71. gclient_completion.sh
  72. gclient_eval.py
  73. gclient_paths.py
  74. gclient_scm.py
  75. gclient_utils.py
  76. gerrit_client.py
  77. gerrit_util.py
  78. git-cache
  79. git-cl
  80. git-crrev-parse
  81. git-drover
  82. git-find-releases
  83. git-footers
  84. git-freeze
  85. git-gs
  86. git-hyper-blame
  87. git-map
  88. git-map-branches
  89. git-mark-merge-base
  90. git-migrate-default-branch
  91. git-nav-downstream
  92. git-nav-upstream
  93. git-new-branch
  94. git-number
  95. git-rebase-update
  96. git-rename-branch
  97. git-reparent-branch
  98. git-retry
  99. git-runhooks
  100. git-squash-branch
  101. git-thaw
  102. git-upstream-diff
  103. git_cache.py
  104. git_cl.py
  105. git_cl_completion.sh
  106. git_common.py
  107. git_dates.py
  108. git_drover.py
  109. git_find_releases.py
  110. git_footers.py
  111. git_freezer.py
  112. git_hyper_blame.py
  113. git_map.py
  114. git_map_branches.py
  115. git_mark_merge_base.py
  116. git_migrate_default_branch.py
  117. git_nav_downstream.py
  118. git_new_branch.py
  119. git_number.py
  120. git_rebase_update.py
  121. git_rename_branch.py
  122. git_reparent_branch.py
  123. git_retry.py
  124. git_squash_branch.py
  125. git_upstream_diff.py
  126. gn
  127. gn.bat
  128. gn.py
  129. goma_auth
  130. goma_auth.bat
  131. goma_ctl
  132. goma_ctl.bat
  133. GOMA_OWNERS
  134. gsutil.py
  135. gsutil.py.bat
  136. gsutil.vpython
  137. led
  138. led.bat
  139. LICENSE
  140. lockfile.py
  141. luci-auth
  142. luci-auth.bat
  143. LUCI_OWNERS
  144. lucicfg
  145. lucicfg.bat
  146. mac_toolchain
  147. metrics.py
  148. metrics.README.md
  149. metrics_utils.py
  150. my_activity.py
  151. ninja
  152. ninja-linux32
  153. ninja-linux64
  154. ninja-mac
  155. ninja.exe
  156. ninjalog.README.md
  157. ninjalog_uploader.py
  158. ninjalog_uploader_wrapper.py
  159. OWNERS
  160. owners.py
  161. owners_client.py
  162. owners_finder.py
  163. pinpoint
  164. pinpoint.bat
  165. post_build_ninja_summary.py
  166. PRESUBMIT.py
  167. presubmit_canned_checks.py
  168. presubmit_support.py
  169. profile.xml
  170. prpc
  171. prpc.bat
  172. pylint
  173. pylint-1.5
  174. pylint-1.6
  175. pylint-1.7
  176. pylint-1.8
  177. pylint-1.9
  178. pylint-2.6
  179. pylint.bat
  180. pylint_main.py
  181. pylintrc
  182. python_runner.sh
  183. rdb
  184. rdb.bat
  185. rdb_wrapper.py
  186. README.gclient.md
  187. README.git-cl.md
  188. README.md
  189. repo
  190. repo_launcher
  191. roll-dep
  192. roll-dep.bat
  193. roll_dep.py
  194. scm.py
  195. setup_color.py
  196. split_cl.py
  197. subcommand.py
  198. subprocess2.py
  199. update_depot_tools
  200. update_depot_tools.bat
  201. update_depot_tools_toggle.py
  202. upload_metrics.py
  203. upload_to_google_storage.py
  204. vpython
  205. vpython.bat
  206. vpython3
  207. vpython3.bat
  208. WATCHLISTS
  209. watchlists.py
  210. weekly
  211. whitespace.txt
  212. win32imports.py
  213. wtf
  214. yapf
  215. yapf.bat
README.md

depot_tools

Tools for working with Chromium development. It requires python 2.7 or 3.8 for python 3 support.

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.