@@ -137,19 +137,58 @@ If a breaking change is introduced, then `BREAKING CHANGE:` is required; see
137
137
the [ Breaking Changes] ( #breaking-changes ) section for how to introduce breaking
138
138
changes.
139
139
140
+ User visible changes, such as features, fixes, or notable refactors, should
141
+ be documneted in CHANGELOG.md and their respective API doc. See [ Documenting
142
+ changes] for how to do so.
143
+
140
144
Common ` type ` s:
141
145
142
146
* ` build: ` means it affects the building or development workflow.
143
147
* ` docs: ` means only documentation is being added, updated, or fixed.
144
- * ` feat: ` means a user-visible feature is being added.
145
- * ` fix: ` means a user-visible behavior is being fixed.
146
- * ` refactor: ` means some sort of code cleanup that doesn't change user-visible behavior.
148
+ * ` feat: ` means a user-visible feature is being added. See [ Documenting version
149
+ changes] for how to documenAdd ` {versionadded} `
150
+ to appropriate docs.
151
+ * ` fix: ` means a user-visible behavior is being fixed. If the fix is changing
152
+ behavior of a function, add ` {versionchanged} ` to appropriate docs, as necessary.
153
+ * ` refactor: ` means some sort of code cleanup that doesn't change user-visible
154
+ behavior. Add ` {versionchanged} ` to appropriate docs, as necessary.
147
155
* ` revert: ` means a prior change is being reverted in some way.
148
156
* ` test: ` means only tests are being added.
149
157
150
158
For the full details of types, see
151
159
[ Conventional Commits] ( https://www.conventionalcommits.org/ ) .
152
160
161
+ ### Documenting changes
162
+
163
+ Changes are documented in two places: CHANGELOG.md and API docs.
164
+
165
+ CHANGELOG.md contains a brief, human friendly, description. This text is
166
+ intended for easy skimming so that, when people upgrade, they can quickly get a
167
+ sense of what's relevant to them.
168
+
169
+ API documentation are the doc strings for functions, fields, attributes, etc.
170
+ When user-visible or notable behavior is added, changed, or removed, the
171
+ ` {versionadded} ` , ` {versionchanged} ` or ` {versionremoved} ` directives should be
172
+ used to note the change. When specifying the version, use the values
173
+ ` VERSION_NEXT_FEATURE ` or ` VERSION_NEXT_PATCH ` to indicate what sort of
174
+ version increase the change requires.
175
+
176
+ These directives use Sphinx MyST syntax, e.g.
177
+
178
+ ```
179
+ :::{versionadded} VERSION_NEXT_FEATURE
180
+ The `allow_new_thing` arg was added.
181
+ :::
182
+
183
+ :::{versionchanged} VERSION_NEXT_PATCH
184
+ Large numbers no longer consume exponential memory.
185
+ :::
186
+
187
+ :::{versionremoved} VERSION_NEXT_FEATURE
188
+ The `legacy_foo` arg was removed
189
+ :::
190
+ ```
191
+
153
192
## Generated files
154
193
155
194
Some checked-in files are generated and need to be updated when a new PR is
0 commit comments