repoze.mailin Changelog
=======================

After 0.4
---------

- Added support for continuous integration using ``tox`` and ``jenkins``.

- Added 'setup.py dev' alias (runs ``setup.py develop`` plus installs
  ``nose`` and ``coverage``).

0.4 (2012-01-25)
----------------

- Added an option to pass None to the the 'pop' method of the pending
  queue:  in this case, the queue returns *all* pending messsage IDs.

- Moved to GitHub.

- Ensure that the ``pollster`` script pushes message IDs onto the pending
  queue, if configured.

- Added ``SaneFilenameMaildir``, which overrides the standard library's
  ``mailbox.Maildir`` to ensure that the generated filenames are strictly
  sortable in creation order.


0.3.1 (2009-07-08)
------------------

- N.B.:  the quarantine feature introduced in version 0.3 requires a
  backward-incompatible change to the database scehma.  Existing databases
  will not have the extra columns required to support the new feature.
  The simplest fix is as follows:
  
  * Stop any ongoing processing using the pending database.
  
  * Dump any existing message IDs from the database.

  * Move aside the database file.

  * Rerun the script which creates the database file.

  * Restore any dumped message IDs.


0.3 (2009-07-08)
----------------

- Added quarantine to pending queue.


0.2 (2009-06-23)
----------------

- 100% unit test coverage.

- Hardened ``PendingQueue.pop`` against RFC-violating message IDs with
  non-decodable 8-bit characters.

- Added logging of underflows in ``PendingQueue.pop``.

- Made ``PendingQueue.pop`` a normal method, rather than a generator.

- Added ``PendingQueue.logger`` attribute:  if set, should obey the
  interface of a ``logging`` module logger.


0.1.5 (2009-05-31)
------------------

- Skip incoming messages with duplicate message ids to messages we have
  already processed;  apparently some Microsoft clients resend messages
  without updating the Message-Id header, in violation of RFCs.


0.1.4 (2009-05-04)
------------------

- Fixed case where pop with multiple pending IDs and a given isolation level
  would cause the delete to fail with 'database locked'.  See:
  https://bugs.launchpad.net/karl3/+bug/364251

- Fixed bug found by inspection where "underflow" on pop would leave the
  message IDs which *had* been returned on the queue.


0.1.3 (2009-03-13)
------------------

- Added ``PendingQueue.__del__`` to ensure closing the SQL connection.

- ``MaildirStore.drainInbox``:  don't remove the message from the maildir
  until after adding to the store.


0.1.2 (2009-01-22)
------------------

- Made ``draino`` script explicitly commit sqlite transactions if not running
  in ``dry-run`` mode.

- Added ``isolation_level`` argument to ``MaildirStore.__init__``, to allow
  control of how the queue commits transactions.  The default, ``None``,
  causes the connection to defer commits.


0.1.1 (2009-01-16)
------------------

- Added ``isolation_level`` argument to ``PendingQueue.__init__``, to allow
  control of how the queue commits transactions.  The default, ``None``,
  causes the connection to autocommit after each statement.


0.1 (2009-01-15)
----------------

- Initial release.
