Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 1 | # Commit Checklist for Chromium Workflow |
| 2 | |
Toby Huang | e43e5d68 | 2019-10-08 21:26:07 | [diff] [blame] | 3 | Here is a helpful checklist to go through before uploading change lists (CLs) on |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 4 | Gerrit and during the code review process. Gerrit is the code review platform |
| 5 | for the Chromium project. This checklist is designed to be streamlined. See |
Toby Huang | e43e5d68 | 2019-10-08 21:26:07 | [diff] [blame] | 6 | [contributing to Chromium][contributing] for a more thorough reference. The |
| 7 | intended audience is software engineers who are unfamiliar with contributing to |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 8 | the Chromium project. Feel free to skip steps that are not applicable to the |
Toby Huang | c9bd85b | 2020-07-30 22:02:35 | [diff] [blame] | 9 | patchset you're currently uploading. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 10 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 11 | According to the Checklist Manifesto by Atul Gawande, checklists are a marvelous |
| 12 | tool for ensuring consistent quality in the work you produce. Checklists also |
| 13 | help you work more efficiently by ensuring you never skip a step or waste brain |
| 14 | power figuring out the next step to take. |
| 15 | |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 16 | [TOC] |
| 17 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 18 | ## 1. Create a new branch or switch to the correct branch |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 19 | |
| 20 | You should create a new branch before starting any development work. It's |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 21 | helpful to branch early and to branch often in Git. Use the command |
| 22 | `git new-branch <branch_name>`. This is equivalent to |
Andrew Williams | bbc1a1e | 2021-07-21 01:51:22 | [diff] [blame] | 23 | `git checkout -b <branch_name> --track origin/main`. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 24 | |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 25 | You may also want to set another local branch as the upstream branch. You can do |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 26 | that with `git checkout -b <branch_name> --track <upstream_branch>`. Do this if |
| 27 | you want to split your work across multiple CLs, but some CLs have dependencies |
Toby Huang | d358873 | 2021-04-01 21:47:34 | [diff] [blame] | 28 | on others. Use `git new-branch --upstream_current <new_branch_name>` to create a |
| 29 | new branch while setting the current branch as the upstream. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 30 | |
Toby Huang | 5c3c00e | 2019-10-30 23:29:05 | [diff] [blame] | 31 | Mark the associated crbug as "started" so that other people know that you have |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 32 | started working on the bug. Taking this step can avoid duplicated work. |
Toby Huang | 5c3c00e | 2019-10-30 23:29:05 | [diff] [blame] | 33 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 34 | If you have already created a branch, don't forget to `git checkout |
| 35 | <branch_name>` to the correct branch before resuming development work. There's |
| 36 | few things more frustrating than to finish implementing your ideas or feedback, |
| 37 | and to spend hours debugging some mysterious bug, only to discover that the bug |
| 38 | was caused by working on the wrong branch this whole time. |
| 39 | |
| 40 | ## 2. If there's a local upstream branch, rebase the upstream changes |
| 41 | |
| 42 | Suppose you have a downstream branch chained to an upstream branch. If you |
| 43 | commit changes to the upstream branch, and you want the changes to appear in |
| 44 | your downstream branch, you need to: |
| 45 | |
| 46 | * `git checkout <branch_name>` to the downstream branch. |
| 47 | * Run `git rebase -i @{u}` to pull the upstream changes into the current |
| 48 | branch. |
| 49 | * Run `git rebase -i @{u}` again to rebase the downstream changes onto the |
| 50 | upstream branch. |
| 51 | |
Toby Huang | 2c40fc5 | 2020-08-10 21:44:40 | [diff] [blame] | 52 | Expect to fix numerous merge conflicts. Use `git rebase --continue` once you're |
| 53 | done. |
| 54 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 55 | ## 3. Make your changes |
Toby Huang | ba5bbb4 | 2019-09-04 23:23:07 | [diff] [blame] | 56 | |
| 57 | Do your thing. There's no further advice here about how to write or fix code. |
| 58 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 59 | ## 4. Make sure the code builds correctly |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 60 | |
| 61 | After making your changes, check that common targets build correctly: |
| 62 | |
| 63 | * chrome (for Linux, ChromeOS, etc.) |
| 64 | * unit_tests |
| 65 | * browser_tests |
| 66 | |
Toby Huang | fb63826 | 2020-09-21 20:11:00 | [diff] [blame] | 67 | You can find [instructions here][build-instructions] for building various |
| 68 | targets. |
| 69 | |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 70 | It's easy to inadvertently break one of the other builds you're not currently |
| 71 | working on without realizing it. Even though the Commit Queue should catch any |
| 72 | build errors, checking locally first can save you some time since the CQ Dry Run |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 73 | can take a while to run, on the order of a few hours sometimes. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 74 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 75 | ## 5. Test your changes |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 76 | |
Toby Huang | fb63826 | 2020-09-21 20:11:00 | [diff] [blame] | 77 | Test your changes manually by running the Chrome binary or deploying your |
| 78 | changes to a test device. If you're testing Chrome for ChromeOS, follow the |
| 79 | [Simple Chrome][simple-chrome] instructions to deploy your changes to a test |
| 80 | device. Make sure you hit every code path you changed. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 81 | |
Toby Huang | d358873 | 2021-04-01 21:47:34 | [diff] [blame] | 82 | Some testing tips: |
Andrew Williams | e223ab9 | 2021-07-16 23:40:27 | [diff] [blame] | 83 | * Use `LOG(ERROR) << "debug print statement"` for debugging. You can find |
Amanda Lin Dietz | d86b807 | 2022-06-29 20:37:31 | [diff] [blame] | 84 | the logs in /var/logs/chrome/ on the ChromeOS device. You can add a |
| 85 | keyword to your print statement to help find your log statements |
| 86 | more quickly. |
Toby Huang | d358873 | 2021-04-01 21:47:34 | [diff] [blame] | 87 | * Use GDB for setting breakpoints while debugging. |
| 88 | |
Toby Huang | b54e1332 | 2020-10-29 18:38:02 | [diff] [blame] | 89 | Think about testing any edge cases that could break your code. Some common edge |
| 90 | cases to consider: |
| 91 | |
| 92 | * Guest mode |
| 93 | * Enterprise/EDU/Supervised users |
| 94 | * Accessibility |
| 95 | * Official Chrome-branded build (for Googlers) |
| 96 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 97 | ## 6. Write unit or browser tests for any new code |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 98 | |
| 99 | Consider automating any manual testing you did in the previous step. |
| 100 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 101 | ## 7. Ensure the code is formatted nicely |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 102 | |
| 103 | Run `git cl format --js`. The `--js` option also formats JavaScript changes. |
| 104 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 105 | ## 8. Review your changes |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 106 | |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 107 | Use `git diff` to review all of the changes you've made from the previous |
| 108 | commit. Use `git upstream-diff` to review all of the changes you've made |
| 109 | from the upstream branch. The output from `git upstream-diff` is what will |
| 110 | be uploaded to Gerrit. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 111 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 112 | ## 9. Stage relevant files for commit |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 113 | |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 114 | Run `git add <path_to_file>` for all of the files you've modified that you want |
| 115 | to include in the CL. Unlike other version-control systems such as svn, you have |
| 116 | to specifically `git add` the files you want to commit before calling |
| 117 | `git commit`. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 118 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 119 | ## 10. Commit your changes |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 120 | |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 121 | Run `git commit`. Be sure to write a useful commit message. Here are some |
| 122 | [tips for writing good commit messages][uploading-a-change-for-review]. A |
Toby Huang | fb65000 | 2020-10-07 19:59:33 | [diff] [blame] | 123 | shortcut for combining the previous step and this one is `git commit -a -m |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 124 | <commit_message>`. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 125 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 126 | ## 11. Squash your commits |
Toby Huang | ba5bbb4 | 2019-09-04 23:23:07 | [diff] [blame] | 127 | |
| 128 | If you have many commits on your current branch, and you want to avoid some |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 129 | nasty commit-by-commit merge conflicts in the next step, consider collecting all |
| 130 | your changes into one commit. Run `git rebase -i @{u}`. The `@{u}` is a |
Andrew Williams | bbc1a1e | 2021-07-21 01:51:22 | [diff] [blame] | 131 | short-hand pointer for the upstream branch, which is usually origin/main, but |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 132 | can also be one of your local branches. After running the `git rebase` command, |
| 133 | you should see a list of commits, with each commit starting with the word |
| 134 | "pick". Make sure the first commit says "pick" and change the rest from "pick" |
| 135 | to "squash". This will squash each commit into the previous commit, which will |
| 136 | continue until each commit is squashed into the first commit. |
Toby Huang | ba5bbb4 | 2019-09-04 23:23:07 | [diff] [blame] | 137 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 138 | An alternative way to squash your commits into a single commit is to do `git |
| 139 | commit --amend` in the previous step. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 140 | |
Thiago Perrotta | 6e6630b | 2022-07-22 07:58:46 | [diff] [blame] | 141 | Alternatively you can also run `git squash-branch`. |
| 142 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 143 | ## 12. Rebase your local repository |
| 144 | |
| 145 | Rebasing is a neat way to sync changes from the remote repository and resolve |
| 146 | any merge conflict errors on your CL. Run `git rebase-update`. This command |
| 147 | updates all of your local branches with remote changes that have landed since |
| 148 | you started development work, which could've been a while ago. It also deletes |
| 149 | any branches that match the remote repository, such as after the CL associated |
| 150 | with that branch has been merged. In summary, `git rebase-update` cleans up your |
| 151 | local branches. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 152 | |
Toby Huang | 0a0375c | 2020-02-21 08:00:28 | [diff] [blame] | 153 | You may run into rebase conflicts. Fix them manually before proceeding with |
Toby Huang | fb65000 | 2020-10-07 19:59:33 | [diff] [blame] | 154 | `git rebase --continue`. |
| 155 | |
| 156 | Note that rebasing has the potential to break your build, so you might want to |
| 157 | try re-building afterwards. You need to run `gclient sync -D` before trying to |
| 158 | build again after a rebase-update, to update third-party dependencies. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 159 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 160 | ## 13. Upload the CL to Gerrit |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 161 | |
| 162 | Run `git cl upload`. Some useful options include: |
| 163 | |
Toby Huang | c9bd85b | 2020-07-30 22:02:35 | [diff] [blame] | 164 | * `--cq-dry-run` (or `-d`) will set the patchset to do a CQ Dry Run. It is a |
| 165 | good idea to run try jobs for each new patchset with significant changes. |
Toby Huang | e43e5d68 | 2019-10-08 21:26:07 | [diff] [blame] | 166 | * `-r <chromium_username>` will add reviewers. |
| 167 | * `-b <bug_number>` automatically populates the bug reference line of the |
Darik Harter | d48b0323 | 2021-04-07 21:47:04 | [diff] [blame] | 168 | commit message. Use `-b None` if there is no relevant crbug. |
Amanda Lin Dietz | d86b807 | 2022-06-29 20:37:31 | [diff] [blame] | 169 | * `-x <bug_number>` automatically populates the bug reference line of the |
| 170 | commit message and will automatically mark the bug as closed when the |
| 171 | CL is submitted and merged. |
Toby Huang | fb63826 | 2020-09-21 20:11:00 | [diff] [blame] | 172 | * `--edit-description` will let you update the commit message. Using square |
| 173 | brackets in the commit message title, like [hashtag], will add a hashtag to |
| 174 | your CL. This feature is useful for grouping related CLs together. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 175 | |
Toby Huang | d358873 | 2021-04-01 21:47:34 | [diff] [blame] | 176 | Check `git cl issue` to ensure that you are uploading to the correct Gerrit CL. |
| 177 | If you are uploading a new CL, then the issue number will be none. Uploading |
| 178 | will automatically create a new CL. Use `git cl issue <issue_number>` to target |
| 179 | an existing CL for uploading new patches. |
| 180 | |
Toby Huang | c9bd85b | 2020-07-30 22:02:35 | [diff] [blame] | 181 | To help guide your reviewers, it is also recommended to provide a title for each |
| 182 | patchset summarizing the changes and indicating whose comments the patchset |
| 183 | addresses. Running `git cl upload` will upload a new patchset and prompt you for |
Daniel Libby | 12af6b2 | 2021-03-31 23:30:39 | [diff] [blame] | 184 | a brief patchset title. The title defaults to your most recent commit summary |
| 185 | (the `-T` option will use this without prompting). If you tend to squash all |
| 186 | your commits into one, try to enter a new summary each time you upload. You can |
| 187 | also modify the patchset title directly in Gerrit. |
Toby Huang | c9bd85b | 2020-07-30 22:02:35 | [diff] [blame] | 188 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 189 | ## 14. Check the CL again in Gerrit |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 190 | |
| 191 | Run `git cl web` to go to the Gerrit URL associated with the current branch. |
Toby Huang | c9bd85b | 2020-07-30 22:02:35 | [diff] [blame] | 192 | Open the latest patchset and verify that all of the uploaded files are correct. |
Toby Huang | e43e5d68 | 2019-10-08 21:26:07 | [diff] [blame] | 193 | Click `Expand All` to check over all of the individual line-by-line changes |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 194 | again. Basically do a self-review before asking your reviewers for a review. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 195 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 196 | ## 15. Make sure all auto-regression tests pass |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 197 | |
| 198 | Click `CQ Dry Run`. Fix any errors because otherwise the CL won't pass the |
| 199 | commit queue (CQ) checks. Consider waiting for the CQ Dry Run to pass before |
| 200 | notifying your reviewers, in case the results require major changes in your CL. |
| 201 | |
Thiago Perrotta | 6e6630b | 2022-07-22 07:58:46 | [diff] [blame] | 202 | Alternatively you can run `git cl try`. |
| 203 | |
Toby Huang | acb9beba | 2020-06-25 20:08:04 | [diff] [blame] | 204 | ## 16. Add reviewers to review your code |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 205 | |
| 206 | Click `Find Owners` or run `git cl owners` to find file owners to review your |
Daniel Murphy | a32d1cd | 2021-07-22 16:25:52 | [diff] [blame] | 207 | code and instruct them about which parts you want them to focus on. Prefer |
| 208 | owners who are more specific to files you are modifying, as they usually |
| 209 | have the best domain knowledge (i.e. prefer `//chrome/foo/bar/OWNERS` over |
| 210 | `//chrome/OWNERS`). Next, add anyone else you think should review your code. The |
| 211 | blame functionality in Code Search is a good way to identify reviewers who may |
| 212 | be familiar with the parts of code your CL touches. For your CL to land, you |
| 213 | need an approval from an owner for each file you've changed, unless you are an |
| 214 | owner of some files, in which case you don't need separate owner approval for |
| 215 | those files. |
| 216 | |
| 217 | You are expected to wait for all actively participating reviewers to CR+1 the |
| 218 | change before submitting (CQ+2), even if your CL already has all required owners |
| 219 | reviews. Other than preventing confusion and mistakes, this expectation exists |
| 220 | because: |
David Sanders | 1a95e9c | 2022-01-17 03:14:39 | [diff] [blame] | 221 | 1. Participating reviewers are |
| 222 | [helping you write sustainable code][sustainable-code], and letting them sign |
| 223 | off is respectful of their efforts. |
Daniel Murphy | a32d1cd | 2021-07-22 16:25:52 | [diff] [blame] | 224 | 1. The owners system is not perfect, and sometimes you will need an owner who |
| 225 | *can* approve the whole change, but will delegate approval of pieces to |
| 226 | other, more knowledgeable owners. |
| 227 | |
| 228 | If this expectation needs to be broken, then the reason should be justified in a |
| 229 | comment, and appropriate extra care may be appropriate (e.g. getting a |
| 230 | post-submit review, monitoring for failing or flaky tests, reverting if any |
| 231 | problems occur, etc). |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 232 | |
Howard Wolosky | 7c06f7fa | 2021-01-20 18:37:35 | [diff] [blame] | 233 | ## 17. Start Your Review |
| 234 | |
| 235 | Click on the `Start Review` button to begin the actual review process. Until |
| 236 | you press this button, nobody will look at your change. Once pressed, you'll |
| 237 | have the opportunity to include an additional message in the notification sent |
| 238 | to your reviewers. |
| 239 | |
| 240 | ## 18. Implement feedback from your reviewers |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 241 | |
| 242 | Then go through this commit checklist again. Reply to all comments from the |
Daniel Murphy | ee8b616 | 2021-07-14 23:48:19 | [diff] [blame] | 243 | reviewers on Gerrit and mark all resolved issues as resolved. To see all |
| 244 | unresolved comments, click on the "Comments" tab in Gerrit. Other than freeform |
| 245 | interaction on the comments (using `Reply` or `Quote`), here are common |
| 246 | conventions: |
| 247 | * Clicking `Done` on the comment will comment "Done" and resolve this comment. |
| 248 | This usually is used in response to a requested change by the reviewer, and |
| 249 | tells the reviewer that you have made the change that they requested. |
| 250 | * Clicking `Ack` on the comment will comment "Ack" (short for "Acknowledged") |
| 251 | and resolve this comment. This usually is used in response to a non-actionable |
| 252 | comment by the reviewer, and tells the reviewer that you understand. |
| 253 | |
| 254 | Finally, click `Reply` on the CL to ensure that your reviewers receive a |
| 255 | notification. Doing this signals that your CL is ready for review again, since |
| 256 | the assumption is that your CL is not ready for review until you hit reply. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 257 | |
Daniel Murphy | a32d1cd | 2021-07-22 16:25:52 | [diff] [blame] | 258 | To ensure a fast, productive, and respectful review, please follow the |
| 259 | guidelines in [Respectful Changes][respectful-changes]. |
| 260 | |
Toby Huang | fb63826 | 2020-09-21 20:11:00 | [diff] [blame] | 261 | If your change is simple and you feel confident that your reviewer will approve |
| 262 | your CL on the next iteration, you can set Auto-Submit +1. The CL will proceed |
| 263 | to the next step automatically after approval. This feature is useful if your |
| 264 | reviewer is in a different time zone and you want to land the CL sooner. Setting |
| 265 | this flag also puts the onus on your reviewer to land the CL. |
| 266 | |
Howard Wolosky | 7c06f7fa | 2021-01-20 18:37:35 | [diff] [blame] | 267 | ## 19. Land your CL |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 268 | |
Erik Staab | 3d5a4b99 | 2024-03-20 16:33:57 | [diff] [blame] | 269 | To meet the minimum requirements to land your changes you must have: |
| 270 | * Obtained a Looks Good To Me (LGTM), which is reflected by a |
| 271 | Code-Review+1 in Gerrit |
| 272 | * from at least one owner for each file, excluding files you are an owner of |
| 273 | * from two committers, or one committer if you are also a committer |
| 274 | * Resolved all code review comments |
| 275 | |
| 276 | As mentioned above, you are generally expected to wait for all of your reviewers |
| 277 | to approve your changes as well, even if you already have OWNERS approval. Don't |
| 278 | use `chrome/OWNERS` as a blanket stamp if your CL makes significant changes to |
| 279 | subsystems. Click `Submit to CQ` (Commit-Queue +2) to both try your change in |
| 280 | the commit queue (CQ) and automatically land it if successful. |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 281 | |
Thiago Perrotta | 6e6630b | 2022-07-22 07:58:46 | [diff] [blame] | 282 | Alternatively you can run `git cl set-commit`. |
| 283 | |
Toby Huang | fb65000 | 2020-10-07 19:59:33 | [diff] [blame] | 284 | Just because your CL made it through the CQ doesn't mean you're in the clear |
| 285 | yet. There might be internal non-public try job failures, or bugs that went |
| 286 | unnoticed during the code review process. Consider monitoring the |
| 287 | [Chromium tree][chromium-tree] for about a day after your CL lands. If |
| 288 | the Sheriff or anyone else brings any failures to your attention, revert the CL |
| 289 | first and ask questions later. Gerrit can automatically generate revert CLs. |
| 290 | |
Howard Wolosky | 7c06f7fa | 2021-01-20 18:37:35 | [diff] [blame] | 291 | ## 20. Cleanup |
Toby Huang | 5c3c00e | 2019-10-30 23:29:05 | [diff] [blame] | 292 | |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 293 | After your CL is landed, you can use `git rebase-update` or `git cl archive` to |
Toby Huang | 5c3c00e | 2019-10-30 23:29:05 | [diff] [blame] | 294 | clean up your local branches. These commands will automatically delete merged |
Juha Vainio | a24c5b78 | 2021-09-27 10:18:13 | [diff] [blame] | 295 | branches. Please mark the associated crbug as "fixed". |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 296 | |
| 297 | [//]: # (the reference link section should be alphabetically sorted) |
John Palmer | 046f987 | 2021-05-24 01:24:56 | [diff] [blame] | 298 | [build-instructions]: https://chromium.googlesource.com/chromium/src.git/+/main/docs/#Checking-Out-and-Building |
Toby Huang | fb65000 | 2020-10-07 19:59:33 | [diff] [blame] | 299 | [chromium-tree]: https://ci.chromium.org/p/chromium/g/main/console |
Toby Huang | 5105f81 | 2019-08-08 23:47:57 | [diff] [blame] | 300 | [contributing]: contributing.md |
Daniel Murphy | a32d1cd | 2021-07-22 16:25:52 | [diff] [blame] | 301 | [respectful-changes]: cl_respect.md |
Amanda Lin Dietz | d86b807 | 2022-06-29 20:37:31 | [diff] [blame] | 302 | [simple-chrome]: https://chromium.googlesource.com/chromiumos/docs/+/HEAD/simple_chrome_workflow.md |
David Sanders | 1a95e9c | 2022-01-17 03:14:39 | [diff] [blame] | 303 | [sustainable-code]: cr_respect.md |
Amanda Lin Dietz | d86b807 | 2022-06-29 20:37:31 | [diff] [blame] | 304 | [uploading-a-change-for-review]: contributing.md#Uploading-a-change-for-review |