Release Checklist

This is the checklist for cutting a release.

  1. Eliminate all compiler warnings.
    • debug
    • release
    • minrelease
  2. Run scan-build and eliminate warnings.
    • debug
    • release
    • minrelease
  3. Run and pass the test suite.
    • debug (with AddressSanitizer and UndefinedBehaviorSanitizer)
    • release
    • minrelease
  4. Run timeconst.sh.
    • debug
    • release
    • minrelease
  5. Run the randmath.sh script an excessive amount and add failing tests to test suite.
    • debug
    • release
    • minrelease
  6. Run valgrind on the test suite.
    • debug
  7. Have other testers try to break it.
  8. Fuzz with AFL
    • release
  9. Fix AFL crashes as much as possible.
  10. Repeat steps 1-9 again and repeat until nothing is found.
  11. Run the release script.
  12. Upload the custom tarball to GitHub.
  13. Add sha's to release notes.
  14. Edit release notes for the changelog.