Developers' Notes: I've added the beginnings of a unit test framework to MailCrypt. The only thing tested so far is GPG decryption. The armored keyrings and test cases are packaged as part of the distribution tarball, where a 'make check' can unpack them and then use them to run the tests. There are two keyrings: a full set (used to create the test cases), and an 'exported' set which has some of the secret keys removed (to test what happens when you try to decrypt a message that isn't addressed to you). To build MailCrypt from CVS: You will need GNU autoconf. The following sequence will create the distribution tarball. autoconf ./configure make dist To rebuild the unit test keyrings and test cases: Do the following to create the keys: ./configure cd tests/gpg-keys make new-rings (now manually sign the appropriate keys following the hints emitted by the script.. this part hasn't been automated yet) make exported make pack (creates allrings.txt, the armored keyring file. This file is checked into CVS) cd ../.. The test cases are regenerated as part of the development anytime the keys are changed or the testcase generator script is modified. To rebuild them, you will need the Python GnuPGInterface module, available at . After installing it, do the following: cd tests make gpg-testcases (this unpacks allrings.txt, then runs a program which creates the GPG test cases in gpg-testcases/* . These test cases are also checked into CVS) cd .. Making a new release. This is my checklist for making a new official release. During development: ChangeLog gets updated for each CVS checkin. NEWS gets updated with all changes since last release. At release time: build and test, get reports from beta testers, decide to make release mailcrypt.el: bump mc-version mailcrypt.texi: bump VERSION ANNOUNCE gets updated with latest news. Changelog gets note: '* mailcrypt: Release mailcrypt-N.N.N' commit all docs changes cvs tag release-N_N_N make dist copy resulting mailcrypt-N-N-N.tar.gz to tmp dir sign .tar.gz, put in tmp dir take latest portion of NEWS to use as sourceforge Release Notes file, tmpdir take ChangeLog since last release for as sourceforge Changelog file, tmpdir update .lsm file upload .tar.gz, .sig, release notes, changelog to sourceforge download area update http://mailcrypt.sourceforge.net (update 'site' module, login to mailcrypt.sourceforge.net, go to /home/groups/m/ma/mailcrypt/htdocs/ and do a cvs update) announce on sourceforge news announce on mailcrypt-announce@lists.sourceforge.net announce on freshmeat upload to sunsite? (now ibiblio.org)