README.txt 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. Adding release notes
  2. --------------------
  3. When adding release notes for the next release, add a file to one of these
  4. directories:
  5. unreleased_history/new_features
  6. unreleased_history/behavior_changes
  7. unreleased_history/public_api_changes
  8. unreleased_history/bug_fixes
  9. with a unique name that makes sense for your change, preferably using the .md
  10. extension for syntax highlighting.
  11. There is a script to help, as in
  12. $ unreleased_history/add.sh unreleased_history/bug_fixes/crash_in_feature.md
  13. or simply
  14. $ unreleased_history/add.sh
  15. will take you through some prompts.
  16. The file should usually contain one line of markdown, and "* " is not
  17. required, as it will automatically be inserted later if not included at the
  18. start of the first line in the file. Extra newlines or missing trailing
  19. newlines will also be corrected.
  20. The only times release notes should be added directly to HISTORY are if
  21. * A release is being amended or corrected after it is already "cut" but not
  22. tagged, which should be rare.
  23. * A single commit contains a noteworthy change and a patch release version bump
  24. Ordering of entries
  25. -------------------
  26. Within each group, entries will be included using ls sort order, so important
  27. entries could start their file name with a small three digit number like
  28. 100pretty_important.md.
  29. The ordering of groups such as new_features vs. public_api_changes is
  30. hard-coded in unreleased_history/release.sh
  31. Updating HISTORY.md with release notes
  32. --------------------------------------
  33. The script unreleased_history/release.sh does this. Run the script before
  34. updating version.h to the next development release, so that the script will pick
  35. up the version being released. You might want to start with
  36. $ DRY_RUN=1 unreleased_history/release.sh | less
  37. to check for problems and preview the output. Then run
  38. $ unreleased_history/release.sh
  39. which will git rm some files and modify HISTORY.md. You still need to commit the
  40. changes, or revert with the command reported in the output.
  41. Why not update HISTORY.md directly?
  42. -----------------------------------
  43. First, it was common to hit unnecessary merge conflicts when adding entries to
  44. HISTORY.md, which slowed development. Second, when a PR was opened before a
  45. release cut and landed after the release cut, it was easy to add the HISTORY
  46. entry to the wrong version's history. This new setup completely fixes both of
  47. those issues, with perhaps slightly more initial work to create each entry.
  48. There is also now an extra step in using `git blame` to map a release note
  49. to its source code implementation, but that is a relatively rare operation.