After the release of 3.3.0 we need to think about how rule updates as distributed via sa-update will work. The goal here is to make it quick and easy to safely add new or adjust existing rules so sa-update keeps spamassassin effective over time. This extends the useful life-span of a spamassassin release. We can then propose a 3.3.x maintenance release only after we feel enough worthwhile changes make it worthwhile to do a release, or for security releases.

jm explained a few weeks ago that currently 3.2.x sa-update rule updates are not auto-updated because we lack a separate ruleqa system. Our ruleqa system tests only the svn trunk in the nightly masscheck. It would be too much for our nightly masscheck volunteers to run the nightly masscheck twice, so doing both is not an option.

In talking with jm a few weeks ago, we seem to be in agreement that we should change this procedure for 3.3.x. Nightly masscheck will continue to check using the svn trunk, but rule updates will be pushed to 3.3.x users.

Rule Version Conditionals
=========================
jm says he added a conditional system that might allow us to mark certain rules as compatible with a certain version of spamassassin. This will allow us to add new types of rules to trunk without breaking 3.3.x rule updates. Is there any documentation for these rule conditionals?

With rule version conditionals we might consider that svn trunk targets the next 3.3.x maintenance release instead of working on a branch. We have limited developer hours so we might be better off focusing exclusively on trunk. This worked reasonably well during the past year with pre-3.3.0 trunk. Any thoughts about this part?

Explicit Promotion
==================
The ruleqa system periodically has problems where it gets stuck having processed only the bb-* corpora but not others. This seems to cause the combined results to swing wildly and rules are promoted and demoted for seemingly no reason.

The ruleqa system is incapable of auto-promoting rare hitting but ultra-accurate rules like VANITY.

For reasons like this, we should force active certain rules when we're certain they are safe. Adding the rule to rulesrc/10_force_active.cf seems to be sufficient.

I propose that we have simple, low bar of requirements to govern explicit promotion.

* By judgement call the rule is obviously safe, or proven by ruleqa.
* Any two commiters agree.
* No bug required, but state who agreed in the commit.

Scoring
=======
Currently auto-promoted rules all have the score of 1. Scores need to be defined in rules/50_scores.cf to have any other score.

I propose that we have simple, low bar of requirements to control assignment of any score greater than 1.

* One committer per point must agree, rounded up. (1.4 points require two committers to agree. 2.3 points require three.)
* No bug required, but state who agreed in the commit.

Comments?

Warren Togami
[email protected]

Reply via email to