<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/bin/qrunner, branch master</title>
<subtitle>The GNU Mailing List manager.</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom/bin/qrunner?h=master</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom/bin/qrunner?h=master'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2007-07-21T18:52:50Z</updated>
<entry>
<title>Remove some obsolete command line scripts:</title>
<updated>2007-07-21T18:52:50Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2007-07-21T18:52:50Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=a55d4aa436f34e5d3f1e0e06b372b57de323aa61'/>
<id>urn:sha1:a55d4aa436f34e5d3f1e0e06b372b57de323aa61</id>
<content type='text'>
- bin/check_dbs because there are no more pickles
- bin/convert because in MM3 everything will use $-strings and we'll do the
  conversion on import of the old list data
- bin/mmshell because setuptools provides its own equivalent
- bin/qrunner and bin/mailmanctl because the files were empty

There are a bunch of scripts still left in bin/ which will eventually get
removed.  I'm leaving them for now because they're either helpers generally
tangential to Mailman (msgfmt, po2template, pygettext, templ2pot, transcheck),
or are using old interfaces that will go away soon (clone_member, convert,
discard, fix_url, list_admins, remove_members, reset_pw, sync_members).

Also moved bin/cleanarch into Mailman/bin/cleanarch.py and updated it to use
optparse.

Also added a small patch to genalias to standardize its help printing.
</content>
</entry>
<entry>
<title>Massive conversion process so that Mailman can be run from a user specified</title>
<updated>2006-07-08T17:37:55Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2006-07-08T17:37:55Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=cbef3114de3e80b9436d909b11568858e3a1cf42'/>
<id>urn:sha1:cbef3114de3e80b9436d909b11568858e3a1cf42</id>
<content type='text'>
configuration file.  While the full conversion is not yet complete, everything
that seems to be required to run mailmanctl, qrunner, rmlist, and newlist have
been updated.

Basically, modules should no longer import mm_cfg, but instead they should
import Mailman.configuration.config.  The latter is an object that's
guaranteed to exist, but not guaranteed to be initialized until some top-level
script calls config.load().  The latter should be called with the argument to
-C/--config which is a new convention the above scripts have been given.

In most cases, where mm_cfg.&lt;variable&gt; is used config.&lt;variable&gt; can be used,
but the exceptions are where the default value must be available before
config.load() is called.  Sometimes you can import Mailman.Default and get the
variable from there, but other times the code has to be changed to work around
this limitation.  Take each on a case-by-case basis.

Note that the various directories calculated from VAR_PREFIX, EXEC_PREFIX, and
PREFIX are now calculated in config.py, not in Defaults.py.  This way a
configuration file can override the base directories and everything should
work correctly.

Other changes here include:

- mailmanctl, qrunner, and update are switched to optparse and $-strings, and
  changed to the mmshell architecture
- An etc directory has been added to /usr/local/mailman and a
  mailman.cfg.sample file is installed there.  Sites should now edit an
  etc/mailman.cfg file to do their configurations, although the mm_cfg file is
  still honored.  The formats of the two files are identical.
- list_lists is given the -C/--config option
- Some coding style fixes in bin/update, but not extensive
- Get rid of nested scope hacks in qrunner.py
- A start on getting EmailBase tests working (specifically test_message),
  although not yet complete.

</content>
</entry>
<entry>
<title>- Fixes to further remove the old Syslog from bin and cron scripts.  Note that</title>
<updated>2006-04-24T03:55:29Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2006-04-24T03:55:29Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=155748d1c28457ce49dd6f67df24cd01285438a4'/>
<id>urn:sha1:155748d1c28457ce49dd6f67df24cd01285438a4</id>
<content type='text'>
  I didn't update cron/mailpasswds because that is going away.  cron/disabled
  and cron/gate_news are only minimally tested.
- Instead of using the RotatingFileHandler for our logs, use our own
  ReopenableFileHandler, which only minimally derives from FileHandler and
  implements a reopen() method.  I think it's generally better to leave file
  rotation to external tools such as logrotate.
