...
No Format |
---|
25_body_tests_es.cf -> ROOT/rules/trunk/langcore/es/ 25_body_tests_pl.cf -> ROOT/rules/trunk/langcore/pl/ 30_text_de.cf -> ROOT/rules/trunk/langcore/de/ 30_text_fr.cf -> ROOT/rules/trunk/langcore/fr/ 30_text_it.cf -> ROOT/rules/trunk/langcore/it/ 30_text_nl.cf -> ROOT/rules/trunk/langcore/nl/ 30_text_pl.cf -> ROOT/rules/trunk/langcore/pl/ 30_text_pt_br.cf -> ROOT/rules/trunk/langcore/pt_br/ 20_advance_fee.cf -> ROOT/rules/trunk/core/ 20_drugs.cf -> ROOT/rules/trunk/core/ 20_p**n.cf -> ROOT/rules/trunk/core/ [wikicensorship!] 10_misc.cf -> ROOT/rules/trunk/core/ 20_anti_ratware.cf -> ROOT/rules/trunk/core/ 20_body_tests.cf -> ROOT/rules/trunk/core/ 20_compensate.cf -> ROOT/rules/trunk/core/ 20_fake_helo_tests.cf -> ROOT/rules/trunk/core/ 20_head_tests.cf -> ROOT/rules/trunk/core/ 20_meta_tests.cf -> ROOT/rules/trunk/core/ 20_phrases.cf -> ROOT/rules/trunk/core/ 20_ratware.cf -> ROOT/rules/trunk/core/ 20_uri_tests.cf -> ROOT/rules/trunk/core/ 25_replace.cf (odd case, but will change a lot) -> ROOT/rules/trunk/core/ [code dependent, but these will change a lot] 50_scores.cf -> ROOT/rules/trunk/core/ 60_whitelist_spf.cf -> ROOT/rules/trunk/core/ |
...
JustinMason: ok, that looks good – except for one thing. We still have the problem that ROOT/rules/trunk/core/ is going to be a mix of legacy files and auto-promoted rules. What do we do about that problem?
DanielQuinlan: the auto-promoted .cf file should be 100% machine generated and overwritten each night (or whatever the period is). Once a rule is promoted into core, it'll disappear from the auto-promoted file because (a) overlap test dictates so or (b) the non-core file that contained the file will no longer contain it (or we could use a comment, rename the rule, etc. to indicate that it is no longer a candidate for auto-promotion if the author wants to keep it around).
Algorithm for auto-promotion
...
- iterate through all files in the dir
- if a config line refers to a rule name (e.g. "header", "describe", "tflags"), then:
- apply the criteria from 'Rule Promotion'. if the rule passes:
- output the line
- else:
- ignore the line and produce no output
- apply the criteria from 'Rule Promotion'. if the rule passes:
- if the config line doesn't refer to a rule name, output the line.
- send that output to a file in ROOT/rules/trunk/core/ , named according to the sandbox directory's name. e.g. lines from all files matching ROOT/rules/trunk/sandbox/jmason/*.cf would be output to ROOT/rules/trunk/core/25_jmason.cf
DanielQuinlan: we'll need to work on the naming