summaryrefslogtreecommitdiff
path: root/src/mailman/queue/docs
Commit message (Collapse)AuthorAgeFilesLines
* Rename 'queue' directory to 'runners' since not all subprocesses run a queue.Barry Warsaw2011-05-2911-2443/+0
|
* * bounce_unrecognized_goes_to_list_owner -> forward_unrecognized_bounces_to Barry Warsaw2011-05-251-1/+1
| | | | | | | | | | | | * Add an additional option for unrecognized bounce disposition: send it to the site administrators. * Move maybe_forward() from src/mailman/queue/bounce.py to src/mailman/app/bounces.py, refactor and add tests. * Add a LogFileMark class to help with tests that want to check the output to a log file. * OwnerNotification gets a better signature. Instead of tomoderators, the last argument is a roster to send the notification to. If roster is None, then the notification goes to the site administrators.
* Refactor .subscribe() from IAddress to IMailingList.Barry Warsaw2011-04-161-1/+1
|
* Split member and nonmember moderation.Barry Warsaw2011-01-021-19/+18
| | | | | | | | | | | | | | | | * member-moderation happens at the same place in the built-in chain that the previously named moderation rule happens. nonmember-moderation happens after all the other normal moderation rules. * Handle unsubscribed nonmember posts. Other changes: * Message.senders now filters out Nones and empty strings. * Various test cleanups and simplifications. * More `address` -> `email` fixes. * Give Link class a useful repr. * Fix a potential UnboundLocalError. * Various other small changes.
* Because it was just to damn confusing, rename IAddress.address toBarry Warsaw2011-01-011-1/+1
| | | | | | IAddress.email and IAddress.original_address to IAddress.original_email. From now on we'll use "address" to talk about the IAddress object and "email" to talk about the textual email address.
* * Simplify the membership.txt doctest.Barry Warsaw2010-12-311-11/+69
| | | | | | | * Add test to show that the incoming runner adds all sender addresses to the global user manager. * New doctest helper: dump_list() * Other random cleanups.
* Fairly significant change to the way member and nonmember moderation occurs.Barry Warsaw2010-12-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Now, nonmembers are represented by a separate roster of IMembers, the latter which has grown a `moderation_action` enum. When that action is `defer`, then the normal processing rules apply. Anything else and the `moderation` chain is jumped to for a shortcut to moderation (which may include immediate acceptance). TODO: handle unregistered nonmembers. Details: * The member-moderation rule is renamed to just moderation, and handles both members and nonmembers (though the latter must currently be registered). * The moderation rule is moved up in the builtin chain. It is now checked after `approved`, `emergency`, and `loop`, but before the normal moderation checks. This means that nonmember postings will be (by default) held much earlier. * IMember.is_moderated is removed. * IMember.moderation_action is added. * IMailingList.default_member_moderation is removed. * IMailingList.default_member_action and IMailingList.default_nonmember_action are added. * MemberRole.nonmember is added.
* This is part 1 of the merge of Jimmy Bergman's branchBarry Warsaw2010-12-281-70/+67
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lp:~jimmy-sigint/mailman/restapi_additional_attributes Ostensibly, this adds support for a few additional attributes through the REST API: * default_member_moderation * generic_nonmember_action * member_moderation_action * reply_goes_to_list * send_welcome_msg * welcome_msg However, I had never previously fleshed out the conversion of default_member_moderation and member_moderation_action into the MM3 way of things. That is now done. Non-member moderation still needs to be done. Specific changes: * mailman.chains.base.Chain no longer self registers * The built-in chain gets a new link for checking 'member-moderation'. If this rule matches, it jumps to the 'member-moderation' chain, which checks member_moderation_action and returns a link that jumps to the appropriate terminal chain. * Chain initialization is done by the same auto-detection as rules, handlers, etc. The one tricky thing is that abstract base classes such as Chain and TerminalChainBase can't be instantiated. For now, there's an ugly special case to skip these. * default_member_moderation is now exposed in the IMailingList interface. * Member.is_moderated gets set in the constructor from the mailing list's default_member_moderation. * The 'moderation' rule is renamed 'member-moderation'. TODO: * Work out non-member moderation * Add member_moderation_action to IMailingList * Double check tests for reply_goes_to_list, send_welcome_msg, and welcome_msg
* | Insulate the test environment from the running environment. Sadly, the testBarry Warsaw2010-12-221-2/+2
|/ | | | | | ports are still hard coded. Also, 'bin/mailman info' dumps the REST root url and credentials.
* More documentation cleanups.Barry Warsaw2010-09-148-15/+59
|
* More documentation updatesBarry Warsaw2010-09-102-15/+24
|
* More documentation updatesBarry Warsaw2010-09-101-22/+23
|
* No longer touch the Sender or Errors-To headers. We can no longer justifyBarry Warsaw2010-06-291-3/+1
| | | | | setting these based on RFC 5322, and modern MTAs no longer need us to do so for proper bounce processing.
* List-Post header should be retained in MIME digest messages (LP: 526143)Barry Warsaw2010-03-281-4/+6
|
* More refactoring:Barry Warsaw2010-02-251-1/+0
| | | | | | | * Rework the [webservice] section to be more useful to restish. * Get rid of the resource_type_link * Add and test some helpers. * Move the root resources to a different module.
* * Add REST interface for joining a mailing list.Barry Warsaw2009-12-281-0/+6
| | | | | | * add_member() now returns the newly created IMember. * Reorganized several exceptions and exposed them to the REST API. * Added NoSuchListError.
* IRegistrar is now a utility; it doesn't need to be adapted from an IDomain.Barry Warsaw2009-12-121-2/+1
| | | | | | | This is because registration confirmation messages must come from the mailing list that the subscription request came from. Remove IDomain.confirm_address() since this lives only on the IMailingList now.
* Add a 'name' attribute to the Switchboards. This is so 'whichq' can be setBarry Warsaw2009-12-101-3/+5
| | | | for bin/mailman unshunt.
* * Make IDomainManager a utility, since the config object is global.Barry Warsaw2009-12-081-2/+3
| | | | | | | | * Give IMailingList a .domain attribute which looks up the IDomain for its .host_name. This cleans up a lot of code. * Add a test for the 'confirm' email command. * Suppress blank lines in email command responses. * Make the IDomainCollection a utility.
* Fix some test failures:Barry Warsaw2009-12-081-2/+2
| | | | | * when postfix is not installed * because the Subject values are instances, not strings
* Fix a test.Barry Warsaw2009-12-061-2/+11
|
* * Fix a test based on updated output.Barry Warsaw2009-12-062-0/+305
| | | | | | | | | * Add a stub for the -confirm email command * Add stubs for -leave and -unsubscribe * Remove the crufty (and broken) 'tojoin' 'toleave' and 'toconfirm' metadata keys for synchronizing between lmtp and the command runner. Replace this by putting the subaddress recognized by lmtp into the metadata and having the command runner look at the subaddress.
* Revert the last changes. Calculate size where needed.Barry Warsaw2009-12-051-1/+0
|
* The delivery agent requires that the message object have a .original_sizeBarry Warsaw2009-12-041-4/+8
| | | | attribute. Add this for UserNotifications.
* Fix a test and make Sphinx happy.Barry Warsaw2009-11-281-40/+40
|
* Refactor VERP calculation so that it's now in the outgoing queue instead ofBarry Warsaw2009-11-271-22/+338
| | | | | | the to-outgoing handler. Putting it in the latter means that more delivery vectors can take advantages of the same mechanisms. to-outgoing is now really simple (but is it simple enough?).
* Cleanup.Barry Warsaw2009-11-044-4/+0
|
* Add decorations.Barry Warsaw2009-11-013-10/+10
| | | | s/recips/recipients/
* Convert bin/inject to bin/mailman injectBarry Warsaw2009-09-191-1/+0
| | | | | | Expose the database store on .store instead of ._store A few other cleanups.
* Remove the user_manager attribute from config.db and expose it as anBarry Warsaw2009-08-261-1/+5
| | | | IUserManager utility.
* TweaksBarry Warsaw2009-08-241-3/+4
|
* Test updates and repair.xoBarry Warsaw2009-08-212-4/+6
|
* Expose 'transaction' as an alias for config.db in the doctest globs. ThisBarry Warsaw2009-07-213-3/+4
| | | | | | | | means commit() is now transaction.commit() in doctests. Add tests of extended domain creation, which exposes the need to unlock the database (via transaction.abort()) so that the foreground test process doesn't lock the background REST server process.
* Our first writable REST API! You can now create new domains through theBarry Warsaw2009-07-201-3/+4
| | | | | | | | | webserver. Fix the https/http urls. Add the adapter for HTTPCharsets so POSTs work properly. Nice little cargo cult from lazr.restful.
* De-u-literal-ify our doctests.Barry Warsaw2009-07-188-47/+55
|
* More tests for the REST server, this time, for the queue runner.Barry Warsaw2009-05-101-0/+23
| | | | | | | | | | | Add logging to the RESTRunner. Also, use pkg_resources.resource_stream() instead of .resource_string() where appropriate. Add a bunch of XXX comments for things I need to figure out about the Zope-ish parts of the lazr.restful implementation. Change __getitem__() api to _lookup().
* Move the Action and NewsModeration enums into their own interface files.Barry Warsaw2009-03-251-2/+2
|
* Get rid of one_last_digest. Move this into a separate OneLastDigest table.Barry Warsaw2009-02-221-37/+158
| | | | | | | | | | | | | Make it explicit to get the last digest (I could imagine an user selecting not to). Actually add tests for this. Start to get rid of 'from storm.locals import *' in favor of more specific imports. Start to use Store.of() instead of config.db.store where we can. Rework (delivery)MemberRosters to use the Member attributes. This ensures that the layered lookup happens at the expense of query optimization. Sundry and various cleanups.
* Major cleanup of the automatic response stuff.Barry Warsaw2009-02-192-3/+0
| | | | | | | | | inject_message() grows a keyword argument dictionary which gets merged into the message metadata. Move NODELTA into the autorespond interface as ALWAYS_REPLY. Convert the integer response values into the ResponseAction enum.
* Clean up and reorganization languages and the language manager.Barry Warsaw2009-02-101-2/+0
|
* Move mailman.Message to mailman.email.Message. Rename Message.get_sender() toBarry Warsaw2009-02-091-1/+0
| | | | | | | | | Message.sender (property) and Message.get_senders() to Message.senders (another property). The semantics of .sender is slightly different too; it no longer consults config.mailman.use_envelope_sender. Add absolute_import and unicode_literals to Utils.py, and clean up a few imports.
* Repair some test failures and fix a doc typo as reported by Patrick Koetter.Barry Warsaw2009-02-042-22/+12
|
* Massive digester rework.Barry Warsaw2009-02-041-0/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves actual digest creation and sending into a new queue runner. That way, digest creation does not block the main incoming processor. Lots of code clean up and reorganization too, and many fixes. digest_last_sent_at: Make this a DateTime digest_size_threshold: Make this a Float digest_volume_frequency: Make this an Enum DigestFrequency: new enum Fix up IMailingList interface to reflect reality. In Runner base class, allow for msg.get_sender() to return a False value. If this happens (as it can with the empty marker messages used to signal the digester that there's work to do), just use the list's preferred language. Give the retry.py and incoming.py queue runner modules some proper epilogues. The EmptyingRunner (for testing) logs itself as the runner its wrapping. The digest file name now ends in .mmdf since that's the format we're using. Add 'create_list' to doctest globals. Add a Mailbox class to add support for the context manager protocol.
* Push the source directory into a 'src' subdirectory so that zc.buildout worksBarry Warsaw2009-01-259-0/+1071
correctly regardless of how it's used.