Skip to content

🔧 Automation scripts and notes

Notifications You must be signed in to change notification settings

neomutt/management

Repository files navigation

NeoMutt Management

This repo is a collection of scripts and notes that help to automate the day-to-day running of the NeoMutt Project.

Developer Build Scripts

Two scripts to automate the building of NeoMutt.

Script Description
build.sh Build NeoMutt with your favourite options
test-configs.sh Build NeoMutt with a wide set of configure options

Feature Templates

It's important for new features to be well-documented. To help new users, each NeoMutt feature comes with a Chapter in the Manual, a sample muttrc and for Vim users a vim syntax file for config-file highlighting.

Release Templates

When making a release, these templates save time preparing the accompanying notes.

File Description
changelog ChangeLog
dev-ml NeoMutt Devel Mailing List
emojis Emojis for website/GitHub
github GitHub Release Announcement
rpm RPM Spec changelog
user-ml NeoMutt Users Mailing List
website Website News Article

Release Automation

Make manual work semi-automatic.

File Description
get_summary.sh Print summary for new release message to maillists, updates list of contributors
generate.sh Regenerates mailmaps and credits
  • get_summary.sh </path/to/neomutt/repo> [<since ref>] [<to ref>]

    • Execute after merging branchces into master before neomutt release,
    • Prints summary of contributions to repository since last release (or <since ref> if specified) to HEAD (or <to ref> if specified).
    • Adds new contributors to neomutt.txt, so they will be present in mailmap files (mailmap files are created by generate.sh)
    • It's a good idea to revisit neomutt.txt diff after running the script.
  • generate.sh

    • regenerates mailmap, mailmap-name-nick, mailmap-nick and credits

Update Distro Bin

After a release, NeoMutt provides automatic updates for several distros. There's an update script and a git repo for each.

Distro Script GitHub Repo
Arch (AUR) aur.sh https://github.com/neomutt/aur-build
Fedora (COPR) copr.sh https://github.com/neomutt/copr-neomutt
Gentoo gentoo.sh https://github.com/neomutt/gentoo-neomutt
Homebrew (MacOS) homebrew.sh https://github.com/neomutt/homebrew-neomutt

Misc Bin

Various useful scripts. Warning: Don't use unless you know what you're doing.

Script Description
update-from-hg.sh Pull upstream commits into our NeoMutt repo
webhook-bridge.py Notify poeditor.com of changes to translations

List of Standard Functions

A list of the minimum requirements to build NeoMutt.

File Headers Standard Permitted
c99.txt c99h.txt C99 Yes
2001.txt 2001h.txt POSIX:2001 Yes
2008.txt 2008h.txt POSIX:2008 No

Travis YAML Files

These are copies of our Travis control files.

File Branch
aur.yml https://github.com/neomutt/aur-buildll
macports.yml https://github.com/neomutt/neomutt/tree/distro/macports
master.yml https://github.com/neomutt/neomutt/tree/master

Min-Build

This script minimises a NeoMutt git repo. For those times that you just want to look at the code.

File Description
make-min-build.sh Script to remove non-code files
min-config.h Minimal config.h
min-gitignore Minimal .gitignore
min-Makefile Minimal Makefile

Universal Ctags

These files configure Universal Ctags to parse some of NeoMutt's pre-processor macros.

The ctags directory can be symlinked from your home dir as .ctags.d

File Description
queue.ctags Expand macros to reveal the struct within

Doc Bin

A couple of tools for processing DocBook into HTML.

File Description
fix-feature-since.sh Restore the 'since' date
transform-links.vim Fix the html links
fix-links.sed Fix some internal links