blob: abe0537efe0e83619217bdf2b11a6abc47b765a6 [file] [log] [blame] [view]
Gilles Peskineb695d5e2020-03-27 20:06:12 +01001# Pending changelog entry directory
2
Gilles Peskine7c3f7cd2020-03-27 19:47:35 +01003This directory contains changelog entries that have not yet been merged
4to the changelog file ([`../ChangeLog`](../ChangeLog)).
5
Gilles Peskineb695d5e2020-03-27 20:06:12 +01006## Changelog entry file format
7
Gilles Peskine7c3f7cd2020-03-27 19:47:35 +01008A changelog entry file must have the extension `*.txt` and must have the
9following format:
10
11~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12Security
13 * Change description.
14 * Another change description.
15
16Features
Gilles Peskineb695d5e2020-03-27 20:06:12 +010017 * Yet another change description. This is a long change description that
18 spans multiple lines.
Gilles Peskine7c3f7cd2020-03-27 19:47:35 +010019 * Yet again another change description.
20
21~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
22
Gilles Peskineb695d5e2020-03-27 20:06:12 +010023The permitted changelog entry categories are as follows:
24<!-- Keep this synchronized with STANDARD_CATEGORIES in assemble_changelog.py! -->
25
26 API changes
27 Default behavior changes
28 Requirement changes
29 New deprecations
30 Removals
31 Features
32 Security
33 Bugfix
34 Changes
35
36Use Changes for anything that doesn't fit in the other categories, such as
37performance, documentation and test improvements.
38
39## How to write a changelog entry
40
41Each entry starts with three spaces, an asterisk and a space. Continuation
42lines start with 5 spaces. Lines wrap at 79 characters.
43
44Write full English sentences with proper capitalization and punctuation. Use
45the present tense. Use the imperative where applicable. For example: “Fix a
46bug in mbedtls_xxx() ….”
47
48Include GitHub issue numbers where relevant. Use the format “#1234” for an
49Mbed TLS issue. Add other external references such as CVE numbers where
50applicable.
51
Gilles Peskine3b4edc72020-09-30 01:13:05 +020052Credit bug reporters where applicable.
Gilles Peskineb695d5e2020-03-27 20:06:12 +010053
54**Explain why, not how**. Remember that the audience is the users of the
55library, not its developers. In particular, for a bug fix, explain the
56consequences of the bug, not how the bug was fixed. For a new feature, explain
57why one might be interested in the feature. For an API change or a deprecation,
58explain how to update existing applications.
59
60See [existing entries](../ChangeLog) for examples.
61
62## How `ChangeLog` is updated
63
64Run [`../scripts/assemble_changelog.py`](../scripts/assemble_changelog.py)
65from a Git working copy
66to move the entries from files in `ChangeLog.d` to the main `ChangeLog` file.