summaryrefslogtreecommitdiff
path: root/src/mailman/runners (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Checkpointing.Barry Warsaw2013-11-252-18/+35
|
* Joanna's branchBarry Warsaw2013-10-271-14/+17
|\
| * Changes for enabling/disabling archivers.Joanna Skrzeszewska2013-09-081-14/+17
| |
* | trunk mergeBarry Warsaw2013-09-011-0/+0
|\|
| * Add enough __init__.py files to make these docs directories discoverable.Barry Warsaw2013-08-261-0/+0
| |
* | Migrate bounceevent.list_name -> bounceevent.list_idBarry Warsaw2013-09-012-4/+4
|/ | | | | | | * Rename StormBaseDatabase._create() -> .initialize() * Refactor database initialization. * make_listid() helper. * Add a pivot() helper for schema migrations.
* * `bin/runner` command has been simplified and its command line optionsBarry Warsaw2013-06-174-23/+97
| | | | | | | | | | | | | | | | | | | | | | | | reduced. Now, only one `-r/--runner` option may be provided and the round-robin feature has been removed. * Fixed REST server crash on `reopen` command. Identification and test provided by Aurélien Bompard. (LP: #1184376) Also: * bin/runner now uses standard argparse instead of ScriptOptions. * The entire bin/runner machinery has bee reorganized and simplified. There * is no more Loop class. Signal setting is moved directly into the base Runner class and overrided in specific subclasses (e.g. RESTRunner which must cleanly shutdown its TCPServer). The runner exit status is now set directly on the Runner instance. * Fixed a few minor style issues. * In order to cleanly shutdown the RESTRunner's WSGI server, we must start a subthread which only watches for an Event and then calls the server's shutdown() method. It has to be this way because the WSGI server itself (due to interactions with SQLite), and the signal handlers (due to Python's signal handling semantics) must both run in the main thread. However, the shutdown() must be invoked from a subthread in order to prevent deadlock. * Refactor the RESTLayer to eliminate duplication of code.
* * Fix REST server crash on `mailman reopen` due to no interception ofBarry Warsaw2013-05-301-1/+1
| | | | signals. (LP: #1184376)
* * Creation of lists with upper case names should be coerced to lower case.Barry Warsaw2013-03-061-0/+27
| | | | (LP: #1117176)
* * Non-queue runners should not create ``var/queue`` subdirectories. Fixed byBarry Warsaw2013-01-203-0/+12
|\ | | | | | | Sandesh Kumar Agrawal. (LP: #1095422)
| * Test added to non_queue_runner bugSandesh Kumar Agrawal2013-01-173-3/+11
| |
| * LMTP runner will reject message with duplicate idsSandesh Kumar Agrawal2013-01-111-0/+5
| |
* | Whitespace.Barry Warsaw2013-01-201-1/+1
|/
* Bump copyright years.Barry Warsaw2013-01-0123-23/+23
|
* LP: #975692 phase 1Barry Warsaw2012-12-281-5/+1
| | | | | | | | | | | | | | | | | * Rework list style management. No more style priorities or matching.. Now, you name a style explicitly to apply and that's it. * create_list() now takes a `style` argument. * config file now names both a default style to use, and a set of paths to scan for IStyle instances. (This could be a model for other plugins.) * added IMailingList.style_name to record the last style applied, but this is going to be removed in subsequent revisions. Also: * Move find_components() and scan_module() from app/finder.py to utilities/modules.py * Cleaned up lifecycle.rst for better documentation. Some tests moved to test_lifecycle.py. * Remove some unnecessary test tearDown() code.
* ConfigurationBarry Warsaw2012-11-041-3/+0
| | | | | | | | | | | | | | | ------------- * `[passlib]path` configuration variable renamed to `[passlib]configuration`. * Postfix-specific configurations in the `[mta]` section are moved to a separate file, named by the `[mta]configuration` variable. * In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to `postmap_command`. Also: * More Python 2.7-isms, use assertMultiLineEqual() directly. * Added external_configuration() and load_external() to mailman.config.config * ConfigLayer does a blanket set of [postfix]postmap_command so subtests generally won't have to.
* A couple of minor code cleanups.Barry Warsaw2012-10-311-3/+2
|
* * Python 2.7 is not required. Python 2.6 is no longer officially supported.Barry Warsaw2012-10-314-16/+11
| | | | | The code base is now also `python2.7 -3` clean, although there are still some warnings in 3rd party dependencies. LP: #1073506
* * Fixed the RFC 1153 digest footer to be compliant. (LP: #887610)Barry Warsaw2012-09-052-9/+18
|\ | | | | | | Fixed by Mark Sapiro.
| * Pretty printing is not necessary when the output actually matches.Mark Sapiro2012-04-111-3/+2
| |
| * Fixed the RFC 1153 digest footer to be compliant.Mark Sapiro2012-04-112-8/+18
| |
* | trunk mergeBarry Warsaw2012-07-0610-55/+75
|\ \
| * | * `passlib`_ is now used for all password hashing instead of flufl.password.Barry Warsaw2012-07-021-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default hash is `sha512_crypt`. * Events renamed and moved: * `mailman.chains.accept.AcceptNotification` * `mailman.chains.base.ChainNotification` * `mailman.chains.discard.DiscardNotification` * `mailman.chains.hold.HoldNotification` * `mailman.chains.owner.OwnerNotification` * `mailman.chains.reject.RejectNotification` changed to (respectively): * `mailman.interfaces.chains.AcceptEvent` * `mailman.interfaces.chains.ChainEvent` * `mailman.interfaces.chains.DiscardEvent` * `mailman.interfaces.chains.HoldEvent` * `mailman.interfaces.chains.AcceptOwnerEvent` * `mailman.interfaces.chains.RejectEvent` * A `ConfigurationUpdatedEvent` is triggered when the system-wide global configuration stack is pushed or popped. * With the switch to `passlib`_, `[passwords]password_scheme` has been removed. Instead use `[passwords]path` to specify where to find the `passlib.cfg` file. See the comments in `schema.cfg` for details.
| * | General code cleanup.Barry Warsaw2012-04-254-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | - Add explicit dependency on zope.event in setup.py. - Use Python 3 compatible syntax for specifying that a class implements an interface, i.e. the @implementer class decorator. - print_function futures. - Whitespace normalization.
| * | - Modernize the module by using future imports. Some byte literals areBarry Warsaw2012-04-221-8/+19
| | | | | | | | | | | | required due to the SMTP protocol.
| * | - Print functionBarry Warsaw2012-04-221-8/+8
| | | | | | | | | | | | - transaction() context manager.
| * | Two more module modernizations and transaction context manager uses.Barry Warsaw2012-04-222-8/+9
| | |
| * | - Module modernization by adding the print_function() import.Barry Warsaw2012-04-221-11/+12
| | | | | | | | | | | | - Update many tests to use the transaction() context manager.
| * | Rename mailman.database.transaction.txn to ...transactional. Modernize theBarry Warsaw2012-04-201-2/+2
| |/ | | | | | | module, and use it in another convenient place.
* / - Rename the model attributes.Barry Warsaw2012-04-082-15/+13
|/ | | | - news_moderation -> newsgroup_moderation
* - Improve the NNTP doctest.Barry Warsaw2012-04-021-119/+17
| | | | | - Add a `cleanups` global to doctests. This can be used to register functions which will get called automatically at doctest tearDown time.
* The port of NNTPRunner to Mailman 3 is complete.Barry Warsaw2012-04-012-30/+188
| | | | | | * Configuration schema variable changes: [nntp]username -> [nntp]user [nntp]port (added)
* - More tests of mailman.runners.nntp.prepare_message(), this time of theBarry Warsaw2012-04-013-42/+87
| | | | | | | | | header removal and de-duplication algorithms. - Improve the robustness of the de-duplication code. - Add a very nice helper called `configuration` which can be used either as a decorator or context manager to temporarily set values in a configuration section. No more need to manage pushes/pops. More code needs to be converted to use this style.
* More tests, though still not 100% coverage.Barry Warsaw2012-03-312-20/+54
|
* * The `news` runner and queue has been renamed to the more accurate `nntp`.Barry Warsaw2012-03-313-22/+160
| | | | Beta testers can can safely remove `$var_dir/queue/news`.
* ArchitectureBarry Warsaw2012-03-264-56/+225
| | | | | | | | | | | | | | | | | | | ------------ * Internally, all datetimes are kept in the UTC timezone, however because of LP: #280708, they are stored in the database in naive format. * `received_time` is now added to the message metadata by the LMTP runner instead of by `Switchboard.enqueue()`. This latter no longer depends on `received_time` in the metadata. * The `ArchiveRunner` no longer acquires a lock before it calls the individual archiver implementations, since not all of them need a lock. If they do, the implementations must acquire said lock themselves. Configuration ------------- * New configuration variables `clobber_date` and `clobber_skew` supported in every `[archiver.<name>]` section. These are used to determine under what circumstances a message destined for a specific archiver should have its `Date:` header clobbered.
* Last minute emergency bandaid for bug LP: #963612Barry Warsaw2012-03-232-29/+44
|
* Test repair.Barry Warsaw2012-03-231-1/+1
|
* Verp all messages to the -owners. Add a test to prove that email to -ownersBarry Warsaw2012-03-231-0/+142
| | | | now works as expected!
* - Move some normal recipient tests to unittests.Barry Warsaw2012-03-231-1/+1
| | | | | | | | - Add unittests for owner recipients. There does eventually need to be some documentation about owner recipients. - Implement owner recipients handler. This includes moderators and owners (i.e. all the non-disabled the list administrators). - Changed the [mailman]site_owner setting in testing.cfg to noreply@example.com
* Rename the member recipients calculating handler to make way for the ownerBarry Warsaw2012-03-231-2/+2
| | | | recipients handler.
* Rename the src/mailman/pipeline directory to src/mailman/handlers since that'sBarry Warsaw2012-03-231-2/+1
| | | | how I think about them anyway.
* Extend the pipeline runner to handle messages to the -owner address.Barry Warsaw2012-03-232-1/+119
|
* Add an owner chain and pipeline to the schema, model, and interface. PlumbBarry Warsaw2012-03-222-1/+98
| | | | this through the incoming runner.
* Several fixes and cleanups, ostensibly to fix Python 2.6 support.Barry Warsaw2012-03-222-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | - email.iterators.body_line_iterator() cannot handle unicodes in Python 2.6, because it uses cStringIO.StringIO under the covers, and *that* can't handle unicode. This works fine in Python 2.7, so I override this for the tests only under 2.6 (the code itself isn't affected). - AddressError needs to str() its IAddress attribute explicitly in the __str__() method, otherwise under Python 2.6, you'll get unprintable reprs in the doctests. Again, this works correctly in 2.7, but EIBTI, so it can't hurt either way. - EmailError: a new exception, not related to AddressError. The reason for this it to conform to current nomenclature: "address" means an IAddress while "email" means a text email address. So InvalidEmailAddressError now derives from EmailError instead of AddressError because it gets passed a text email address, and because that is invalid, it never gets turned into an IAddress. The __str__() of this new base exception class does some tricky encoding to keep it compatible between Python 2.6 and 2.7. - UnverifiedAddressError derives from AddressError instead of the more generic MailmanError. - A few random code cleanups are included.
* Merge the Pipermail eradication branch. The scrubber is also removed.Barry Warsaw2012-03-175-48/+114
|\ | | | | | | | | | | | | | | | | | | | | | | * Configuration variable `[mailman]filtered_messages_are_preservable` controls whether messages which have their top-level `Content-Type` filtered out can be preserved in the `bad` queue by list owners. * Configuration section `[scrubber]` removed, as is the scrubber handler. This handler was essentially incompatible with Mailman 3 since it required coordination with Pipermail to store attachments on disk. * Schema additions: - mailinglist.filter_action
| * * Pipermail has been eradicated.Barry Warsaw2012-03-162-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | * Configuration variable `[mailman]filtered_messages_are_preservable` controls whether messages which have their top-level `Content-Type` filtered out can be preserved in the `bad` queue by list owners. * Configuration section `[scrubber]` removed, as is the scrubber handler. This handler was essentially incompatible with Mailman 3 since it required coordination with Pipermail to store attachments on disk. * Schema additions: - mailinglist.filter_action
| * Eradicate Pipermail. Everything but the scrubber test works. That will takeBarry Warsaw2012-03-153-35/+114
| | | | | | | | some new APIs I suspect.
* | Schema change. After discussion at Pycon, we decided to change "real_name" toBarry Warsaw2012-03-152-9/+8
| | | | | | | | | | | | | | | | | | | | | | "display_name" across the board. * `IMailingList.real_name` -> `IMailingList.display_name` * `IUser.real_name` -> `IUser.display_name` * `IAddress.real_name` -> `IAddress.display_name` * Schema changes: - real_name -> display_name (mailinglist, user, address)
* | Do not taunt Happy Python 2.6 Fun Ball.Barry Warsaw2012-03-141-3/+3
|/ | | | | Clean up Python 2.7-isms and deprecations that break the tests suite on Python 2.6.