it's monday, so users are starting to weigh in on the ugpraded server. For the most part, it's pretty positive.
with one exception. they hate the text digest format. And in fact, one user pointed out (correctly, it seems) that it's not conformant with the digest RFC:
Looks like mailman as it's set up doesn't use a conformant separator, and doesn't order header lines properly to the RFC.
Also, I've had a number of requests to bump the volume number. That one is pretty badly hidden (it seems to be in Mailman/MailList.py). That really needs to be made configurable through Defaults.PY, as should (IMHO) the separator (which is hidden in Handers/ToDigest.py as MIME_NONSEPARATOR.
it'd be Really Nice, also, if there were some programmatic way to bump the volume, so it could be stuffed into cron and run at 0:00 1/1/*. And, to be honest, volume numbers need to (eventually) be per-list...
These are primarily cosmetic issues, but I really think most of them need to be looked at before 2.0 ships. Per-list volumes is beyond the scope of this release, but the rest need to be looked at, especally since the Mailman digest format breaks everyone's digest-auto-processors (and yes, MIME digests are the real answer, but not everyone is ready for them yet, and there's no reason to arbitrarily break things...0
"CVR" == Chuq Von Rospach email@example.com writes:
CVR> it's monday, so users are starting to weigh in on the CVR> ugpraded server. For the most part, it's pretty positive.
CVR> with one exception. they hate the text digest format. And in CVR> fact, one user pointed out (correctly, it seems) that it's CVR> not conformant with the digest RFC: CVR> <http://www.rfc-editor.org/rfc/rfc1153.txt> CVR> Looks like mailman as it's set up doesn't use a conformant CVR> separator, and doesn't order header lines properly to the CVR> RFC.
Right on both counts.
CVR> Also, I've had a number of requests to bump the volume CVR> number. That one is pretty badly hidden (it seems to be in CVR> Mailman/MailList.py). That really needs to be made CVR> configurable through Defaults.PY, as should (IMHO) the CVR> separator (which is hidden in Handers/ToDigest.py as CVR> MIME_NONSEPARATOR. CVR> it'd be Really Nice, also, if there were some programmatic CVR> way to bump the volume, so it could be stuffed into cron and CVR> run at 0:00 1/1/*. And, to be honest, volume numbers need to CVR> (eventually) be per-list...
Actually, they are per-list. The attributes are mlist.volume and mlist.next_digest_number. It's easier at this point to add a small cron script to do the bumping, which I've attached below, and will include in 2.0 final.
As far as fixing the plain text digest format to be RFC 1153 compliant, I agree it should be done. But to do it right requires more changes than I'm comfortable with for 2.0 final. I've put it on the TODO list and will fix it for 2.1.
[Aside: I use XEmacs/VM as my primary MUA and it groks the plain digest format just fine, so I've never seen this problem! Think you can get all your users to "upgrade" their MUAs? :) ]
-------------------- snip snip --------------------cron/bumpdigests #! /usr/bin/env python # # Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
"""Increment the digest volume number and reset the digest number to zero.
Usage: %(PROGRAM)s [options] [listname ...]
--help/-h Print this message and exit.
The lists named on the command line are bumped. If no list names are given, all lists are bumped. """
import sys import getopt
import paths from Mailman import MailList from Mailman import Utils from Mailman import Errors
# Work around known problems with some RedHat cron daemons import signal signal.signal(signal.SIGCHLD, signal.SIG_DFL)
PROGRAM = sys.argv
def usage(code, msg=''): print __doc__ % globals() if msg: print msg sys.exit(code)
def main(): try: opts, args = getopt.getopt(sys.argv[1:], 'h', ['help']) except getopt.error, msg: usage(1, msg)
for opt, arg in opts: if opt in ('-h', '--help'): usage(0) if args: listnames = args else: listnames = Utils.list_names() if not listnames: print 'Nothing to do.' sys.exit(0) for listname in listnames: try: # be sure the list is locked mlist = MailList.MailList(listname) except Errors.MMListError, e: usage(1, 'No such list: %s' % listname) try: mlist.volume = mlist.volume + 1 mlist.next_digest_number = 1 finally: mlist.Save() mlist.Unlock()
if __name__ == '__main__': main()