0.91: (Dec 23 1996) - broke code into mixins for managability - tag parsing instead of lots of gsubs - tweaked pipermail (see comments on pipermail header) - templates are now on a per-list basis as intended. - request over web that your password be emailed to you. - option so that web subscriptions require email confirmation. - wrote a first pass at an admin interface to configurable variables. - made digests mime-compliant. - added a FakeFile class that simulates enough of a file object on a string of text to fool rfc822.Message in non-seek mode. - changed OutgoingMessage not to require its args in constructor. - added an admin request DB interface. - clearly separated the internal name from the real name. - replaced lots of ugly, redundant code w/ nice code. (added Get...Email() interfaces, GetScriptURL, etc...) - Wrote a lot of pretty html formatting functions / classes. (Dec 27 1997) - Fleshed out the newlist command a lot. It now mails the new list admin, and auto-updates the aliases file. - Made multiple owners acceptable. - Non-advertised lists, closed lists, max header length, max msg length - Allowed editing templates from list admin pages. - You can get to your info page from the web even if the list is closed. 0.92: (Jan 13-16 1997) - Added Lock and Unlock methods to list to ensure each operation is atomic - Added a cmd that rms all files of a mailing list (but not the aliases) - Fixed subscribing an unknown user@localhost (confirm this) - Changed the sender to list-admin@... to ensure we avoid mail loops. - check to make sure there are msgs to archive before calling pipermail. - started using this w/ real mailing lists. - Added a cron script that scours the maillog for User/Host unknown errs - Sort membership lists - Always display digest_is_default option - Don't slam the TO list unless you're sending a digest. - When making digest summaries, if missing sender name, use their email. - Hacked in some protection against crappy dates in pipermail.py - Made it so archive/digest volumes can go up monthly for large large lists. - Number digest messages - Add headers/footers to each message in digest for braindead mailers - I removed some forgotten debug statements that caused server errors when a CGI script sent mail. - Removed loose_matches flag, since everything used it. - Fixed a problem in pipermail if there was no From line. - In upvolume_ scripts, remove INDEX files as we leave a volume. - Threw a couple of scripts in bin for generating archives from majordomo's digest-archives. I wouldn't recommend them for the layman, though, they were meant to do a job quickly, not to be usable. 0.93: (Jan 18,20 1997) - When delivering to list, don't call sendmail directly. Write to a file, and then run the new deliver script, which forks and exits in the parent immediately to avoid hanging when delivering mail for large lists, so that large lists don't spend a lot of time locked. - GetSender() no longer assumes that you don't have an owner-xxx address. - Fixed unsubscribing via mail. - Made subscribe via mail generate a password if you don't supply one. - Added an option to clobber the date in the archives to the date the list resent the post, so that the archive doesn't get mail from people sending bad dates clumped up at the beginning or end. - Added automatic error message processing as an option. Currently logging to /tmp/bounce.log - Changed archive to take a list as an argument, (the old way was broken) - Remove (ignore) spaces in email addresses - Allow user passwords to be case insensitive. - Removed the cleanup script since it was now redundant. - Fixed archives if there were no archives. - Added a Lock() call to Load() and Create(). This fixes the problem of loading then locking. - Removed all occurances of Lock() except for the ones in maillist since creating a list now implicitly locks it. - Quote single periods in message text. - Made bounce system handle digest users fairly. 0.94: (Jan 22, 1997) - Made admin password work ubiquitously in place of a user password. - Added an interface for getting / setting user options. - Added user option to disable mime digests (digested people only) - Added user option to not receive your own posts (nondigested people only) - Added user option to ack posts - Added user option to disable list delivery to their box. - Added web interface to user options - Config number of sendmail spawns on a per-list basis - Fixed extra space at beginning of each message in digests... - Handled comma separated emails in bounce messages... - Added a FindUser() function to MailList. Used it where appropriate. - Added mail interface to setting list options. - Added name links to the templates options page - Added an option so people can hide their names from the subscription list. - Added an answer_majordomo_mail script for people switching... 0.95: (Jan 25, 1997) - Fixed a bug in sending out digests added when adding disable mime option. - Added an option to not notify about bounced posts. - Added hook for pre-posting filters. These could be used to auto-strip signatures. I'm using the feature to auto-strip footers that are auto-generated by mail received from another mailing list.