Merge Upstream Changes

Before making a release, it’s important that we’ve merged all the latest fixes from upstream Mutt.

Repos needed:


Currently, there are 7 unmerged commits. Not all of them will be relevant to NeoMutt.

  • Fix inotify configure test
  • Properly revert on an autocrypt postpone failure
  • Re-enable and cleanup format-flowed space stuffing
  • Remove manual note about space-stuffing only once
  • Reuse the static space_stuff function for unstuffing
  • Fix memory leak when attaching messages
  • Convert bcache to use buffer pools

Exporting them to patch form first makes it easier to merge them. As patches, you can perform search/replace to NeoMutt-ify them.

  • git format-patch HASH^..HASH
  • Tidy commit subject
    • Remove references to their tracker
    • Remove trailing .
    • Shorten to 50 chars, if overly long
  • Tidy the message body
  • Tidy the patch
    • Search/replace Mutt structs with NeoMutt structs, etc
    • Add a credit for yourself – this is time-consuming work Co-authored-by: Richard Russon <>
  • Apply patch: git am PATCH

After each patch applied, run clang-format on the code to tidy it up. If the patch changes the docs, run make validate-docs to check them.


Once all the changes are committed, check your work and test that NeoMutt still runs. Finally, merge your changes:

git checkout main
git commit --no-ff upstream --message "upstream fixes" --message "Upstream commit: HASH"

The second message mentions the latest upstream commit hash that you’ve merged. This helps the next person merging upstream commits.

Search by Algolia