- Remove some Python 2.1 compatibility stuff.
- Ignore .mo files in messages/vi/LC_MESSAGES
</content>
</entry>
<entry>
<title>- Convert all logging to Python's standard logging module.  Get rid of all</title>
<updated>2006-04-17T04:08:17Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2006-04-17T04:08:17Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0'/>
<id>urn:sha1:0ed815a216c7bb6f820cfdf99fc8d31bcfd19fc0</id>
<content type='text'>
  traces of our crufty old Syslog.  Most of this work was purely mechanical,
  except for:
  
  1) Initializing the loggers.  For this, there's a new module
     Mailman/loginit.py (yes all modules from now on will use PEP 8
     names).  We can't call this 'logging.py' because that will
     interfere with importing the stdlib module of the same name (can
     you say Python 2.5 and absolute imports?).
     
     If you want to write log messages both to the log file and to
     stderr, pass True to loginit.initialize().  This will turn on
     propagation of log messages to the parent 'mailman' logger, which
     is set up to print to stderr.  This is how bin/qrunner works when
     not running as a subprocess of mailmanctl.
     
  2) The driver script.  I had to untwist the StampedLogger stuff and
     implement differently printing exceptions and such to log/error
     because standard logging objects don't have a write() method.  So
     we write to a cStringIO and then pass that to the logger.
     
  3) SMTPDirect.py because of the configurability of the log messages.
     This required changing SafeDict into a dict subclass (which is
     better than using UserDicts anyway -- yay Python 2.3!).  It's
     probably still possible to flummox things up if you change the
     name of the loggers in the SMTP_LOG_* variables in mm_cfg.py.
     However, the worst you can do is cause output to go to stderr and
     not go to a log file.
     
  Note too that all entry points into the Mailman system must call
  Mailman.loginit.initialize() or the log output will go to stderr
  (which may occasionally be what you want).  Currently all CGIs and
  qrunners should be working properly.
  
  I wish I could have tested all code paths that touch the logger, but
  that's infeasible.  I have tested this, but it's possible that there
  were some mistakes in the translation.
  
- Mailman.Bouncers.BounceAPI.Stop is a singleton, but not a class
  instance any more.
  
- True/False code cleanup, PEP 8 import restructuring, whitespace
  normalization, and copyright year updates, as appropriate.

</content>
</entry>
<entry>
<title>http://mail.python.org/pipermail/mailman-developers/2006-January/018548.html</title>
<updated>2006-01-19T01:06:23Z</updated>
<author>
<name>tkikuchi</name>
</author>
<published>2006-01-19T01:06:23Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=d3b5e3eaaed556a69f0b452adb35cc0c7f2ff372'/>
<id>urn:sha1:d3b5e3eaaed556a69f0b452adb35cc0c7f2ff372</id>
<content type='text'>
Before we startup qrunners, we redirect the stderr to mailman syslog.
We assume !AS_SUBPROC is running for debugging purpose and don't
log errors in mailman logs/error but keep printing to stderr.
</content>
</entry>
<entry>
<title>FSF office has moved. chdcking in for MAIN branch.</title>
<updated>2005-08-27T01:54:05Z</updated>
<author>
<name>tkikuchi</name>
</author>
<published>2005-08-27T01:54:05Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=2a6084d03b96f87af153b663cf3dd4776e7e37fb'/>
<id>urn:sha1:2a6084d03b96f87af153b663cf3dd4776e7e37fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Jon Parise's patch to improve the usage() output for the command line</title>
<updated>2002-10-21T22:36:58Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2002-10-21T22:36:58Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=17da8273eb61687e1eb7c1e068613036fc1f3f46'/>
<id>urn:sha1:17da8273eb61687e1eb7c1e068613036fc1f3f46</id>
<content type='text'>
and cron scripts.  When code/status == 0, there's no error (it's
likely --help output) so send that to stdout.  Otherwise, it's an
error and the output goes to stderr.
</content>
</entry>
<entry>
<title>In the LogStdErr() call, we don't need to pass in the tee argument,</title>
<updated>2002-10-21T21:35:01Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2002-10-21T21:35:01Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8a34d51beb0ab8876d35aeab2bef72d1636e1e6f'/>
<id>urn:sha1:8a34d51beb0ab8876d35aeab2bef72d1636e1e6f</id>
<content type='text'>
since the default is fine.
</content>
</entry>
<entry>
<title>make_qrunner(): We really need to log more information about the</title>
<updated>2002-04-08T06:23:24Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2002-04-08T06:23:24Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=88637ddf59d2f54e3708a66c65e93919ff44b651'/>
<id>urn:sha1:88637ddf59d2f54e3708a66c65e93919ff44b651</id>
<content type='text'>
import error.  This probably would have helped Brett Delmage debug his
problem easier.
</content>
</entry>
<entry>
<title>Update copyright years.</title>
<updated>2002-03-16T06:57:37Z</updated>
<author>
<name>bwarsaw</name>
</author>
<published>2002-03-16T06:57:37Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=01c676cad87625f667c3cc5b0c3fcbf19e15a518'/>
<id>urn:sha1:01c676cad87625f667c3cc5b0c3fcbf19e15a518</id>
<content type='text'>
</content>
</entry>
</feed>
