summaryrefslogtreecommitdiff
path: root/mailman/queue
Commit message (Collapse)AuthorAgeFilesLines
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-2522-3089/+0
| | | | correctly regardless of how it's used.
* More cleanup.Barry Warsaw2009-01-201-2/+3
|
* Several important cleanups.Barry Warsaw2009-01-163-47/+56
| | | | | | | | | | * Turn on absolute_import and unicode_literals everywhere, and deal with the aftermath. * Use 'except X as Y' everywhere. * Make the module prologues much more consistent. * Use '{}'.format() consistently, except for logger interface. * Because of the problems with calling ** args with unicode keywords, hide calls to Template.substitute() behind an API.
* The conversion from Defaults.py to lazr.config is complete.Barry Warsaw2009-01-066-39/+42
| | | | | | | | | | | lazr.config 1.1 now has everything we need, so we don't need the special develop hack. make_instance is no longer necessary. Refactor the style stuff into their own directory. Finally! Move the delivery module into the mailman.mta package.
* Defaults module is mostly eradicated, converted to lazr.config. The testBarry Warsaw2009-01-051-1/+1
| | | | suite does not yet work though.
* Picking some (py)lint.Barry Warsaw2009-01-049-27/+11
|
* Mark's backport of file preservation in the queue runners. Test and cleanupBarry Warsaw2009-01-042-14/+76
|\ | | | | | | by Barry.
| * Port of 2.x changes to limit number of times a .bak can be recovered.Mark Sapiro2009-01-031-9/+43
| |
* | Remove the mailman.interface magic. Use the more specific interface imports.Barry Warsaw2009-01-043-4/+4
|/
* - For command line scripts, -C names the configuration file to use. ForBarry Warsaw2009-01-035-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | convenient testing, if -C is not given, then the environment variable MAILMAN_CONFIG_FILE is consulted. - Mailing lists no longer have a .web_page_url attribute; this is taken from the mailing list's domain's base_url attribute. - Incoming MTA selection is now taken from the config file instead of plugins. An MTA for Postfix+LMTP is added. bin/genaliases works again. - The LMTP server now properly calculates the message's original size. - If a message has no Message-ID, the stock archivers will return None for the permalink now instead of raising an assertion. - IArchiver no longer has an is_enabled property; this is taken from the configuration file now. - In bin/create_list, fixed a unicode problem when the language is defined in the configuration file. - Fixed bin/dumbdb, bin/list_lists, bin/remove_list, bin/unshunt, and bin/mailmanctl - config.archivers is a property now, not a dictionary that needs initialization from plugins. - IMailTransportAgent interface has been added.
* Bump copyright yearsBarry Warsaw2009-01-0113-13/+13
|
* All tests are now passing!Barry Warsaw2009-01-011-2/+3
|
* More test repairs. Fix a typo in the core mailman.cfg file.Barry Warsaw2009-01-013-13/+6
|
* More test repairs.Barry Warsaw2008-12-312-16/+18
| | | | | | | * Move the lmtp configurations to lazr.config * Fixes to master.py * In qrunner.py, don't override initialize() * Make sure subprocesses get configured correctly during tests
* Many test fixes, mostly by temporarily changing config -> Defaults.Barry Warsaw2008-12-292-9/+8
| | | | | | | Rewrote start_qrunners() for new lazr.config based configuration. ReopenableFileHandler.reopen() given a default filename argument for reopening to a different file. Useful in tests.
* More test repairs.Barry Warsaw2008-12-282-18/+17
|
* More test reairs.Barry Warsaw2008-12-272-13/+14
|
* Down to only 27 test failures.Barry Warsaw2008-12-263-22/+23
| | | | | | | | | More temporary config -> Defaults changes. More fixes to smtp_direct.py. Other queue runner fixes, including allowing make_testable_runner() to take an optional 'name' which overrides the default class-calculated name.
* Added a buildout hack for zope.testing so that we can add our own command lineBarry Warsaw2008-12-251-2/+10
| | | | | | | | | | options to bin/test. More test repair, even though it's cheating. Use a bunch of variables from Defaults.py even though these will have to be moved to the schema.cfg. Update logging initialization to consult the propagate flag from the command line. Also skip mailman.root since this is not a valid logger.
* Use my lazr.config megamerge branch for now, even though it's still underBarry Warsaw2008-12-2314-66/+84
| | | | | | | | | | | | | | development. Completely rework the way switchboards and queue runners are initialized, i.e. driven from the configuration file instead of hard coded. The various queue runner directories are no longer available thorugh the config object directly. Get them from config.switchboards. Provide minimal mailman.cfg and testing.cfg configuration files. Neuter styles for now until they can be consolidated with lazr.config.
* Convert more configuration variables to lazr.config.Barry Warsaw2008-12-227-7/+0
| | | | | | | | Add .push() and .pop() methods to the Configuration object. Put the 'config' object in the globals of doctests. Add some test layers for setting up the configuration and the SMTP server.
* Lots of changes to make bin/withlist work under a buildout environment.Barry Warsaw2008-12-201-1/+1
| | | | | | | | | | mailman.configuration -> mailman.config.config mailman.initialize -> mailma.core.initialize mailman.loginit -> mailman.core.logging (yay future absolute imports!) Convert all configurations to lazr.config, though some legacy still remains, and I haven't been able to remove Defaults.py yet. Added as_boolean() and as_log_level() helpers for explicit type conversion. Added a schema.cfg.
* The future is now.Barry Warsaw2008-10-172-4/+0
|
* Target Python 2.6. Make the test suite pass without deprecations.Barry Warsaw2008-10-161-3/+3
|
* More clean up.Barry Warsaw2008-09-296-122/+99
| | | | | | - Remove Utils.reap() - Flesh out interfaces. - PEP 8 names.
* Move core Mailman modules to the new mailman.core package. FunctionalityBarry Warsaw2008-09-292-2/+2
| | | | | that's part of the 'application', i.e. non-essential to the core functionality is left in mailman.app. This division of labor is still formative.
* mailman.Errors -> mailman.core.errorsBarry Warsaw2008-09-261-2/+2
|
* Upgrade to GPLv3.Barry Warsaw2008-09-2413-155/+156
|
* Merge in command refactoring branch.Barry Warsaw2008-08-123-8/+75
|\ | | | | | | | | | | Begin to flesh out the tests for the join command. Refactor out notifications from the add_member() function.
| * Checkpointing new command infrastructure.Barry Warsaw2008-08-122-2/+72
| | | | | | | | | | | | - Add join command - Add echo command - Add end command
* | Use IMailingList.posting_address (a.k.a. List-Post header) in theBarry Warsaw2008-07-061-18/+2
| | | | | | | | | | | | | | Mail-Archive.com hash calculation, not the post-id sequence number. test_documentation now starts and stops the smtp listener, simplifing many tests.
* | mailman.tests should contain only tests.Barry Warsaw2008-07-035-8/+8
| | | | | | | | mailman.testing should contain any support for running the tests.
* | Rework the archiver interface. Remove get_primary_archiver() since now thereBarry Warsaw2008-06-151-2/+1
|/ | | | | | | | | can be any number of them. get_list_url() -> list_url() get_message_url() -> permalink() Only add Archived-At header if mlist.archive is set.
* Handle commands in the body of a plain text email message.Barry Warsaw2008-04-262-1/+49
|
* Update and reorganize the command queue runner so that it works with theBarry Warsaw2008-04-262-149/+189
|\ | | | | | | | | plugin architecture. Update the Echo command to the new architecture. Add a doctest of course.
| * temporary start on command processor rewriteBarry Warsaw2008-04-221-120/+109
|/
* Fix the archiver doctest.Barry Warsaw2008-03-312-4/+6
|
* Fix the incoming doctest.Barry Warsaw2008-03-311-7/+12
|
* Make all the SMTP_LOG_* templates, PEP 292 compatible. Make them consistentlyBarry Warsaw2008-03-301-12/+26
| | | | | | | | | | | put the Message-ID first in the log message. Dict the MsgSafeDict class as unnecessary now. Fix the DEFAULT_MSG_FOOTER. Back out an earlier unnecessary change for virgin queue pipelines. Add a bunch of debugging to the mail Runner loops.
* More fixes to get end-to-end delivery basically working.Barry Warsaw2008-03-304-37/+39
| | | | | | | | | | | | | | | - Add a VirginPipeline for the virgin queue, which is mostly the same as the BuiltInPipeline, so refactor the commonality into a BasePipeline. - Simplify and update bin/dumpdb. - Rename inject() to inject_text() and add inject_message(). Both interfaces will be useful. - When enqueuing and not using _plaintext, use the highest pickle protocol supported. - Fix the archive runner's calculation of whether to clobber the message's Date: header. - Fix the outgoing queue's deliver_after calculation. - Update the virgin queue runner. It doesn't need to inherit from IncomingRunner any more; it can just execute the 'virgin' pipeline.
* More fixes to get the basic end-to-end delivery mechanisms working.Barry Warsaw2008-03-303-4/+49
| | | | | | | | | - Lots of Pipermail work just to get it to play nice with the new apis. - Fix ARCHIVE_SCRUBBER - Lots of changes to mailman.app.archiving, especially to provide an adapter from the new MailingList api to the one expected by Pipermail (e.g. archive_dir()). - Add a test of the basic pipermail archiver.
* Added a test of the OutgoingRunner, and subsequent changes to make it pass,Barry Warsaw2008-03-273-2/+98
| | | | | | | | | | | | | | including: - MailingList.full_path -> IMailingList.data_path and implement this as a property on the MailingList object. - Fix the 'decorate' handler to work with the new member/user data model, instead of the old MemberAdaptor interface. - Fix a few problems with the smtp-direct handler, though this needs more work and tests. - Add some debug logging to both the test smtplistener and the SMTPServer proxy. Fix the proxy's consumption of messages from the thread queue. - Fix the smtplistener's calculation of the X-Peer header.
* Lots of little patches trying to get a simple end-to-end test working. ThereBarry Warsaw2008-03-251-1/+3
| | | | | | | | | | | | should be tests for these. :/ - Disable MTA hack in remove_list() - Convert bin/inject to SingleMailingListOptions - Remove an unnecessary import - Fix qrunner restarts in bin/master - Add IMailinglist.pipeline so that this value persists - Move Runner.SLEEPTIME into the __init__() so that it isn't hurt by order of configuration initialization.
* Add some debug logging.Barry Warsaw2008-03-151-0/+3
|
* Move mailman.database.txnsupport to mailman.database.transaction and updateBarry Warsaw2008-03-132-33/+109
| | | | | | | | the txn() decorator. It no longer requires a _withtxn() method since it knows how to commit and abort the current transaction using the global database. Flesh out the lmtp.txt doctest with documentation for both bogus and valid subaddresses.
* Sprinkle a few more transaction API calls around to make sure the databaseBarry Warsaw2008-03-121-1/+4
| | | | | | | | | | | | doesn't remain in a locked state, hosing other processes. - Move a commit to the end of StockDatabase._create() - Add an abort to the Exception clause if there's an error while dequeuing - Add an abort to the Exception clause if there's an error while finishing - Add a commit after _doperiodic() and _shortcircuit() is called. - Add a commit to the end of cleaning_teardown() in test_documentation.py This now makes all the tests pass even when all of them are run.
* Add a working (though not yet complete) test for the LMTP runner.Barry Warsaw2008-03-122-32/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the TestableMaster class so that doctests don't need to do all the threading and event fiddling themselves. Hide all that in the test class. In bin/master, add the -r/--runner option to allow overriding the set of queue runners to start from the command line. This is much more convenient than fiddling the config file (which is still supported), and it allows us to start a subset of the runners from the TestableMaster class. Refactor the calculation of queue runner shortcut names into Configuration.add_qrunner(). This way, it's easy to share between bin/qrunner and bin/master. Use pkg_resource in bin/testall to create the test configuration file. We're still using mailman.__file__ as the target to os.walk() though, so this conversion isn't complete. In bin/testall, update to the new convention of putting .options and .arguments on the parser instance, so we only need to pass back one thing. In test_documentation.py, use config.verbosity instead of config.options.verbosity. Wind that through to bin/testall while we're at it. Update loginit.py so that defaults for all the logging options can be found in a [*] section. This is better than [DEFAULT] because the latter requires %-interpolation and still requires each sublogger to be specified explicitly. Now we just set values in the [*] section and have them apply to all loggers. Allow for passing bin/testall's -v and -e options to any subprocesses that get created, e.g. via the TestableMaster. Now testall will write a logging.cfg file with a [*] entry as appropriate. It's DEFAULT_DATABASE_URL now, not SQLALCHEMY_ENGINE_URL. StockDatabase._reset() requires that the store be rolled back before it's reset. Otherwise if there are outstanding transactions, the reset will fail with an OperationalError. Update the LMTPRunner. Have it return a 501 error if the message has defects. Most defective messages are spam. Make the LMTPRunner startable and stoppable. Just because it's asyncore based doesn't mean that's not possible <wink>. Enable the LMTP runner in tests.
* Fix a typo in a roster name.Barry Warsaw2008-03-062-157/+0
| | | | | | | | | | Remove an outdated comment. Add an SMTPServer wrapper class to the test helpers module. This will be used in tests of the outgoing queue, which actually needs to talk to an SMTP server. Adapt the smtpd-based server to being run under thread control, and remove some now unnecessary code.
* Bite the bullet: rename the Mailman package to mailman.Barry Warsaw2008-02-2719-0/+2758