Commit 43bc3019 authored by J08nY's avatar J08nY

Update core_changes with pluggable workflows and current state.

parent 9810eb27
......@@ -18,7 +18,7 @@
- `configuration:` optional configuration path, which the plugin can use to read/write it's configuration file.
2. Let plugins add Pipelines the same way they can add Handlers, Rules etc...
- [MR !287](https://gitlab.com/mailman/mailman/merge_requests/287)
- [<s>MR !287</s> merged](https://gitlab.com/mailman/mailman/merge_requests/287)
- This means refactoring `BasePipeline`, `OwnerPipeline`, `PostingPipeline`, `VirginPipeline` from `mailman.core.pipelines.py` into a package `mailman.pipelines`
- Use `find_components`, or rather it's sibling function created in 1.
......@@ -27,10 +27,10 @@
4. Allow multiple callables in `pre_hook` and `post_hook` run in order specified. Also allow callables for when Mailman exits.
- [MR !288](https://gitlab.com/mailman/mailman/merge_requests/288)
- Already a similar [MR #264](https://gitlab.com/mailman/mailman/merge_requests/264).
- Already a similar [MR !264](https://gitlab.com/mailman/mailman/merge_requests/264).
5. Allow Mailman core to send events to Postorius, HyperKitty and any app that subscribes through a new REST api call with a callback.
- Also add an `IEvent` interface, as currently events don't implement any interface at all.
- Implemented in the [mailman-rest-events](https://gitlab.com/J08nY/mailman-rest-events) plugin.
6. Drop `ext_dir`.
- [MR !288](https://gitlab.com/mailman/mailman/merge_requests/288)
......@@ -45,12 +45,19 @@
9. Add `description` attribute to `IStyle` and the default styles, so that mailing list styles have some human readable string to show.
- [MR !289](https://gitlab.com/mailman/mailman/merge_requests/289)
9. ? Make all commands be able to require confirmation and make this a configurable option.
- How?
- Abstract out confirmation of commands (is actually almost there with Pendables)
- Add another field to `MailingList` model, for a list of commands that require confirmation for that list?
10. ?? Add a new attribute to several core models (MailingList, User, Address, ...) in which plugins can store metadata about said objects. This attribute woul be a PickleType, really a dict with, plugin-names as keys. Each plugin could access its and only its metadata attached to a given object.
10. Refactor Subscription and Unsubscription workflow to allow a plugin to add steps to it's state machine.
- Introduces `IWorkflow` interface for the workflow state machine.
- Allows the `WorkflowStateManager` to store more workflow steps than the current one and adds a migration for this change.
- Refactors the monolithic SubscriptionWorkflow and UnsubscriptionWorkflow classes to reusable mixins, allowing to deduplicate their code and create custom workflows.
- Dynamically loads all `IWorkflow` classes from Mailman core and plugins.
- Migrates the `subscription_policy` and `unsubscription_policy` attributes from the `SubscriptionPolicy` enum, to store the name of the respective SubscriptionWorkflow class, dynamically loaded.
- [MR !299](https://gitlab.com/mailman/mailman/merge_requests/299)
- On top of [MR !300](https://gitlab.com/mailman/mailman/merge_requests/300) which instantiates components only in the `add_components` utility function and not at lower levels, since Workflow components need to be stored as classes and instantiated on use.
11. Add SMTPS and STARTTLS support.
- Adds SMTP over SSL/TLS and STARTTLS SMTP extension support to the `BaseDelivery` class via specialized `Connection` classes.
- Creates a new `ISMTPConnection` interface, which `SMTPConnection`,`SMTPSConnection` and `STARTTLSConnection` implement.
- [MR !286](https://gitlab.com/mailman/mailman/merge_requests/286)
## Proposed changes to MailmanClient
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment