@@ -137,19 +137,58 @@ If a breaking change is introduced, then `BREAKING CHANGE:` is required; see
137137the [ Breaking Changes] ( #breaking-changes ) section for how to introduce breaking
138138changes.
139139
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+
140144Common ` type ` s:
141145
142146* ` build: ` means it affects the building or development workflow.
143147* ` 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.
147155* ` revert: ` means a prior change is being reverted in some way.
148156* ` test: ` means only tests are being added.
149157
150158For the full details of types, see
151159[ Conventional Commits] ( https://www.conventionalcommits.org/ ) .
152160
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+
153192## Generated files
154193
155194Some checked-in files are generated and need to be updated when a new PR is
0 commit comments