Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: update proposal some

...

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
  • 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