1*61c4878aSAndroid Build Coastguard Worker.. _docs-pw-style-commit-message: 2*61c4878aSAndroid Build Coastguard Worker 3*61c4878aSAndroid Build Coastguard Worker==================== 4*61c4878aSAndroid Build Coastguard WorkerCommit message style 5*61c4878aSAndroid Build Coastguard Worker==================== 6*61c4878aSAndroid Build Coastguard WorkerPigweed commit message bodies and summaries are limited to 72 characters wide to 7*61c4878aSAndroid Build Coastguard Workerimprove readability, and should be prefixed with the name of the module that the 8*61c4878aSAndroid Build Coastguard Workercommit is affecting. The commits should describe what is changed, and why. When 9*61c4878aSAndroid Build Coastguard Workerwriting long commit messages, consider whether the content should go in the 10*61c4878aSAndroid Build Coastguard Workerdocumentation or code comments instead. For example: 11*61c4878aSAndroid Build Coastguard Worker 12*61c4878aSAndroid Build Coastguard Worker.. code-block:: none 13*61c4878aSAndroid Build Coastguard Worker 14*61c4878aSAndroid Build Coastguard Worker pw_some_module: Short capitalized description 15*61c4878aSAndroid Build Coastguard Worker 16*61c4878aSAndroid Build Coastguard Worker Details about the change here. Include a summary of what changed, and a clear 17*61c4878aSAndroid Build Coastguard Worker description of why the change is needed. Consider what parts of the commit 18*61c4878aSAndroid Build Coastguard Worker message are better suited for documentation or code. 19*61c4878aSAndroid Build Coastguard Worker 20*61c4878aSAndroid Build Coastguard Worker - Added foo, to fix issue bar 21*61c4878aSAndroid Build Coastguard Worker - Improved speed of qux 22*61c4878aSAndroid Build Coastguard Worker - Refactored and extended qux's test suite 23*61c4878aSAndroid Build Coastguard Worker 24*61c4878aSAndroid Build Coastguard Worker----------------------------- 25*61c4878aSAndroid Build Coastguard WorkerInclude both "what" and "why" 26*61c4878aSAndroid Build Coastguard Worker----------------------------- 27*61c4878aSAndroid Build Coastguard WorkerIt is important to include a "why" component in most commits. Sometimes, why is 28*61c4878aSAndroid Build Coastguard Workerevident - for example, reducing memory usage, optimizing, or fixing a bug. 29*61c4878aSAndroid Build Coastguard WorkerOtherwise, err on the side of over-explaining why, not under-explaining why. 30*61c4878aSAndroid Build Coastguard Worker 31*61c4878aSAndroid Build Coastguard WorkerWhen adding the "why" to a commit, also consider if that "why" content should go 32*61c4878aSAndroid Build Coastguard Workerinto the documentation or code comments. 33*61c4878aSAndroid Build Coastguard Worker 34*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Reasoning in commit message 35*61c4878aSAndroid Build Coastguard Worker :class: checkmark 36*61c4878aSAndroid Build Coastguard Worker 37*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 38*61c4878aSAndroid Build Coastguard Worker 39*61c4878aSAndroid Build Coastguard Worker pw_sync_xrtos: Invoke deadlock detector 40*61c4878aSAndroid Build Coastguard Worker 41*61c4878aSAndroid Build Coastguard Worker During locking, run the deadlock detector if there are enough cycles. 42*61c4878aSAndroid Build Coastguard Worker Though this costs performance, several bugs that went unnoticed would have 43*61c4878aSAndroid Build Coastguard Worker been caught by turning this on earlier. Take the small hit by default to 44*61c4878aSAndroid Build Coastguard Worker better catch issues going forward; see extended docs for details. 45*61c4878aSAndroid Build Coastguard Worker 46*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Reasoning omitted 47*61c4878aSAndroid Build Coastguard Worker :class: error 48*61c4878aSAndroid Build Coastguard Worker 49*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 50*61c4878aSAndroid Build Coastguard Worker 51*61c4878aSAndroid Build Coastguard Worker pw_sync_xrtos: Invoke deadlock detector 52*61c4878aSAndroid Build Coastguard Worker 53*61c4878aSAndroid Build Coastguard Worker During locking, run the deadlock detector if there are enough cycles. 54*61c4878aSAndroid Build Coastguard Worker 55*61c4878aSAndroid Build Coastguard Worker------------------ 56*61c4878aSAndroid Build Coastguard WorkerPresent imperative 57*61c4878aSAndroid Build Coastguard Worker------------------ 58*61c4878aSAndroid Build Coastguard WorkerUse present imperative style instead of passive descriptive. 59*61c4878aSAndroid Build Coastguard Worker 60*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Uses imperative style for subject and text. 61*61c4878aSAndroid Build Coastguard Worker :class: checkmark 62*61c4878aSAndroid Build Coastguard Worker 63*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 64*61c4878aSAndroid Build Coastguard Worker 65*61c4878aSAndroid Build Coastguard Worker pw_something: Add foo and bar functions 66*61c4878aSAndroid Build Coastguard Worker 67*61c4878aSAndroid Build Coastguard Worker This commit correctly uses imperative present-tense style. 68*61c4878aSAndroid Build Coastguard Worker 69*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Uses non-imperative style for subject and text. 70*61c4878aSAndroid Build Coastguard Worker :class: error 71*61c4878aSAndroid Build Coastguard Worker 72*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 73*61c4878aSAndroid Build Coastguard Worker 74*61c4878aSAndroid Build Coastguard Worker pw_something: Adds more things 75*61c4878aSAndroid Build Coastguard Worker 76*61c4878aSAndroid Build Coastguard Worker Use present tense imperative style for subjects and commit. The above 77*61c4878aSAndroid Build Coastguard Worker subject has a plural "Adds" which is incorrect; should be "Add". 78*61c4878aSAndroid Build Coastguard Worker 79*61c4878aSAndroid Build Coastguard Worker--------------------------------------- 80*61c4878aSAndroid Build Coastguard WorkerDocumentation instead of commit content 81*61c4878aSAndroid Build Coastguard Worker--------------------------------------- 82*61c4878aSAndroid Build Coastguard WorkerConsider whether any of the commit message content should go in the 83*61c4878aSAndroid Build Coastguard Workerdocumentation or code comments and have the commit message reference it. 84*61c4878aSAndroid Build Coastguard WorkerDocumentation and code comments are durable and discoverable; commit messages 85*61c4878aSAndroid Build Coastguard Workerare rarely read after the change lands. 86*61c4878aSAndroid Build Coastguard Worker 87*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Created docs and comments 88*61c4878aSAndroid Build Coastguard Worker :class: checkmark 89*61c4878aSAndroid Build Coastguard Worker 90*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 91*61c4878aSAndroid Build Coastguard Worker 92*61c4878aSAndroid Build Coastguard Worker pw_i2c: Add and enforce invariants 93*61c4878aSAndroid Build Coastguard Worker 94*61c4878aSAndroid Build Coastguard Worker Precisely define the invariants around certain transaction states, and 95*61c4878aSAndroid Build Coastguard Worker extend the code to enforce them. See the newly extended documentation in 96*61c4878aSAndroid Build Coastguard Worker this change for details. 97*61c4878aSAndroid Build Coastguard Worker 98*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Important content only in commit message 99*61c4878aSAndroid Build Coastguard Worker :class: error 100*61c4878aSAndroid Build Coastguard Worker 101*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 102*61c4878aSAndroid Build Coastguard Worker 103*61c4878aSAndroid Build Coastguard Worker pw_i2c: Add and enforce invariants 104*61c4878aSAndroid Build Coastguard Worker 105*61c4878aSAndroid Build Coastguard Worker Add a new invariant such that before a transaction, the line must be high; 106*61c4878aSAndroid Build Coastguard Worker and after, the line must be low, due to XXX and YYY. Furthermore, users 107*61c4878aSAndroid Build Coastguard Worker should consider whether they could ever encounter XXX, and in that case 108*61c4878aSAndroid Build Coastguard Worker should ZZZ instead. 109*61c4878aSAndroid Build Coastguard Worker 110*61c4878aSAndroid Build Coastguard Worker--------------------------- 111*61c4878aSAndroid Build Coastguard WorkerLists instead of paragraphs 112*61c4878aSAndroid Build Coastguard Worker--------------------------- 113*61c4878aSAndroid Build Coastguard WorkerUse bulleted lists when multiple changes are in a single change. Ideally, try to 114*61c4878aSAndroid Build Coastguard Workercreate smaller changes so this isn't needed, but larger changes are a practical 115*61c4878aSAndroid Build Coastguard Workerreality. 116*61c4878aSAndroid Build Coastguard Worker 117*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Uses bulleted lists 118*61c4878aSAndroid Build Coastguard Worker :class: checkmark 119*61c4878aSAndroid Build Coastguard Worker 120*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 121*61c4878aSAndroid Build Coastguard Worker 122*61c4878aSAndroid Build Coastguard Worker pw_complicated_module: Pre-work for refactor 123*61c4878aSAndroid Build Coastguard Worker 124*61c4878aSAndroid Build Coastguard Worker Prepare for a bigger refactor by reworking some arguments before the larger 125*61c4878aSAndroid Build Coastguard Worker change. This change must land in downstream projects before the refactor to 126*61c4878aSAndroid Build Coastguard Worker enable a smooth transition to the new API. 127*61c4878aSAndroid Build Coastguard Worker 128*61c4878aSAndroid Build Coastguard Worker - Add arguments to MyImportantClass::MyFunction 129*61c4878aSAndroid Build Coastguard Worker - Update MyImportantClass to handle precondition Y 130*61c4878aSAndroid Build Coastguard Worker - Add stub functions to be used during the transition 131*61c4878aSAndroid Build Coastguard Worker 132*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Long paragraph is hard to scan 133*61c4878aSAndroid Build Coastguard Worker :class: error 134*61c4878aSAndroid Build Coastguard Worker 135*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 136*61c4878aSAndroid Build Coastguard Worker 137*61c4878aSAndroid Build Coastguard Worker pw_foo: Many things in a giant BWOT 138*61c4878aSAndroid Build Coastguard Worker 139*61c4878aSAndroid Build Coastguard Worker This change does A, B, and C. The commit message is a Big Wall Of Text 140*61c4878aSAndroid Build Coastguard Worker (BWOT), which we try to discourage in Pigweed. Also changes X and Y, 141*61c4878aSAndroid Build Coastguard Worker because Z and Q. Furthermore, in some cases, adds a new Foo (with Bar, 142*61c4878aSAndroid Build Coastguard Worker because we want to). Also refactors qux and quz. 143*61c4878aSAndroid Build Coastguard Worker 144*61c4878aSAndroid Build Coastguard Worker------------ 145*61c4878aSAndroid Build Coastguard WorkerSubject line 146*61c4878aSAndroid Build Coastguard Worker------------ 147*61c4878aSAndroid Build Coastguard WorkerThe subject line (first line of the commit) should take the form ``pw_<module>: 148*61c4878aSAndroid Build Coastguard WorkerShort description``. The module should not be capitalized, but the description 149*61c4878aSAndroid Build Coastguard Workershould (unless the first word is an identifier). See below for the details. 150*61c4878aSAndroid Build Coastguard Worker 151*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Uses a non-standard ``[]`` to indicate module: 152*61c4878aSAndroid Build Coastguard Worker :class: error 153*61c4878aSAndroid Build Coastguard Worker 154*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 155*61c4878aSAndroid Build Coastguard Worker 156*61c4878aSAndroid Build Coastguard Worker [pw_foo]: Do a thing 157*61c4878aSAndroid Build Coastguard Worker 158*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Has a period at the end of the subject 159*61c4878aSAndroid Build Coastguard Worker :class: error 160*61c4878aSAndroid Build Coastguard Worker 161*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 162*61c4878aSAndroid Build Coastguard Worker 163*61c4878aSAndroid Build Coastguard Worker pw_bar: Do something great. 164*61c4878aSAndroid Build Coastguard Worker 165*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Puts extra stuff after the module which isn't a module. 166*61c4878aSAndroid Build Coastguard Worker :class: error 167*61c4878aSAndroid Build Coastguard Worker 168*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 169*61c4878aSAndroid Build Coastguard Worker 170*61c4878aSAndroid Build Coastguard Worker pw_bar/byte_builder: Add more stuff to builder 171*61c4878aSAndroid Build Coastguard Worker 172*61c4878aSAndroid Build Coastguard WorkerMultiple modules 173*61c4878aSAndroid Build Coastguard Worker================ 174*61c4878aSAndroid Build Coastguard WorkerSometimes it is necessary to change code across multiple modules. 175*61c4878aSAndroid Build Coastguard Worker 176*61c4878aSAndroid Build Coastguard Worker#. **2-5 modules**: Use ``{}`` syntax shown below 177*61c4878aSAndroid Build Coastguard Worker#. **>5 modules changed** - Omit the module names entirely 178*61c4878aSAndroid Build Coastguard Worker#. **Changes mostly in one module** - If the commit mostly changes the 179*61c4878aSAndroid Build Coastguard Worker code in a single module with some small changes elsewhere, only list the 180*61c4878aSAndroid Build Coastguard Worker module receiving most of the content 181*61c4878aSAndroid Build Coastguard Worker 182*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Small number of modules affected; use {} syntax. 183*61c4878aSAndroid Build Coastguard Worker :class: checkmark 184*61c4878aSAndroid Build Coastguard Worker 185*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 186*61c4878aSAndroid Build Coastguard Worker 187*61c4878aSAndroid Build Coastguard Worker pw_{foo, bar, baz}: Change something in a few places 188*61c4878aSAndroid Build Coastguard Worker 189*61c4878aSAndroid Build Coastguard Worker When changes cross a few modules, include them with the syntax shown 190*61c4878aSAndroid Build Coastguard Worker above. 191*61c4878aSAndroid Build Coastguard Worker 192*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Many modules changed 193*61c4878aSAndroid Build Coastguard Worker :class: checkmark 194*61c4878aSAndroid Build Coastguard Worker 195*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 196*61c4878aSAndroid Build Coastguard Worker 197*61c4878aSAndroid Build Coastguard Worker Change convention for how errors are handled 198*61c4878aSAndroid Build Coastguard Worker 199*61c4878aSAndroid Build Coastguard Worker When changes cross many modules, skip the module name entirely. 200*61c4878aSAndroid Build Coastguard Worker 201*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Too many modules changed for subject 202*61c4878aSAndroid Build Coastguard Worker :class: error 203*61c4878aSAndroid Build Coastguard Worker 204*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 205*61c4878aSAndroid Build Coastguard Worker 206*61c4878aSAndroid Build Coastguard Worker pw_{a, b, c, d, e, f, g, h, i, j}: Change convention for how errors are handled 207*61c4878aSAndroid Build Coastguard Worker 208*61c4878aSAndroid Build Coastguard Worker When changes cross many modules, skip the module name entirely. 209*61c4878aSAndroid Build Coastguard Worker 210*61c4878aSAndroid Build Coastguard WorkerNon-standard modules 211*61c4878aSAndroid Build Coastguard Worker==================== 212*61c4878aSAndroid Build Coastguard WorkerMost Pigweed modules follow the format of ``pw_<foo>``; however, some do not, 213*61c4878aSAndroid Build Coastguard Workersuch as targets. Targets are effectively modules, even though they're nested, so 214*61c4878aSAndroid Build Coastguard Workerthey get a ``/`` character. 215*61c4878aSAndroid Build Coastguard Worker 216*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: 217*61c4878aSAndroid Build Coastguard Worker :class: checkmark 218*61c4878aSAndroid Build Coastguard Worker 219*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 220*61c4878aSAndroid Build Coastguard Worker 221*61c4878aSAndroid Build Coastguard Worker targets/xyz123: Tweak support for XYZ's PQR 222*61c4878aSAndroid Build Coastguard Worker 223*61c4878aSAndroid Build Coastguard Worker PQR is needed for reason ZXW; this adds a performant implementation. 224*61c4878aSAndroid Build Coastguard Worker 225*61c4878aSAndroid Build Coastguard WorkerCapitalization 226*61c4878aSAndroid Build Coastguard Worker============== 227*61c4878aSAndroid Build Coastguard WorkerThe text after the ``:`` should be capitalized, provided the first word is not a 228*61c4878aSAndroid Build Coastguard Workercase-sensitive symbol. 229*61c4878aSAndroid Build Coastguard Worker 230*61c4878aSAndroid Build Coastguard Worker.. admonition:: **No**: Doesn't capitalize the subject 231*61c4878aSAndroid Build Coastguard Worker :class: error 232*61c4878aSAndroid Build Coastguard Worker 233*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 234*61c4878aSAndroid Build Coastguard Worker 235*61c4878aSAndroid Build Coastguard Worker pw_foo: do a thing 236*61c4878aSAndroid Build Coastguard Worker 237*61c4878aSAndroid Build Coastguard Worker Above subject is incorrect, since it is a sentence style subject. 238*61c4878aSAndroid Build Coastguard Worker 239*61c4878aSAndroid Build Coastguard Worker.. admonition:: **Yes**: Doesn't capitalize the subject when subject's first 240*61c4878aSAndroid Build Coastguard Worker word is a lowercase identifier. 241*61c4878aSAndroid Build Coastguard Worker :class: checkmark 242*61c4878aSAndroid Build Coastguard Worker 243*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 244*61c4878aSAndroid Build Coastguard Worker 245*61c4878aSAndroid Build Coastguard Worker pw_foo: std::unique_lock cleanup 246*61c4878aSAndroid Build Coastguard Worker 247*61c4878aSAndroid Build Coastguard Worker This commit message demonstrates the subject when the subject has an 248*61c4878aSAndroid Build Coastguard Worker identifier for the first word. In that case, follow the identifier casing 249*61c4878aSAndroid Build Coastguard Worker instead of capitalizing. 250*61c4878aSAndroid Build Coastguard Worker 251*61c4878aSAndroid Build Coastguard Worker However, imperative style subjects often have the identifier elsewhere in 252*61c4878aSAndroid Build Coastguard Worker the subject; for example: 253*61c4878aSAndroid Build Coastguard Worker 254*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 255*61c4878aSAndroid Build Coastguard Worker 256*61c4878aSAndroid Build Coastguard Worker pw_foo: Improve use of std::unique_lock 257*61c4878aSAndroid Build Coastguard Worker 258*61c4878aSAndroid Build Coastguard Worker------ 259*61c4878aSAndroid Build Coastguard WorkerFooter 260*61c4878aSAndroid Build Coastguard Worker------ 261*61c4878aSAndroid Build Coastguard WorkerWe support a number of `git footers`_ in the commit message, such as ``Bug: 262*61c4878aSAndroid Build Coastguard Worker123`` in the message below: 263*61c4878aSAndroid Build Coastguard Worker 264*61c4878aSAndroid Build Coastguard Worker.. code-block:: none 265*61c4878aSAndroid Build Coastguard Worker 266*61c4878aSAndroid Build Coastguard Worker pw_something: Add foo and bar functions 267*61c4878aSAndroid Build Coastguard Worker 268*61c4878aSAndroid Build Coastguard Worker Bug: 123 269*61c4878aSAndroid Build Coastguard Worker 270*61c4878aSAndroid Build Coastguard WorkerThe footer syntax is described in the `git documentation 271*61c4878aSAndroid Build Coastguard Worker<https://git-scm.com/docs/git-interpret-trailers>`_. Note in particular that 272*61c4878aSAndroid Build Coastguard Workermulti-line footers are supported: 273*61c4878aSAndroid Build Coastguard Worker 274*61c4878aSAndroid Build Coastguard Worker.. code-block::none 275*61c4878aSAndroid Build Coastguard Worker 276*61c4878aSAndroid Build Coastguard Worker pw_something: Add foo and bar functions 277*61c4878aSAndroid Build Coastguard Worker 278*61c4878aSAndroid Build Coastguard Worker Test: Carried out manual tests of pw_console 279*61c4878aSAndroid Build Coastguard Worker as described in the documentation. 280*61c4878aSAndroid Build Coastguard Worker 281*61c4878aSAndroid Build Coastguard WorkerYou are encouraged to use the following footers when appropriate: 282*61c4878aSAndroid Build Coastguard Worker 283*61c4878aSAndroid Build Coastguard Worker* ``Bug``: Associates this commit with a bug (issue in our `bug tracker`_). The 284*61c4878aSAndroid Build Coastguard Worker bug will be automatically updated when the change is submitted. When a change 285*61c4878aSAndroid Build Coastguard Worker is relevant to more than one bug, include multiple ``Bug`` lines, like so: 286*61c4878aSAndroid Build Coastguard Worker 287*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 288*61c4878aSAndroid Build Coastguard Worker 289*61c4878aSAndroid Build Coastguard Worker pw_something: Add foo and bar functions 290*61c4878aSAndroid Build Coastguard Worker 291*61c4878aSAndroid Build Coastguard Worker Bug: 123 292*61c4878aSAndroid Build Coastguard Worker Bug: 456 293*61c4878aSAndroid Build Coastguard Worker 294*61c4878aSAndroid Build Coastguard Worker* ``Fixed`` or ``Fixes``: Like ``Bug``, but automatically closes the bug when 295*61c4878aSAndroid Build Coastguard Worker submitted. 296*61c4878aSAndroid Build Coastguard Worker 297*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 298*61c4878aSAndroid Build Coastguard Worker 299*61c4878aSAndroid Build Coastguard Worker pw_something: Fix incorrect use of foo 300*61c4878aSAndroid Build Coastguard Worker 301*61c4878aSAndroid Build Coastguard Worker Fixes: 123 302*61c4878aSAndroid Build Coastguard Worker 303*61c4878aSAndroid Build Coastguard Worker* ``Test``: The author can use this field to tell the reviewer how the change 304*61c4878aSAndroid Build Coastguard Worker was tested. Typically, this will be some combination of writing new automated 305*61c4878aSAndroid Build Coastguard Worker tests, running automated tests, and manual testing. 306*61c4878aSAndroid Build Coastguard Worker 307*61c4878aSAndroid Build Coastguard Worker Note: descriptions of manual testing procedures belong in module 308*61c4878aSAndroid Build Coastguard Worker documentation, not in the commit message. Use the ``Test`` field to attest 309*61c4878aSAndroid Build Coastguard Worker that tests were carried out, not to describe the procedures in detail. 310*61c4878aSAndroid Build Coastguard Worker 311*61c4878aSAndroid Build Coastguard Worker .. code-block:: none 312*61c4878aSAndroid Build Coastguard Worker 313*61c4878aSAndroid Build Coastguard Worker pw_something: Fix incorrect use of foo 314*61c4878aSAndroid Build Coastguard Worker 315*61c4878aSAndroid Build Coastguard Worker Test: Added a regression unit test. 316*61c4878aSAndroid Build Coastguard Worker 317*61c4878aSAndroid Build Coastguard WorkerIn addition, we support all of the `Chromium CQ footers`_, but those are 318*61c4878aSAndroid Build Coastguard Workerrelatively rarely useful. 319*61c4878aSAndroid Build Coastguard Worker 320*61c4878aSAndroid Build Coastguard Worker.. _bug tracker: https://bugs.chromium.org/p/pigweed/issues/list 321*61c4878aSAndroid Build Coastguard Worker.. _Chromium CQ footers: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/infra/cq.md#options 322*61c4878aSAndroid Build Coastguard Worker.. _git footers: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/git-footers.html 323