April 9, 2006
 - spam.module
    o tag 2.0.13 release

April 2, 2006
 - spam_surbl.pgsql
    o PostgreSQL script for Spam SURBL module provided by Pawel Niewiadomski
      (committed with minor modifications)

December 16, 2005
 - spam.module
    o Introduce "report as spam" functionality for users with "report spam"
      permissions on any content that is being spam filtered.  Also introduces
      a new "reported spam" administrative interface.
    o Bug #36548: auto-select logs tab on spam admin pages
 - spam.mysql
    o comment out "DROP TABLE IF EXISTS" on tables that contain important data
    o add new "spam_reported" table
 - spam.pgsql
    o add new "spam_reported" table
 - spam_update.php
    o add update_02 for creating new "spam_reported" table

October 9, 2005 (2.0.12)
 - spam.module
    o Bug #31952: prevent spam and notspam values from ever going negative
 - spam.pgsql
    o Strictly enforce 'spam', 'notspam' and 'probability' values in
      'spam_tokens' table always be greater than or equal to 0.
 - spam_update.php
    o Add missing {}'s when renaming spam_tokens table

October 5, 2005
 - spam.module
    o Feature #31012: improve tokenizer logic (thanks to Zed Pobre)
       full details found here -> http://drupal.org/node/31012
 - spam_update.php
    o upgrade path for new tokenizer logic, updates existing tokens
      (put spam_update.php in your root Drupal directory and run it once,
       then remove the script.)
 - spam.mysql
    o update default custom filters (thanks to Zed Pobre)
 - spam.pgsql
    o introduce a spam.pgsql script for using the spam module with PostgreSQL
      (thanks to Zed Pobre)

September 19, 2005
 - spam.mysql
    o Bug #31673: Fix typo in "probability" key.

September 15, 2005
 - spam.module
    o Add the "|" character to the tokenizer delimiter list.
    o Bug: Only look at the first 255 characters of a token (tokens longer 
      than that were previously being silently dropped, as we store them 
      in a varchar(255) database column)

September 11, 2005
 - spam.module
    o Bug #30653:  Another, be sure $old->spam or $old->notspam is set before
      we decide we are updating an existing token.

September 7, 2005
 - spam.module
    o Bug #30653:  Be sure $old->spam or $old->notspam is set before we decide
      we are updating an existing token.
    o Bug:  Properly log number of duplicates marked as spam.

September 4, 2005 (2.0.11)
 - spam.module
    o rename spam_filter_content() to spam_content_filter() to match
      existing spam_ip_filter()
 - trackback_blackhole.module
    o Bug #30299: trackback spammers waste resources accessing trackback's too

September 2, 2005
 - spam.module
    o Bug #30285: rename spam_filter() to spam_filter_content() as Drupal has
      a _filter() hook.

August 29, 2005
 - spam.module
    o Bug #29972: don't auto-publish new content

August 26, 2005
 - spam.module
    o Bug: be sure we really loaded a comment before we try and delete it.
 - spam_upgrade.php
    o Bug: be sure we really loaded a comment before we try and delete it.

August 26, 2005 (2.0.10)
 - spam.module
    o Feature #29617: add ability to scan just the header or just the body 
      of new content with custom filters.
    o Bug: allow editing of url filters.

August 25, 2005
 - spam.module
    o Add hidden feature (code that is commented out) allowing persistent 
      admins to easily configure how many spam comments and spam nodes are 
      displayed per page.
 - trackback_blackhole.module
    o New module, minimizes resources wasted by trackback spammers, and
      prevents their attacks from filling your watchdog logs with 404 errors.
      This module is only useful if you do not use the trackback module.  If 
      you enable this module with the trackback module, trackbacks will stop
      working.

August 25, 2005 (2.0.9)
 - spam.module
    o Feature #21764: add javascript-based 'select all' and 'select none' links
     to comment overview, node overview, and custom filter scan pages.
    o Feature #28748: sanity check comments, make sure they are attached to
      existing and published nodes.
    o Consistently convert probability to spam or not spam.
    o add back dropped ")"

August 25, 2005 (2.0.8)
 - spam.module
    o removed the optional trackback patch as it was merged into the trackback
      module
    o Release 2.0.8

August 24, 2005
 - spam.module
    o Fix node_api log message to properly report action type

August 19, 2005
 - spam.module
    o Optimize: Re-order filters to put all non-tokenizing filters first 
      (no need to consume memory tokenizing unless we have to)

August 19, 2005 (2.0.7)
 - spam.module
    o Bug #29022 fix: prevent attempted delete of comment with cid of 0 or node
      with nid of 0
 - spam_upgrade.php
    o Bug #29022 fix: prevent attempted delete of comment with cid of 0 or node
      with nid of 0

August 13, 2005 (2.0.6)
 - spam.module
    o Set sane default configuration to catch spam "out of the box".
    o New feature: support "maybe spam" and "maybe not spam" for custom filters.
 - INSTALL.txt
    o Updated installation instructions for the 2.0 version of the spam module
 - spam_upgrade.php
    o Script to simplify upgrading from the original version of the spam
      module.

August 12, 2005 (2.0.5)
 - spam.module
    o Standardize API (keep parameters of different functions in same order)
    o Bug fix: always include anonmyous comment fields when updating spam
               status
    o Simplify spam 'page' hook, consolidate duplicate logic
 - spam.mysql
    o Fix table regression, properly name filed (remove "autodelete")
    o Add some default custom filters
 - trackback.patch
    o patch for 4.6 version of trackback module to work with 2.0 spam module

August 9, 2005 (2.0.4)
 - spam.module
    o minor fixes
 - spam_surbl.module
    o new module, supports using six Spam URI Realtime Blocklists

August 7, 2005 (2.0.3)
 - spam.module
    o Optimized spam_filter() to only execute as many filters as necessary,
      stopping as soon as content is determined to be spam.
    o New feature: new action to not send mail when matching custom filter
    o Added debug log when blacklisting an IP
    o Add option to track spam comments/content from spam overview pages
 - spam.mysql
    o renamed 'autodelete' to 'action'
    ALTER TABLE {spam_custom} RENAME autodelete TO action;

August 5, 2005 (2.0.2)
 - spam.module
    o New feature: automatic IP blacklisting (prevents IPs that have been
      detected posting spam content from posting additional content)
    o Optimized detection of duplicate content

August 4, 2005 (2.0.1)
 - spam.module
    o Bug fix: only expire (delete) spam after configured amount of time
    o Bug fix: always delete spam_tracker entries when spam is deleted
    o Bug fix: check probablity with >=, not just >
    o Provide "never" option for when to delete spam logs
    o Increase # of comments displayed on scan from 10 to 50
    o Reduce chattiness of spam_comment and spam_nodeapi

August 3, 2005 (2.0.0)
 - spam.module
 - spam.mysql
    o Initial 2.0.0 release.
