On 12/14/2009 10:23 PM, Martin Gregorie wrote:
May I suggest that handling whitelist or blacklist rules and any
associated plugins by packaging them as separately installable modules
may be of benefit to SA maintainers. The idea is to reduce the SA dev
workload by handing off responsibility for maintaining and bugfixing
such modules to external developers. These may, as at present, be the
person who independently develops the module or the people who are
responsible for the resources it queries. Here's a little more detail:
- exclude the modules from the default SA configuration and from SA
updates.
- create a library of downloadable modules, one for each external
resource. Each module consists of:
- a .cf file and a .pm file, if required, that should be installed by
putting both in /etc/mail/spamassassin
- version info
- installation and configuration instructions
- attributions: author, the author's affiliations, etc
- a disclaimer saying that SA distributes the module as is and without
liability or responsibility for its correctness
- anybody, including whitelist owners, can supply a module and will be
solely responsible for maintaining it.
- modules MUST be accompanied by regression test data in the form of
messages that demonstrate hits, misses and corner tests.
- SA devs should review the documentation and verify module operation
using the supplied test data to show that the module does what it says
on the tin and doesn't crash SA or interfere with other rules/plugins
before accepting a module for publication.
- the modules should be included in regression tests for new SA
versions. If a module fails a regression test it is excluded from the
library and its author notified. This way unmaintained modules will
eventually disappear with minimal work from SA devs apart from
removing the model from the distribution library and adding it to a
list of no longer supported modules.
There may be problems with this approach that I'm not aware of, but I'm
floating it because AFAIK nobody else has suggested it and it may defang
some of the discussions around whitelists, etc. by making the use of
such rules and modules independent of the SA project.
your modules are all there already and much of it is already managed as
you suggest: they're called rules.. you can even switch them on or off,
or add your own "modules" /plugins/modules.
SA provides an Open Source FRAMEWORK which caters to many millions of
systems - if it doesn't fit your needs, use as you wish and/or fork out.
Many do that with the ruleset - many don't
SA devs are volunteers. What's stopping you from actively contributing
to the development?
Get familiar with the Wiki, checkout SVN, look at the masscheck code,
bath in the Wiki.
Following a comprehensive set of standards, anybody can contribute
patches/fixes/etc.
h2h
Axb