xref: /aosp_15_r20/external/pigweed/docs/style/commit_message.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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