Version 0.9.1
=============

* This release moves the source location to Google Code.

* Threaded support is currently broken.  (It might not actually be broken.
  It might just be the tests which are broken.)

Version 0.9
===========

* The lockfile module was reorganized into a package.

* The names of the three main classes have changed as follows:

    LinkFileLock -> LinkLockFile
    MkdirFileLock -> MkdirLockFile
    SQLiteFileLock -> SQLiteLockFile

* A PIDLockFile class was added.

Version 0.3
===========

* Fix 2.4.diff file error.

* More documentation updates.

Version 0.2
===========

* Added 2.4.diff file to patch lockfile to work with Python 2.4 (removes use
  of with statement).

* Renamed _FileLock base class to LockBase to expose it (and its docstrings)
  to pydoc.

* Got rid of time.sleep() calls in tests (thanks to Konstantin
  Veretennicov).

* Use thread.get_ident() as the thread discriminator.

* Updated documentation a bit.

* Added RELEASE-NOTES.

Version 0.1
===========

* First release - All basic functionality there.
