Skip to content

Commit 8cdd930

Browse files
committed
chore: Update our contributing guide for the new changelog format
1 parent 3ec6d09 commit 8cdd930

1 file changed

Lines changed: 38 additions & 9 deletions

File tree

CONTRIBUTING.md

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,45 @@ that is, just the branch name.)
9494

9595
## Writing changelog entries
9696

97-
Our goal is to maintain clear, concise, and informative changelogs that
98-
accurately document changes in the project. Changelog entries should be written
99-
manually for each crate in the `/crates/$CRATE_NAME/Changelog.md` file.
97+
We use towncrier to generate changelogs from individual fragment files. Each
98+
change must be documented as a changelog fragment in the appropriate crate:
10099

101-
Be sure to include a link to the pull request for additional context. A
102-
well-written changelog entry should be understandable even to those who may not
103-
be deeply familiar with the project. Provide enough context to ensure clarity
104-
and ease of understanding.
100+
```
101+
/crates/<crate-name>/changelog.d/
102+
```
103+
104+
Each changelog fragment must include **both the pull request number and the
105+
fragment type** in its filename:
106+
107+
```
108+
<PR number>.<fragment type>.md
109+
```
110+
111+
For example:
112+
113+
```
114+
4357.added.md
115+
4357.fixed.md
116+
4357.changed.md
117+
```
118+
119+
The pull request link is automatically added during changelog generation, so it
120+
must not be included manually.
121+
122+
We use standard towncrier fragment types to categorize changes. Common types include:
123+
124+
* `added` – new features or functionality
125+
* `changed` – changes in existing behavior
126+
* `fixed` – bug fixes
127+
* `removed` – removed features or APIs
128+
* `security` – security-related fixes
129+
* `internal` – changes that do not affect users (refactoring, CI, tooling)
130+
131+
Choose the type that best matches the nature of the change.
132+
133+
A well-written changelog entry should be understandable even to those who may
134+
not be deeply familiar with the project. Provide enough context to ensure
135+
clarity and ease of understanding.
105136

106137
A couple of examples of bad changelog entry would look like:
107138

@@ -120,7 +151,6 @@ A good example of a changelog entry could look like the following:
120151
fallback values for the via parameter when requesting the room summary from
121152
the homeserver. This ensures requests succeed even when the room being
122153
previewed is hosted on a federated server.
123-
([#4357](https://github.com/matrix-org/matrix-rust-sdk/pull/4357))
124154
```
125155

126156
For security-related changelog entries, please include the following additional
@@ -135,7 +165,6 @@ details alongside the pull request number:
135165
```markdown
136166
- Use a constant-time Base64 encoder for secret key material to mitigate
137167
side-channel attacks leaking secret key material
138-
([#156](https://github.com/matrix-org/vodozemac/pull/156)) (Low,
139168
[CVE-2024-40640](https://www.cve.org/CVERecord?id=CVE-2024-40640),
140169
[GHSA-j8cm-g7r6-hfpq](https://github.com/matrix-org/vodozemac/security/advisories/GHSA-j8cm-g7r6-hfpq)).
141170
```

0 commit comments

Comments
 (0)