Skip to content

Commit 8c39ca8

Browse files
committed
Add changelog entry guidance and agreed upon standards for new contributors (#990)
1 parent cdb2e04 commit 8c39ca8

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,67 @@ source (.txt, .xml)
157157
* Java source: { at end of line, 4 space indents
158158
* XML source: 2 space indents
159159

160+
## Changelog Entries
161+
162+
Every code change that affects functionality, behavior, or user-visible features should have a corresponding entry in `webapps/docs/changelog.xml`.
163+
164+
### When Changelog Entries Are Needed
165+
166+
Add a changelog entry for:
167+
- New features or APIs
168+
- Bug fixes
169+
- Changes to defaults or existing behavior
170+
- Removals or deprecations
171+
- Significant refactoring that affects performance or behavior
172+
- Documentation updates to public APIs
173+
174+
Skip changelog entries for:
175+
- Test-only changes (unless fixing a test infrastructure issue)
176+
- Build script maintenance
177+
- Internal code cleanup with no user impact
178+
179+
### Entry Types
180+
181+
Use the appropriate XML element based on the nature of your change:
182+
183+
- `<add>` - New features, APIs, or capabilities. Start with "Add" or "Implement".
184+
Example: `Add support for Jakarta EE 12 XML schemas.`
185+
186+
- `<update>` - Changes to existing features, defaults, or removals. Start with "Change", "Remove", or "Update".
187+
Example: `Change the default for encodedSolidusHandling from decode to reject.`
188+
189+
- `<fix>` - Bug fixes. Start with "Fix". Include `<bug>NUMBER</bug>` if applicable.
190+
Example: `<bug>70000</bug>: Fix duplication of special headers in the response after commit.`
191+
192+
- `<scode>` - Internal refactoring or code structure changes. Explain the benefit, not just the change.
193+
Example: `Refactor generation of the remote user element in the access log to remove unnecessary code.`
194+
195+
- `<docs>` - Documentation-only updates (Javadoc, configuration docs).
196+
Example: `Add Javadoc for the Common Annotations API implementation.`
197+
198+
### Style and Formatting
199+
200+
- Write in present tense, imperative mood ("Add support" not "Added support")
201+
- Keep entries concise (1-3 sentences)
202+
- Use `<code>` tags for class names, method names, and configuration attributes
203+
- Use `<bug>NUMBER</bug>` for Bugzilla references
204+
- For default changes, show before -> after: "from `false` to `true`"
205+
- End with attribution in parentheses: `(username)`
206+
- For community patches: "Patch submitted by Name. (committer)"
207+
208+
### Subsection Placement
209+
210+
Place entries in the appropriate subsection following this order:
211+
General, Catalina, Coyote, Jasper, Cluster, WebSocket, Web applications, Extras, Tribes, jdbc-pool, Other
212+
213+
### Common Pitfalls to Avoid
214+
215+
- Don't use past tense ("Fixed" -> use "Fix")
216+
- Don't omit `<code>` tags for technical terms
217+
- Don't forget attribution at the end
218+
- Don't be vague ("Fix bug" -> "Fix NPE when processing empty request headers")
219+
- Don't include implementation details unless relevant to users
220+
160221
## Did we miss something?
161222

162223
Have you reviewed this guide and found it lacking? Or are you confused about

webapps/docs/changelog.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@
9090

9191
<body>
9292
<!--
93+
For guidance on writing changelog entries, see the "Changelog Entries"
94+
section in CONTRIBUTING.md.
95+
9396
Subsection ordering:
9497
General, Catalina, Coyote, Jasper, Cluster, WebSocket, Web applications,
9598
Extras, Tribes, jdbc-pool, Other

0 commit comments

Comments
 (0)