<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/src/mailman/config, branch plugin</title>
<subtitle>The GNU Mailing List manager.
</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom?h=plugin</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom?h=plugin'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2017-08-07T17:00:49Z</updated>
<entry>
<title>Merge branch 'pluggable-workflows' into plugin</title>
<updated>2017-08-07T17:00:49Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-08-07T17:00:49Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=ee9da27283ffb7adc836f764f1442cd06e3fb2a5'/>
<id>urn:sha1:ee9da27283ffb7adc836f764f1442cd06e3fb2a5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Initialize the workflows.</title>
<updated>2017-08-07T16:18:00Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-07-04T20:06:07Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=26f31b20c3cad6217f38ce8ded63c73da66ff3f8'/>
<id>urn:sha1:26f31b20c3cad6217f38ce8ded63c73da66ff3f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Create mailman.workflows package. Move base Workflow there.</title>
<updated>2017-08-07T16:18:00Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-06-29T21:51:47Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8b09113eb40c39ada3dc902cb4e869c8f012c97d'/>
<id>urn:sha1:8b09113eb40c39ada3dc902cb4e869c8f012c97d</id>
<content type='text'>
 - Also introduce IWorkflow, ISubscriptionWorkflow,
   IUnsubscriptionWorkflow.
</content>
</entry>
<entry>
<title>Fix coverage, deprecate, but run non-plugin (post|pre)_hooks.</title>
<updated>2017-08-07T15:39:08Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-07-25T19:44:54Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8addebbf9802e911c06f6a27b7ffff1e0f1d2e57'/>
<id>urn:sha1:8addebbf9802e911c06f6a27b7ffff1e0f1d2e57</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add new logger which plugins can use.</title>
<updated>2017-08-07T15:39:08Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-06-27T14:42:33Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=7afec8975cb2c8fa1c6725176f52e100d396d1c4'/>
<id>urn:sha1:7afec8975cb2c8fa1c6725176f52e100d396d1c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make config.plugin_configs yield a dict with plugin names.</title>
<updated>2017-08-07T15:39:08Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-06-06T13:51:10Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=a2668307017e8b3a0c705e5cff49a8fa7dbeac7d'/>
<id>urn:sha1:a2668307017e8b3a0c705e5cff49a8fa7dbeac7d</id>
<content type='text'>
 - Allows to better loop over pluging configs and their names.
</content>
</entry>
<entry>
<title>Add optional external configuration to plugins.</title>
<updated>2017-08-07T15:39:08Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-06-05T23:05:08Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=260733a13a0ad891e1b10836399dd02af7335fe0'/>
<id>urn:sha1:260733a13a0ad891e1b10836399dd02af7335fe0</id>
<content type='text'>
 - Adds an optional 'conriguration' option similar to the one in
   [mta] which plugins can use to load their specific configs from.
</content>
</entry>
<entry>
<title>Add per-plugin hooks, add docs about plugins.</title>
<updated>2017-08-07T15:39:07Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-06-01T13:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=0d4f53b51892866b5cc85ace229b23f4b9bac896'/>
<id>urn:sha1:0d4f53b51892866b5cc85ace229b23f4b9bac896</id>
<content type='text'>
 - 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.
</content>
</entry>
<entry>
<title>Add pluggable components.</title>
<updated>2017-08-07T15:39:07Z</updated>
<author>
<name>J08nY</name>
</author>
<published>2017-05-31T00:09:09Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=38a86adcdb78c1944c26a5ab8deddff619b33bcf'/>
<id>urn:sha1:38a86adcdb78c1944c26a5ab8deddff619b33bcf</id>
<content type='text'>
 - 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.
</content>
</entry>
<entry>
<title>Convert to click for CLI options</title>
<updated>2017-07-22T03:02:05Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-07-22T03:02:05Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f00b94f18e1d82d1488cbcee6053f03423bc2f49'/>
<id>urn:sha1:f00b94f18e1d82d1488cbcee6053f03423bc2f49</id>
<content type='text'>
</content>
</entry>
</feed>
