<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/src/mailman/commands, branch pluggable-components</title>
<subtitle>The GNU Mailing List manager.
</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom?h=pluggable-components</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom?h=pluggable-components'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2017-08-07T15:39:08Z</updated>
<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>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>Rename metadata key for clarity</title>
<updated>2017-08-04T01:13:04Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-08-04T01:13:04Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=9cdcffbc1189a19bc2963cf3d5c86a3d4f1f24a6'/>
<id>urn:sha1:9cdcffbc1189a19bc2963cf3d5c86a3d4f1f24a6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Set a timeout on the lock acquisition</title>
<updated>2017-07-27T23:10:42Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-07-27T23:10:42Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=d1cbc8af09045f8d0edbb0ba34d2fd8457393e11'/>
<id>urn:sha1:d1cbc8af09045f8d0edbb0ba34d2fd8457393e11</id>
<content type='text'>
</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>
<entry>
<title>Fix confirmation of unsubscription requests.  (Closes: #294)</title>
<updated>2017-01-16T05:24:41Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-16T05:24:41Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=abab1cb4afd1a0c41110c2e4bcd11cf74ef05775'/>
<id>urn:sha1:abab1cb4afd1a0c41110c2e4bcd11cf74ef05775</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Bump up stale lock expiration date.</title>
<updated>2017-01-09T14:07:29Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-09T14:07:29Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=beebdf29317a8df4fcfabd0ee4f01cb7eb6247d3'/>
<id>urn:sha1:beebdf29317a8df4fcfabd0ee4f01cb7eb6247d3</id>
<content type='text'>
Hopefully this will help fix intermittent failures on the Gitlab CI runners.
2 minutes appears to be too short since the MySQL tests can take longer than
that to get to the lock claim attempt.
</content>
</entry>
<entry>
<title>Bump copyright years.</title>
<updated>2017-01-04T15:30:17Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-04T15:30:17Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8180990a2ed053f6e4880f93a75acd9845631793'/>
<id>urn:sha1:8180990a2ed053f6e4880f93a75acd9845631793</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement caching suffix list with in-tree fallback.</title>
<updated>2017-01-01T22:28:37Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-01T22:25:29Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=e3d6c34b7d02b925cb8c59fa9e1df24741fc46ee'/>
<id>urn:sha1:e3d6c34b7d02b925cb8c59fa9e1df24741fc46ee</id>
<content type='text'>
Also:
* Change doctest cleanups to be an ExitStack.
* Added [dmarc]cache_lifetime setting.
* Cleanup pass through dmarc-mitigation.rst.
* Be sure the cached org domain file is cleaned up when the world is reset.
</content>
</entry>
</feed>
