+1 -- working nicely for me ;)  thanks for doing this.  one thing though --
the ASF voting process requires 72 hours for a vote to complete:

'Votes should generally be permitted to run for at least 72 hours to provide
an opportunity for all concerned persons to participate regardless of their
geographic locations.'

http://www.apache.org/foundation/voting.html .  so we have to wait until
Sunday before it can go live (assuming there's no -1s anyway in the
meantime).

ps: minor typo in the release announcement:

' - Mail::SpamAssasin::Client ping may erronesously result in broken pipe;'

that should be 'erroneously'.  I've fixed the svn version.

--j.




On Thu, Dec 3, 2009 at 20:58, Warren Togami <[email protected]> wrote:

> According to build/README we can release this pre-release with "lazy
> consensus" if nobody objects.  Please test this tarball.  If nobody finds
> anything horrible by Friday morning we will bless it as beta1.  I've
> personally been running this in production since last night, but it took me
> until this long to figure out how to sign the tarballs.
>
> (I also think we should stop re-cutting pre-releases using the same name
> but different tarball contents like the past, if we have to re-cut the beta.
>  The next tarball will be beta2 if we find horrible problems with beta1.)
>
> Warren Togami
> [email protected]
>
> =========== CUT HERE ==============
>
> Subject: ANNOUNCE: Apache SpamAssassin 3.3.0-beta1 available
>
> [DRAFT DRAFT DRAFT - NOT YET RELEASED - DRAFT DRAFT DRAFT]
>
> Apache SpamAssassin 3.3.0-beta1 is now available for testing.
>
> Downloads are available from:
>  
> http://people.apache.org/~wtogami/devel/<http://people.apache.org/%7Ewtogami/devel/>
>
> md5sum of archive files:
>
> 9b39e4e4fad09cfe9eff974f3d5a01ea  Mail-SpamAssassin-3.3.0-beta1.tar.bz2
> 530fb1bd28977271f30b348bc2b68db1  Mail-SpamAssassin-3.3.0-beta1.tar.gz
> 637f6495b28e9ab9580206ee344a2074  Mail-SpamAssassin-3.3.0-beta1.zip
> cbd092c4e0e71b531f7aca81d4eb2781
>  Mail-SpamAssassin-rules-3.3.0-beta1.r886683.tgz
>
> sha1sum of archive files:
>
> b6aa2f21610e1de87bf21b629b98df9bddfa0988
>  Mail-SpamAssassin-3.3.0-beta1.tar.bz2
> 6750417097ce289a5b295c75bfc20a877bea87e6
>  Mail-SpamAssassin-3.3.0-beta1.tar.gz
> 95a54095f6e201a1b582f3715c81c9485aab5325  Mail-SpamAssassin-3.3.0-beta1.zip
> 3e2b23828dd3a7575ced80b2d6571995aebd7299
>  Mail-SpamAssassin-rules-3.3.0-beta1.r886683.tgz
>
> Note that the *-rules-*.tgz files are only necessary if you cannot, or do
> not
> wish to, run "sa-update" after install to download the latest fresh rules.
>
> The release files also have a .asc accompanying them.  The file serves
> as an external GPG signature for the given release file.  The signing
> key is available via the subkeys.pgp.net key server, as well as
> http://www.apache.org/dist/spamassassin/KEYS
>
> The key information is:
>
> pub   4096R/F7D39814 2009-12-02
>      Key fingerprint = D809 9BC7 9E17 D7E4 9BC2  1E31 FDE5 2F40 F7D3 9814
> uid                  SpamAssassin Project Management Committee <
> [email protected]>
> uid                  SpamAssassin Signing Key (Code Signing Key,
> replacement for 1024D/265FA05B) <[email protected]>
> sub   4096R/7B3265A5 2009-12-02
>
> See the INSTALL and UPGRADE files in the distribution for important
> installation notes.
>
>
> Summary of major changes since 3.2.5
> ------------------------------------
>
> COMPATIBILITY WITH 3.2.5
>
> - rules are no longer distributed with the package, but installed by
>  sa-update - either automatically fetched from the network (preferably),
>  or from a tar archive, which is available for downloading separately
>
> - CPAN module requirements:
>  - minimum required version of ExtUtils::MakeMaker is 6.17
>  - modules now required: Time::HiRes, NetAddr::IP, Archive::Tar
>  - minimal version of Mail::DKIM is 0.31 (preferred: 0.36_5 or later)
>  - no longer used: Mail::DomainKeys, Mail::SPF::Query
>  - if module Digest::SHA is not available, a module Digest::SHA1
>    will be used, but at least one of them must be installed;
>    a DKIM plugin requires Digest::SHA (the older Digest::SHA1 does not
>    support sha256 hashes), so in practice the Digest::SHA is required
>
> - if keeping AWL database in SQL, the field awl.ip must be extended to
>  40 characters. The change is necessary to allow AWL to keep track of IPv6
>  addresses which may appear in a mail header even on non-IPv6 -enabled
> host.
>  While at it, consider also adding a field 'signedby' to the SQL table
> 'awl'
>  (and adding 'auto_whitelist_distinguish_signed 1' to local.cf);
>  See sql/README.awl for details. The change need not be undone even if
>  downgrading back to 3.2.* for some reason;
>
> - fixing a protocol implementation error regarding a PING command required
>  bumping up the SPAMC protocol version to 1.5.  Spamd retains compatibility
>  with older spamc clients. Combining new spamc clients with pre-3.3
> versions
>  of a spamd daemon is not supported (but happens to work, except for the
>  PING and SKIP commands).
>
> - it may be worth mentioning that a rule DKIM_VERIFIED has been renamed
>  to DKIM_VALID, to match its semantics;
>
> - support for versions of perl 5.6.* is being gradually revoked
>  (may still work, but no promises and no support)
>
> - preferred versions of perl are 5.8.8, 5.8.9, and 5.10.1 or later
>
>
> MAIN NEW FEATURES
>
> - IPv6 support was substantially improved (see below);
>
> - many improvements to the DKIM plugin (understands author domain
> signatures,
>  supports multiple signatures, ADSP support with overrides) - (see below);
>
> - added 'if can(Class::method)' conditional statement, allowing
> configuration
>  settings to be conditionalised on plugin capabilities without requiring
>  new version releases to do so;
>
> - added a configuration option 'time_limit', defaulting to 300 seconds
>  or whatever the caller (like spamd) provides; attempting to gracefully
>  terminate the checking when a time limit is reached, reporting the score
>  and test hits that were collected so far, along with an added hit on
>  a rule TIME_LIMIT_EXCEEDED;
>
> - more expensive code sections are now instrumented with timing
> measurements;
>  timing report is logged as a debug message by the end of processing,
>  and made available to a caller and to 'add_header' directives through
>  a TIMING tag;
>
> - added a configuration option skip_uribl_checks to the URIDNSBL plugin,
>  cross-document it with skip_rbl_checks;
>
> - preserve order of declared 'add_header' header fields;
>
> - configurable network mask length for the AWL plugin (see below);
>
> - added support for DCC reputations (see below);
>
> - improved error handling and robustness (see below);
>
> - added timestamps when logging on stderr;
>
> - allowed debug areas to be excluded from debugging,
>  e.g.: -D all,norules,noconfig,nodcc
>
>
> BUILDING AND PACKAGING
>
> - rules are no longer distributed with the package, but installed by
>  sa-update
>
> - Makefile.PL has been simplified and a bug fixed in a DESTDIR support
>  by increasing the minimum required version of ExtUtils::MakeMaker to 6.17
>
> - tools check_whitelist and check_spamd are now included in the
> distribution,
>  now called 'sa-awl' and 'sa-check_spamd'
>
>
> WORKAROUNDS TO PERL BUGS AND LIMITATIONS
>
> - modified the Check.pm plugin to produce smaller chunks of source code
>  from rules (60 kB) to avoid Perl compiler crashing on exceeding stack size
>
> - localized global variables $1, $2, etc at several places, avoiding taint
>  issue from propagating
>
> - avoided Perl I/O bug by replacing line-by-line reading with read() where
>  suitable, or played down the EBADF status in other places and only report
>  it as a dbg instead of a die - while also providing a little speedup
>  (10 .. 25 %) on reading a message
>
> - provided a new sub Message::split_into_array_of_short_lines to split
>  a text into array of paragraph chunks of sizes between 1 kB and 2 kB,
>  giving less opportunity to runaway regular expressions in rules;
>  fixes bugs: 5717, 5644, 5795, 5486, 5801, 5041
>
>
> MEMORY FOOTPRINT
>
> - as a side-effect of compiling rules in smaller chunks (to avoid compiler
>  crashes), virtual memory footprint of SpamAssassin is reduced;
>
> - saved some memory by not importing the Pod::Usage unless it is needed;
>
> - saved 350k+ of memory in sa-compile by replacing DynaLoader with
> XSLoader;
>
> - removed unneeded index from MySQL bayes_token table;
>
>
> IPv6 SUPPORT
>
> - added IPv6 support for trusted_networks, internal_networks, msa_networks,
>  whitelist_from_rcvd, and other stuff that uses NetSet and the Received
>  header field parser, using NetAddr::IP;
>
> - allowed usage of a remote dccifd host through an INET or INET6 socket;
>
> - added IPv6 support to AWL plugin and its utility modules; a network
>  mask length is now configurable and defaults to /48, which controls
>  what data is stored in an AWL database;
>
> - sql/README.awl and sql/awl_*.sql: increased suggested awl.ip field width
>  to 40 characters to be able to hold IPv6 addresses;
>
> - IP_PRIVATE now includes ipv6 variants of private address space,
>  as well as the ipv6-mapped ipv4 addresses.
>
> - NetSet now understands that ::ffff:192.168.1.2 and 192.168.1.2 are
>  the same address;
>
> - IPv6 addresses are now recognised in Received header fields;
>
> - when reading Received header fields, the "IPv6:" prefix is stripped from
>  IPv6 addresses, and "::ffff:" is removed from IPv6-mapped IPv4 addresses
>  (so strings can match them as simply IPv4 addresses);
>
> - ::1/128 is always included in the trusted_networks/internal_networks set
>  similar to 127.0.0.0/8;
>
> - some of the IPv6 functionality in SpamAssassin requires that a perl
> module
>  IO::Socket::INET6 is available (like accessing a DNS resolver over inet6,
>  talking to a dccifd host over inet6 socket, SPAMC protocol);
>
>
> SPAMC
>
> - Mail::SpamAssasin::Client ping may erronesously result in broken pipe;
>  bump spamc protocol version to 1.5, updated spamd, spamc and Client.pm;
>
> - added -n / --connect-timeout switch to spamc, allowing separate
>  connection timeout from communication timeout;
>
> - added --filter-retries and --filter-retry-sleep
>
> - spamc would not time out connections to a hung spamd, fixed
>
> - spamc client library leaked the zlib compression buffer if compression
>  is used
>
> - spamc long option '--dest' was broken
>
>
> SPAMD
>
> - when spamd is started with the daemonize option do not exit the parent
>  until a child signals that it has logged the pid, to allow a wrapper
>  script to simply continue immediately after starting spamd;
>
> - additional tempfile cleanup in kill_handler;
>
> - added SPAMD_LOCALHOST option to "make test" to allow specifying
>  non-127.0.0.1 IP address for use in FreeBSD jail
>
>
> API
>
> - adding one optional argument to Mail::SpamAssassin::parse allows caller
>  to pass additional out-of-band information to SpamAssassin (such as a
>  deadline time, DKIM verification results, information about a SMTP
> session,
>  or dynamic rule hits); this information is made available to plugins and
>  the rest of the code through a 'suppl_attrib' hash;
>
> - Plugin::Check - pick up 'rule_hits' from caller via the new mechanism
>  and call got_hit() on them;
>
> - simplified adding dynamic score hits and dynamic rules by plugins
>  (such as AWL, CRM114, FuzzyOcr, Check) by letting got_hit() accept
>  options tflags and description, and letting it store a supplied
>  dynamic score for proper reporting;
>
> - let the timing breakdown information be accessible to a caller through
>  the existing get_tag mechanism (tag TIMING);
>
> - let the generated header fields ('add_header' configuration options)
>  be accessible to a caller through the existing get_tag mechanism
>  (tags ADDEDHEADER, ADDEDHEADERHAM, ADDEDHEADERSPAM);
>
>
> RULES
>
> - rules are no longer distributed with the package;
>
> - new scores have been generated by a GA algorithm and then manually
> tweaked,
>  based on cleaned datasets supplied by a dozen of volunteers;
>
> - dropped redundant rules or rules causing too many false positives;
>
> - added or updated many rules (incomplete list in no particular order:
>  vbounce, lotsa_money, muchmoney, image spam, fill_this_form, FreeMail,
>  European Parliament, HTML attachments, uri_obfu*, urinsrhsbl, urinsrhssub,
>  urifullnsrhsbl, URI_OBFU_X9_WS, rDNS=localhost, INVALID_DATE_TZ_ABSURD,
>  KHOP_SC, RCVD_IN_PSBL, FRT_VALIUM*, BOUNCE_MESSAGE, VBOUNCE_MESSAGE,
>  __BOUNCE_UNDELIVERABLE, HELO_STATIC_HOST, FILL_THIS_FORM_FRAUD_PHISH,
>  CHALLENGE_RESPONSE, DKIM_VALID, DKIM_VALID_AU, DKIM_ADSP_*,
>  NML_ADSP_CUSTOM_{LOW,MED,HIGH}, __VIA_ML, MIME_BASE64_TEXT, LOTTO_URI,
>  FORGED_MUA_THEBAT_BOUN, FORGED_MUA_THEBAT_CS, UNRESOLVED_TEMPLATE,
>  __THEBAT_MUA, __ANY_OUTLOOK_MUA, RP_MATCHES_RCVD, one-word X-Mailer,
>  advance_fee update, tweak SPAN rules, tweak skype and misquoted-HTML
> rules,
>  added some new HTML obfuscation and Google feedproxy URI rules,
>  tweak reevolved advance fee second-order metarules,
>  added a test rule for postmaster+abuse missing, FROM_MISSPACED,
>  fix FROM_CONTAINS_TAB, added Facebook redirector pattern,
>  avoided ISO-2022-JP FPs on TVD_SPACE_RATIO, GAPPY_SUBJECT, PLING_QUERY
>  and FM_FRM_RN_L_BRACK rules, FP fix for one-word mails on TVD_SPACE_RATIO,
>  RATWARE_BOUNDARY plus variant, supersede all previous RATWARE_OUTLOOK
>  stuff, added exclusion for __ISO_2022_JP_DELIM to OBFUSCATING_COMMENT,
>  FP in obfuscated URI rule, fixed breakage in tbird image rule, fixed
>  SUBJECT_FUZZY_MEDS FP on unobfuscated "meds", added misspaced From header
>  field rule, numeric+cctld URI rule, ...
>
> - added PSBL blacklist - http://psbl.surriel.com/
>
> - added support for http://www.spamhaus.org/css/
>
> - added rule for plain text attachments with octet-stream MIME type;
>
> - avoided false positives on ISO-2022-JP messages in several rules;
>
> - removed massmailers from uridnsbl_skip_domain in 25_uribl.cf;
>
> - updated various default whitelists, uridnsbl_skip_domain, adsp_override,
> ...
>
>
> PLUGINS
>
> - new plugins: FreeMail, PhishTag, Reuse
>
> - now enabled by default: DKIM
>
> - now disabled by default: AWL
>
> - retired plugin: DomainKeys
>
>
> AWL PLUGIN
>
> - plugin AWL is now disabled by default;
>
> - added new configuration options auto_whitelist_ipv4_mask_len and
>  auto_whitelist_ipv6_mask_len to allow more control on what part of
>  an IP address is stored into an AWL database;
>
> - README.awl: increased a suggested awl.ip field width to 40 characters
>  to support IPv6 addresses;
>
> - AutoWhitelist.pm: allowed storing a canonicalized IPv6 address, cropped
>  to a configurable network mask (previously causing SQL server errors:
>  'value too long')
>
> - let AWL with SQL keep separate records for DKIM-signed and unsigned mail
>  (when auto_whitelist_distinguish_signed configuration option is true,
>  and a field awl.signedby exists);
>
> - avoided a race condition in SQLBasedAddrList.pm when multiple processes
>  try to insert-or-update an awl SQL record: trying INSERT first, and if
>  that fails go for UPDATE;
>
> - gracefully handle NaN from corrupted database or a broken emulator or
>  virtualizer;
>
>
> DCC PLUGIN
>
> - added support for DCC reputations, added setting dcc_rep_percent,
>  new test check_dcc_reputation_range(), new tag DCCREP
>  (DCC servers supply reputation data only to licensed clients);
>
> - allowed usage of a remote dccifd host through an INET or INET6 socket;
>
>
> DKIM PLUGIN
>
> - the plugin is now enabled by default;
>
> - absolute minimal version of Mail::DKIM is 0.31;
>  support for ADSP requires Mail::DKIM 0.34;
>  a DNS test (and rule) for NXDOMAIN is operational since Mail::DKIM 0.36_5
>
> - a perl module Digest::SHA is required if the DKIM plugin is enabled
>  (if a perl module Digest::SHA is available, the module Digest::SHA1
>  becomes optional as far as SpamAssassin is concerned (but is still
>  needed by Razor agents));
>
> - added support for multiple signatures (useful for whitelisting);
>
> - plugin now distinguishes author domain signatures from third party
>  signatures (useful for whitelisting);
>
> - provides a tag DKIMIDENTITY (in addition to DKIMDOMAIN);
>
> - DKIM now supports Author Domain Signing Practices - ADSP (RFC 5617);
>
> - use the Mail::DKIM::AuthorDomainPolicy instead of Mail::DKIM::DkimPolicy,
>  when available (since Mail::DKIM 0.34);
>
> - implements an 'adsp_override' configuration directive and adds
>  an eval:check_dkim_adsp check, which is used by new DKIM_ADSP_* rules;
>
> - rules contain an initial set of 'adsp_override' directives, listing
>  some of the more popular target domains for phishing (applicable only to
>  domains which sign all their direct mail with a DKIM or DK signature);
>
> - this plugin can now re-use Mail::DKIM verification results if made
>  available by a caller, which saves resources and makes it possible
>  for SpamAssassin to work on a truncated large mail without breaking
>  DKIM signatures;
>
> - check_dkim_signed and check_dkim_adsp eval rules can now take an optional
>  list of domain names, which limits their action to listed domains only.
>  It facilitates building DKIM-based rules for specific domains, without
>  having to resort to meta rules;
>
> - draft-ietf-dkim-ssp-10/RFC-5617 made Author Domain Signature based on
> 'd':
>  updated ADSP code accordingly; changed whitelisting code to be based on
>  SDID ('d') instead of AUID ('i');
>
> - Plugin/DKIM.pm: terminology changes in comments and logging according
>  to RFC 5617 and draft-ietf-dkim-rfc4871-errata-07;
>
>
> BUG FIXES
>
> - fixed Rule2XSBody segfaults;
>
> - no longer treat user data as perl booleans (a string "0" is a false);
>
> - avoid data from the wild be interpreted as perl regular expressions;
>
> - ArchiveIterator: prevent _scan_directory from passing directories
>  to _scan_file (on NFS it would fail with EISDIR on read(2);
>
> - fixed vpopmail support;
>
> - fixed incorrect mode bits when creating lock files for AWL;
>
> - fixed some cases where :addr headers were parsed incorrectly;
>
> - fixed leakage of 'whitelist_from_rcvd' entries between spamd users;
>
> - fixing run_and_catch, which failed to catch a non-timed run;
>
> - 127/8 isn't an illegal IP;
>
> - reworked the M::S::Timeout module to deal with nested timers as one would
>  expect: an inner timer shouldn't be able to extend an outer timer's limit;
>  account for time elapsed in the submitted subroutine when restarting an
>  outer timer; reset() should have accounted for time already spent;
>
> - the 'exists:' evaluator in HEADER rules now works as documented
>  and tests for existence of a header field, instead of testing for
>  a header field body being nonempty; internally, the pms->get can
>  also now distinguish between empty and nonexistent header fields;
>
> - applied fixes to header fields parsing in several places: header field
>  names are case-insensitive, whitespace is not required after a colon,
>  obsolete rfc822 syntax allowed whitespace before a colon;
>  VBounce: match "Received:" only at the beginning of a line;
>
> - fixed bug 6237: 2.0.0.0/8 is now an allocated address range,
>  fixed RCVD_ILLEGAL_IP with IP 2.0.0.0/8 (and 223.0.0.0/8);
>
> - fixed bug 6205 comment 5 in URIDetail.pm;
>
> - 'pyzor_options' in Plugin/Pyzor.pm was not untainted;
>
> - URIDetail plugin was not taint safe, fixed;
>
> - fixed parsing of multi-line Received header fields for
>  BOUNCE_MESSAGE/VBOUNCE_MESSAGE et al;
>
> - Bug 6206, Bug 2536: spamd: untaint directory as obtained from a password
>  file or from vpopmail utilities, avoid implicit untainting; report error
>  if user preferences file exists but cannot be accessed;
>
> - avoid using raw data from DNS as a regexp in Plugin/ASN.pm;
>
> - ensured the dbg() and info() calls always return the same value (true)
>  regardless of log level;
>
> - suppress logging of $& when its value is not available (i.e. when
>  no regexp has been evaluated during rule evaluation);
>
> - Exporter never really worked in SA, was not enclosed in BEGIN {};
>
> - masses/runGA: prevent a shell 'source' command from loading an unrelated
>  file named 'config' which happens to be in the current PATH - must use
>  a / in an arg to a 'source' command to avoid searching the PATH;
>
>
> ERROR HANDLING, ROBUSTNESS
>
> - improved error detection and reporting: test status of all system calls
>  and I/O operations (or explicitly document where not), and report
>  unexpected failures;
>
> - eval calls now check for eval result instead of testing the $@, which
>  is not always reliable;
>
> - localized $@ and $! in DESTROY methods to prevent potential calls to eval
>  and calls to system routines in code executed from a DESTROY method
>  from clobbering global variables $@ and $!;
>
> - Util::helper_app_pipe_open_unix: contain a failing exec with an eval
>  to prevent additional cases of process cloning. The exec could fail
>  this way when given tainted arguments;
>
> - Util::helper_app_pipe_open_unix: flush stdout and stderr before forking,
>  otherwise an error reported by exec (such as 'insecure dependency')
>  was lost in a buffer;
>
> - eval-protected an open($fh,'-|') to capture implied fork failures
>  due to lack of system resource;
>
> - explicit untainting: combine "use re 'taint'" with untaint_var(),
>  avoiding implicit perl untainting, along with workarounds to prevent it;
>
> - added 'use strict' where missing;
>
> - avoided a bunch of warnings on "Use of uninitialized value"
>
> - clearly report reasons for helper application process failures
>
> - t/SATest.pm: provide information about the process failure reason
>  if a system() call fails;  improved its reporting of failures;
>
> - improved error reporting in Plugin/DCC.pm on finding a DCC home directory
>  to facilitate troubleshooting;
>
>
> OTHER CHANGES
>
> - pseudoheader "ALL:raw" returns a pristine header section,
>  and pseudoheader "ALL" returns a cleaned header section
>
> - total rewrite of URI detection in plain text body;
>
> - many updates to the list of top level domains;
>
> - added 'util_rb_3tld', allowing 3-level TLDs to be listed in URIBLs and
>  allowing new 3TLDs to be added from rule updates;
>
> - avoided trusted_networks bog down due to O(n^2) loop with millions
>  of entries;
>
> - applied fixes to Plugin/VBounce.pm, updated VBounce ruleset;
>
> - added support for a 'Communigate Pro' Received header field;
>
> - parse Communigate Pro "with HTTPU" auth token;
>
> - provided a workaround for Net::DNS::Packet::new inconsistency;
>
> - let SpamAssassin use either Digest::SHA or Digest::SHA1, whichever is
>  available (the Digest::SHA is now a base module since perl 5.10.0);
>
> - improved parsing of eval-type rules: allow unquoted domain names,
>  disallow unmatched quotes;
>
> - provided a new module Mail::SpamAssassin::BayesStore::BDB. It should be
>  treated as alpha-quality (needs more testing) and is not yet ready for
>  production use;
>
> - exposed existing function 'received_within_months' as an eval function
>  in Plugin/HeaderEval.pm;
>
> - use /var/lock/subsys/spamd instead of /var/lock/subsys/spamassassin for
>  rc script, so that 'service spamd status' will work;
>
> - re-download MIRRRORED.BY files at least once a week, or if
>  'sa-update --refreshmirrors' switch is used;
>
> - input delimiter $/ can be corrupted by a plugin, localize $/ and $\
> before
>  calling a plugin;
>
> - takes almost a minute to start spamd on a slow machine, bumped up the
>  retry counter to 90 seconds;
>
> - resolved Bug 5325: syslog severity level in spamc/libspamc.c for max
>  message size (changed LOG_ERR into LOG_NOTICE for the message:
>  "skipped message, greater than max message size");
>
> - avoid taint warnings if hostname is returned as '(none)';
>
> - produce an error message if an sa-update channel doesn't exist;
>
> - Bug 6150, Bug 6127, Bug 5981, Bug 5950, Bug 6191: let spamd log/report
>  a child process exit status or aborting condition in an informative way;
>
> - detect accidental match-everything regexps in rules;
>
> - updated garescorer for 3.3.0: use more epochs in GA runs for better
> scores;
>  clarify some mass-check warning output, ensure rule name always appears at
>  start of line; if a rule had no default/existing score in 50_scores.cf,
>  don't tell the GA that 1.0 is an appropriate default value, instead pick
>  the midway point of its score range. this produces better results;
>  remove some dead code from masses/score-ranges-from-freqs;
>
> - report performance as iterations per second in garescorer.c;
>
> - added test to ensure that all config settings are correctly handled when
>  switching between users; added more config setting type metadata to enable
>  those tests to work; and fix URIDetail to store config on the {conf}
> object,
>  not on the plugin;
>
> - moved 'release tests' to xt/ directory; mirror long-running, net-tests
> and
>  stress tests with xt/50_testname.t scripts to enforce their run before a
>  release;
>
> - numerous additional and updated self-tests;
>
> - added a Test::Perl::Critic release-test;
>
> - some code cleanups based on suggestions by a perl module
> Test::Perl::Critic,
>  among others:
>  . enable TestingAndDebugging::ProhibitNoStrict test but allow the
>    use of 'no strict "refs"';
>  . deal with BuiltinFunctions::RequireGlobFunction;
>  . deal with ControlStructures::ProhibitMutatingListFunctions
>    removing this exception from xt/60_perlcritic.t;
>  . deal with BayesStore/BDB.pm, Variables::ProhibitConditionalDeclarations
>  . now that the module Time::HiRes is a required module, we can afford
>    to replace a select() with Time::HiRes::sleep, and remove exception
>    BuiltinFunctions::ProhibitSleepViaSelect from xt/60_perlcritic.t
>
> - documentation was updated, fixing numerous typos and mistakes in
>  documentation text and in log messages;
>
> - extensive improvements to development process:
>  automated testing through Hudson, improvements to mass-check and rules
>
>


-- 
--j.

Reply via email to