                                History
                                =======

Changes in 1.10.1 (released 07/20/2007)
=======================================

     * Fix option handling in ll.daemon (values from the optionparser
       where never used).

Changes in 1.10 (released 06/21/2007)
=====================================

     * ll.daemon now uses optparse to parse the command line options.
       Start options restart and run have been added.

Changes in 1.9.1 (released 04/03/2007)
======================================

     * Fixed a bug in ll.url.SshConnection, which was missing a call
       to urllib.url2pathname.

Changes in 1.9 (released 03/30/2007)
====================================

     * ll.url.Context no longer relies on automatic cleanup for
       closing connections. Instead when a Context object is used in
       a with block, all connections will be closed at the end of the
       block. This should finally fix the problem with hanging
       threads at the end of the program.
     * A script ucp.py has been added that can be used to copy stuff
       around:

 ucp -v http://www.python.org ssh://root@www.example.net/~joe/public_html/index.html -u joe -g users

Changes in 1.8 (released 03/12/2007)
====================================

     * In calls to ll.url.URL methods that get forwarded to a
       connection it's now possible to pass keyword arguments for the
       connection constructor directly to the called method, i.e. you
       can do:

 >>> u = url.URL("ssh://root@www.example.com/etc/passwd")
 >>> u.size(identity="/root/.ssh/id_rsa")
 1550

Changes in 1.7.5 (released 03/09/2007)
======================================

     * ll.url.Resource now has a method encoding that returns None
       (for "encoding unknown").

Changes in 1.7.4 (released 03/08/2007)
======================================

     * ll.url.SshConnections now supports the identity parameter.
       This can be used to specify the filename to be used as the
       identity file (private key) for authentication.

Changes in 1.7.3 (released 02/22/2007)
======================================

     * ll.url.SshConnection now has a new method close which can be
       used to shut down the communication channel. As a
       SshConnection no longer stores a reference to the context,
       this means that ssh connections are shut down immediately
       after the end of the context in which they are stored. This
       avoids a problem with hanging threads.

Changes in 1.7.2 (released 02/02/2007)
======================================

     * Fixed a bug in ll.url._import.

Changes in 1.7.1 (released 01/24/2007)
======================================

     * ll.astyle has been updated to the current trunk version of
       IPython.
     * As the new module is deprecated, use types instead.

Changes in 1.7 (released 11/23/2006)
====================================

     * Fixed a bug in the user switching in ll.daemon.Daemon.
     * Added a new action class GetAttrAction to ll.make. This action
       gets an attribute of its input object.

Changes in 1.6.1 (released 11/22/2006)
======================================

     * ll.make.ModuleAction now puts a real filename into the modules
       __file__ attribute, so that source code can be displayed in
       stacktraces.
     * ll.astyle has been fixed to work with the current trunk
       version of IPython.

Changes in 1.6 (released 11/08/2006)
====================================

     * ll.url now supports ssh URLs which are files on remote hosts.
       This requires py.execnet. Most of the file data and metadata
       handling has been rewritten to support the requirements of ssh
       URLs.
     * ll.make.ModeAction and ll.make.OwnerAction are subclasses of
       ll.make.ExternalAction now. This means they will execute even
       in "infoonly" mode.
     * Fixed a bug in ll.make.JoinAction.get.
     * Remove the pid file for ll.sisyphus.Job when a
       KeyboardInterrupt happens and we're running on Python 2.5.
     * Fixed a longstanding bug in ll.sisyphus.Job which resulted in
       the pid file not being written in certain situations.
     * ll.daemon.Daemon now allows to switch the group too.

Changes in 1.5 (released 09/24/2006)
====================================

     * ll.make.XISTTextAction is compatible to XIST 2.15 now.
     * The functions ll.url.Dirname and ll.url.Filename have been
       removed (use ll.url.Dir and ll.url.File instead).
     * The methods ll.url.URL.isLocal and ll.url.URL.asFilename have
       been removed (use ll.url.URL.islocal and ll.url.URL.local
       instead).

Changes in 1.4 (released 08/23/2006)
====================================

     * A new module has been added: ll.daemon can be used on UNIX to
       fork a daemon running.

Changes in 1.3.2 (released 07/25/2006)
======================================

     * ll.make.ModuleAction now normalizes line feeds, so that this
       action can now be used directly on Windows too.

Changes in 1.3.1 (released 07/06/2006)
======================================

     * An option showinfoonly has been added to ll.make.Project
       (defaulting to False). This option determines whether actions
       that run in infoonly mode are reported or not.

Changes in 1.3 (released 06/28/2006)
====================================

     * ll.make has been rewritten. Now there's no longer a
       distinction between Targets and Actions. Actions can be
       chained more easily and creating an action and registering it
       with the project are two separate steps. Actions can no longer
       be shared, as each action stores its own input actions (but
       output actions are not stored). "Ids" have been renamed to
       "keys" (and DBID/OracleID to DBKey/OracleKey). ImportAction
       has been renamed to ModuleAction and can now turn any string
       into a module.
     * In ll.url modification dates for local files now include
       microseconds (if the OS supports it).
     * A class Queue has been added to ll.misc which provides FIFO
       queues.
     * A decorator withdoc has been added to ll.misc that sets the
       docstring on the function it decorates.
     * setuptools is now supported for installation.

Changes in 1.2 (released 12/13/2005)
====================================

     * None is now allowed as a proper data object in ll.make
       actions.
     * ll.xpit now supports conditionals (i.e. the new processing
       instruction targets if, elif, else and endif. Now there must
       be a space after the target name.

Changes in 1.1.1 (released 11/15/2005)
======================================

     * Fixed a bug in ll.make.Project.buildwithargs.

Changes in 1.1 (released 10/31/2005)
====================================

     * ll.make.TOXICAction no longer takes an encoding argument in
       the constructor, but works on unicode strings directly.
     * Two new actions (DecodeAction and EncodeAction) have been
       added to ll.make.

Changes in 1.0.2 (released 10/24/2005)
======================================

     * Fixed a bug in ll.make.Project.destroy that broke the recreate
       method.

Changes in 1.0.1 (released 10/18/2005)
======================================

     * Fixed a bug in ll.make.Project.__contains__.

Changes in 1.0 (released 10/13/2005)
====================================

     * This package now contains the following modules, that have
       been distributed as separate packages previously: ansistyle,
       color, make, misc (which contains the stuff from the old ll
       package), sisyphus, url and xpit.
     * ll.misc.Iterator now has a method get that will return a
       default value when the iterator doesn't have the appropriate
       item.
     * In ll.make the output has been fixed: The showactionfull flag
       is checked before the showaction flag and target id's will
       always be output in this mode.