summaryrefslogtreecommitdiff
path: root/mailman/queue (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-08-07Save workflows name in Pendable PEND_TYPE.J08nY4-24/+45
- Saves workflow name in as Pendables type, so that it is correctly restored even if the MailingLists sub/unsub policy changes while it was pending.
2017-08-07Move workflow tests to mailman.workflows.J08nY4-0/+0
2017-08-07Remove [Un]SubscriptionConfirmationNeeded events, send msg in workflows.J08nY4-79/+23
2017-08-07Refactor the duplicate workflow mixins.J08nY2-158/+88
2017-08-07Migrate the [un]subscription_policy attribute.J08nY29-719/+620
- This is quite a huge commit, since it changes the type of the MailingList.subscription_policy and unsubscription_policy attributes to the new names of pluggable workflows, in all occurences. - Also adds a migration to migrate the attributes to the new types. - Adds tests for the migration.
2017-08-07Initialize the workflows.J08nY3-0/+37
2017-08-07Split unsubscription workflow into mixins.J08nY2-2/+309
2017-08-07Save the complete workflow stack, not only last step.J08nY7-34/+215
2017-08-07Split subscription workflow into mixins.J08nY2-1/+422
2017-08-07Make workflows implement their interfaces.J08nY4-19/+37
2017-08-07Move workflows from app.subscriptions to workflows.builtin.J08nY3-473/+539
2017-08-07Create mailman.workflows package. Move base Workflow there.J08nY8-45/+98
- Also introduce IWorkflow, ISubscriptionWorkflow, IUnsubscriptionWorkflow.
2017-08-07Instantiate components only in add_components, not at lower levels.J08nY2-15/+16
- The scan_module and find_components functions are also useful when they don't instantiate the components they load, and instantiation is left to add_components.
2017-08-07Add description attribute to IStyle, expose it in REST.J08nY8-10/+41
2017-08-07Fix coverage, deprecate, but run non-plugin (post|pre)_hooks.pluggable-componentsJ08nY9-25/+94
2017-08-07Ignore plugin started subprocesses in master main loop.J08nY1-0/+7
2017-08-07Add new logger which plugins can use.J08nY3-0/+6
2017-08-07Don't fail when plugins pre_hook or post_hook fails.J08nY2-13/+36
- Catches all exceptions raised when running a plugins (pre|post) _hooks. If its pre_hook raises an exception, the plugin is disabled and removed, so its post_hook will not be run and its components will not be loaded. If its post_hook raises an exception we just continue and hope for the best.
2017-08-07Make config.plugin_configs yield a dict with plugin names.J08nY4-11/+13
- Allows to better loop over pluging configs and their names.
2017-08-07Add optional external configuration to plugins.J08nY4-1/+12
- Adds an optional 'conriguration' option similar to the one in [mta] which plugins can use to load their specific configs from.
2017-08-07Add REST-ability to plugins.J08nY7-2/+322
- Adds the rest_object method to the IPlugin interface. This method is called by the REST api to route requests to the plugin's REST api. All attributes are proxied, so the object becomes a true REST object in the ObjectRouter hierarchy. For example see the RESTExample and ExamplePlugin classes in mailman.testing.plugin. The plugin might return None from this method, in which case all calls to it's REST api route will return 404 NotFound. - Adds new routes to the REST api. For version >= 3.1: - /3.1/plugins Returns a dictionary with plugin names as keys, and their configs as values. - /3.1/plugins/<plugin_name> Proxies everything to plugin's rest_object, if plugin with such name exists and provides a non-null rest_object, else NotFound.
2017-08-07Pretty print dicts in dump_json.J08nY1-0/+10
- Makes dump_json documentation helper recursively print dicts with indentation. So for example {'name': {'a':1, 'b':2}, 'other': test} becomes: name: a: 1 b: 2 other: test
2017-08-07Add per-plugin hooks, add docs about plugins.J08nY11-87/+250
- Removes pre_hook, post_hook and ext_dir. With the latter being unused. Warns on startup if the hooks are present in config. - Adds IPlugin interface with pre_hook and post_hook methods. - Adds 'class' config parameter to plugins, which can be set to a class implementing the IPlugin interface, it will be initialized once on Mailman's startup, then before the DB setup the pre_hook will be run, after DB and other components the post_hook will be run. Plugin instances are stored in the config.plugins dict, with keys being their configuration section names.
2017-08-07Add pluggable components.J08nY13-42/+132
- Adds the notion of a 'plugin'. - A plugin has a package path and a flag specifying whether it's enabled or not. - Adds a find_pluggable_components function similar to the find_components one. This one dynamically searches not only the mailman package but all of plugins. - e.g. find_pluggable_components('rules', IRule) finds all IRule components in mailman.rules but also in example_plugin.rules for plugin names example_plugin. - Uses the find_pluggable_components function in place of find_components when searching for Rules, Handlers, Chains, EmailCommands, and Styles.
2017-08-04Rename metadata key for clarityBarry Warsaw27-115/+355
2017-07-27Set a timeout on the lock acquisitionBarry Warsaw1-1/+2
2017-07-26Ensure all holds/rejects have a reason.Mark Sapiro33-45/+619
2017-07-22Convert to click for CLI optionsBarry Warsaw81-4101/+4217
2017-07-13Python 3.4 no more!Barry Warsaw4-7/+11
2017-06-30Added a rule to discard messages with no valid sender address.Mark Sapiro8-8/+117
2017-06-30Fixed an AttributeError in subject prefixing.Mark Sapiro3-2/+25
2017-06-30Ignore syntactically invalid sender addresses.Mark Sapiro3-2/+20
2017-06-24IListManager.get() now accepts both List-IDs and FQDN list names.Barry Warsaw6-43/+97
2017-06-17Minor typo.Barry Warsaw1-1/+1
2017-06-17Move pipelines to their own package, instantiate them dynamically.pipelines-dynamical-instantiationJ08nY5-79/+144
2017-06-17Provide a better way to avoid instantiating some componentsBarry Warsaw9-70/+214
2017-06-15Did some reformatting and added tests.Mark Sapiro2-15/+62
2017-06-13Catch FileNotFoundError and PermissionError on html_to_plain_text_command.Mark Sapiro3-1/+35
2017-06-09Bump the code name.Barry Warsaw1-1/+1
2017-06-04Name and version bump for 3.2.Barry Warsaw2-1/+5
2017-05-253.1.0 final!Barry Warsaw2-4/+4
2017-05-253.1rc2Barry Warsaw1-2/+2
2017-05-24Ensure the held message subject is a string.Mark Sapiro1-1/+2
2017-05-24Refactor Header object test to create the message without cheating.Mark Sapiro1-10/+5
2017-05-24Fixup ref spacing.Stephen J. Turnbull1-1/+1