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>
3 files changed
tree: 4118321849b94c721e6df600453dbf8549280ab5
  1. bootstrap/
  2. fetch_configs/
  3. git-templates/
  4. infra/
  5. man/
  6. recipes/
  7. support/
  8. testing_support/
  9. tests/
  10. third_party/
  11. win_toolchain/
  12. zsh-goodies/
  13. .gitignore
  14. .style.yapf
  15. annotated_gclient.py
  16. appengine_mapper.py
  17. apply_issue
  18. apply_issue.bat
  19. apply_issue.py
  20. auth.py
  21. breakpad.py
  22. buildbucket.py
  23. checkout.py
  24. cipd
  25. cipd.bat
  26. cipd.ps1
  27. cipd_bin_setup.bat
  28. cipd_bin_setup.sh
  29. cipd_client_version
  30. cipd_manifest.txt
  31. cit
  32. cit.bat
  33. cit.py
  34. clang-format
  35. clang-format.bat
  36. clang_format.py
  37. clang_format_merge_driver
  38. clang_format_merge_driver.bat
  39. clang_format_merge_driver.py
  40. codereview.settings
  41. commit_queue
  42. commit_queue.bat
  43. commit_queue.py
  44. cpplint.bat
  45. cpplint.py
  46. cpplint_chromium.py
  47. create-ntfs-junction.c
  48. create-ntfs-junction.exe
  49. dart_format.py
  50. depot-tools-auth
  51. depot-tools-auth.bat
  52. depot-tools-auth.py
  53. download_from_google_storage
  54. download_from_google_storage.bat
  55. download_from_google_storage.py
  56. fetch
  57. fetch.bat
  58. fetch.py
  59. fix_encoding.py
  60. gclient
  61. gclient-new-workdir.py
  62. gclient.bat
  63. gclient.py
  64. gclient_completion.sh
  65. gclient_eval.py
  66. gclient_scm.py
  67. gclient_utils.py
  68. gerrit_client.py
  69. gerrit_util.py
  70. git-cache
  71. git-cherry-pick-upload
  72. git-cl
  73. git-crrev-parse
  74. git-crsync
  75. git-drover
  76. git-find-releases
  77. git-footers
  78. git-freeze
  79. git-gs
  80. git-hyper-blame
  81. git-map
  82. git-map-branches
  83. git-mark-merge-base
  84. git-nav-downstream
  85. git-nav-upstream
  86. git-new-branch
  87. git-number
  88. git-rebase-update
  89. git-rename-branch
  90. git-reparent-branch
  91. git-retry
  92. git-runhooks
  93. git-squash-branch
  94. git-thaw
  95. git-upstream-diff
  96. git_cache.py
  97. git_cherry_pick_upload.py
  98. git_cl.py
  99. git_cl_completion.sh
  100. git_common.py
  101. git_dates.py
  102. git_drover.py
  103. git_find_releases.py
  104. git_footers.py
  105. git_freezer.py
  106. git_hyper_blame.py
  107. git_map.py
  108. git_map_branches.py
  109. git_mark_merge_base.py
  110. git_nav_downstream.py
  111. git_new_branch.py
  112. git_number.py
  113. git_rebase_update.py
  114. git_rename_branch.py
  115. git_reparent_branch.py
  116. git_retry.py
  117. git_squash_branch.py
  118. git_upstream_diff.py
  119. gn
  120. gn.bat
  121. gn.py
  122. gsutil.py
  123. LICENSE
  124. my_activity.py
  125. my_reviews.py
  126. ninja
  127. ninja-linux32
  128. ninja-linux64
  129. ninja-mac
  130. ninja.exe
  131. OWNERS
  132. owners.py
  133. owners_finder.py
  134. patch.py
  135. PRESUBMIT.py
  136. presubmit_canned_checks.py
  137. presubmit_support.py
  138. profile.xml
  139. pylint
  140. pylint.py
  141. pylintrc
  142. python_runner.sh
  143. README.gclient.md
  144. README.git-cl.md
  145. README.md
  146. README.testing
  147. repo
  148. rietveld.py
  149. roll-dep
  150. roll-dep-svn
  151. roll-dep-svn.bat
  152. roll-dep.bat
  153. roll_dep.py
  154. roll_dep_svn.py
  155. scm.py
  156. setup_color.py
  157. subcommand.py
  158. subprocess2.py
  159. update_depot_tools
  160. update_depot_tools.bat
  161. upload_to_google_storage.py
  162. vpython
  163. vpython.bat
  164. WATCHLISTS
  165. watchlists.py
  166. weekly
  167. wtf
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

To update cpplint.py, please submit the change upstream first at https://github.com/google/styleguide/tree/gh-pages/cpplint then copy it down.