You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.2 KiB

2 years ago
  1. # Pending changelog entry directory
  2. This directory contains changelog entries that have not yet been merged
  3. to the changelog file ([`../ChangeLog`](../ChangeLog)).
  4. ## What requires a changelog entry?
  5. Write a changelog entry if there is a user-visible change. This includes:
  6. * Bug fixes in the library or in sample programs: fixing a security hole,
  7. fixing broken behavior, fixing the build in some configuration or on some
  8. platform, etc.
  9. * New features in the library, new sample programs, or new platform support.
  10. * Changes in existing behavior. These should be rare. Changes in features
  11. that are documented as experimental may or may not be announced, depending
  12. on the extent of the change and how widely we expect the feature to be used.
  13. We generally don't include changelog entries for:
  14. * Documentation improvements.
  15. * Performance improvements, unless they are particularly significant.
  16. * Changes to parts of the code base that users don't interact with directly,
  17. such as test code and test data.
  18. Until Mbed TLS 2.16.8, we required changelog entries in more cases.
  19. Looking at older changelog entries is good practice for how to write a
  20. changelog entry, but not for deciding whether to write one.
  21. ## Changelog entry file format
  22. A changelog entry file must have the extension `*.txt` and must have the
  23. following format:
  24. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  25. Security
  26. * Change description.
  27. * Another change description.
  28. Features
  29. * Yet another change description. This is a long change description that
  30. spans multiple lines.
  31. * Yet again another change description.
  32. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  33. The permitted changelog entry categories are as follows:
  34. <!-- Keep this synchronized with STANDARD_CATEGORIES in assemble_changelog.py! -->
  35. API changes
  36. Default behavior changes
  37. Requirement changes
  38. New deprecations
  39. Removals
  40. Features
  41. Security
  42. Bugfix
  43. Changes
  44. Use “Changes” for anything that doesn't fit in the other categories.
  45. ## How to write a changelog entry
  46. Each entry starts with three spaces, an asterisk and a space. Continuation
  47. lines start with 5 spaces. Lines wrap at 79 characters.
  48. Write full English sentences with proper capitalization and punctuation. Use
  49. the present tense. Use the imperative where applicable. For example: “Fix a
  50. bug in mbedtls_xxx() ….”
  51. Include GitHub issue numbers where relevant. Use the format “#1234” for an
  52. Mbed TLS issue. Add other external references such as CVE numbers where
  53. applicable.
  54. Credit bug reporters where applicable.
  55. **Explain why, not how**. Remember that the audience is the users of the
  56. library, not its developers. In particular, for a bug fix, explain the
  57. consequences of the bug, not how the bug was fixed. For a new feature, explain
  58. why one might be interested in the feature. For an API change or a deprecation,
  59. explain how to update existing applications.
  60. See [existing entries](../ChangeLog) for examples.
  61. ## How `ChangeLog` is updated
  62. Run [`../scripts/assemble_changelog.py`](../scripts/assemble_changelog.py)
  63. from a Git working copy
  64. to move the entries from files in `ChangeLog.d` to the main `ChangeLog` file.