THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Release goals for 3.2.
High Level-Goals
- lower resource usage: higher throughput and lower memory usage
- higher accuracy: lower FPs and lower FNs (rules, rules, rules... this also includes some notion of speeding up the mass-check process)
High Level Anti-Goals
- features: extra options, non-critical changes not related to the above goals, etc. (except perhaps in plugins)
- option bloat (except perhaps in plugins)
Basic reorganization of rules
- SVN external for rules (using "if" for version-specific rules)
- separate 50_scores.cf into input and output files
- traversing configuration directories
Memory Usage
We should probably evolve some understanding of what we want to convert to plugins. Here's the list:
- finish transition away from AWL and finish replacing with "History" plugin including backwards compatibility
- plugin-ize Bayes
- move user preference configuration code to plugins
- plugin-ize whitelisting
Performance/Speed
- Predictive autolearn? do check before bayes_check, if we are likely to autolearn, go r/w instead of r/o. Can implement on first bayes_check call.
- Don't bother caching full/decoded/etc at start in PMS. how much caching do we do now? multiple times in PMS? may not be an issue due to references.
- short circuiting ideas:
- set certain rules as SC if hit
- USER_IN_WHITELIST, USER_IN_BLACKLIST (not DEF)
- BSP
- HABEAS
- allow SC on ham score (ie: < #)
- allow SC on spam score (ie: > #)
- should autolearn skip SC msgs? should we always do autolearn in the appropriate direction?
- AWL should be skipped during SC
- SC rules should have a negative priority so they run first
- do *not* do score check per rule, do it either per priority or rule type (header, body, etc.)
- SC will require is_spam SC as score + required_hits will be at odds
- add SC header macro (get_tag)
- SC for S/O 1.000 rules? how about S/O near 1? BAYES_99, etc.
- Some form of order/priority rearrangement:
- Blacklist: short
- Whitelist: user/admin wants it
- BSP/Habeas: reputable, non-forgable
- Other SC Rules: as early as possible
- Other Local Rules: lightweight
- set certain rules as SC if hit
Accuracy Ideas
- network test, do DNS lookups on the HELO (A, NS, and SURBL)
- network test, do DNS lookups on the EnvelopeFrom (SURBL)
Uncategorized
- use personal branches for major breakage changes (read: crazy stuff)