
###########
Old history
###########

This following changes were done before those modules were merged into
one distribution package.


===============================
Changes in the old core package
===============================


--------------------------------------------
Changes in ll-core 0.3 (released 05/24/2005)
--------------------------------------------

  * Functions will now no longer be turned into staticmethods
    automatically when used in a Namespace.
  * The iterator tools from ll.xist.xfind (item, first, last, count and
    Iterator) have been move here, as they are in no way specific to
    XIST.
  * A test suite has been added.
  * The wrapper function returned by notimplemented will now have an
    attribute __wrapped__ that points back to the original function.


----------------------------------------------
Changes in ll-core 0.2.1 (released 01/21/2005)
----------------------------------------------

  * __getitem__ now raises a KeyError if the attribute doesn't exist.


--------------------------------------------
Changes in ll-core 0.2 (released 01/11/2005)
--------------------------------------------

  * Namespace now has a __getitem__ method, so a Namespace class can be
    used in a call to the eval function.


--------------------------------------------
Changes in ll-core 0.1 (released 01/03/2005)
--------------------------------------------

  * Initial release


=======================
Changes in ll-ansistyle
=======================


-------------------------------------------------
Changes in ll-ansistyle 1.1 (released 06/28/2005)
-------------------------------------------------

  * The methods pushcolor and popcolor have been resurrected. Without
    them switching to a new color and back would have to be done in a
    single call to feed.


-------------------------------------------------
Changes in ll-ansistyle 1.0 (released 06/08/2005)
-------------------------------------------------

  * ll.ansistyle has been completely reimplemented to use an iterator
    interface instead of a stream interface.
  * Support for underlined and blinking text has been added.
  * A py.test based test suite has been added.


---------------------------------------------------
Changes in ll-ansistyle 0.6.1 (released 03/22/2005)
---------------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


-------------------------------------------------
Changes in ll-ansistyle 0.6 (released 01/03/2005)
-------------------------------------------------

  * ansistyle requires the core module and Python 2.4 now.


-------------------------------------------------
Changes in ll-ansistyle 0.5 (released 05/21/2004)
-------------------------------------------------

  * Text has been derived from list directly, so it inherits all list
    methods.
  * The method getcolor has been dropped. The class attribute color is
    used now instead.


-------------------------------------------------
Changes in ll-ansistyle 0.4 (released 07/31/2003)
-------------------------------------------------

  * The names of the methods pushColor, popColor, getColor and
    escapeChar have been changed to lowercase.
  * ansistyle requires Python 2.3 now.


---------------------------------------------------
Changes in ll-ansistyle 0.3.1 (released 11/14/2002)
---------------------------------------------------

  * Added source code encodings to all Python files.


-------------------------------------------------
Changes in ll-ansistyle 0.3 (released 08/27/2002)
-------------------------------------------------

  * ansistyle has been moved to the ll package.


---------------------------------------------------
Changes in ll-ansistyle 0.2.2 (released 02/12/2002)
---------------------------------------------------

  * Fixed a bug in Text.insert.


---------------------------------------------------
Changes in ll-ansistyle 0.2.1 (released 04/11/2001)
---------------------------------------------------

  * ansistyle now compiles under Windows with Visual C++. A binary
    distribution archive is available from the FTP directory.


-------------------------------------------------
Changes in ll-ansistyle 0.2 (released 04/02/2001)
-------------------------------------------------

  * ansistyle now supports background colors. You can specify the
    background color via the bits 4-7 of the color, i.e. for the
    background color b = 0,...,7, and the foreground color f=0,...,15
    the color value is (b<<4)|f.


---------------------------------------------------
Changes in ll-ansistyle 0.1.1 (released 03/21/2001)
---------------------------------------------------

  * Fixed a minor bug in ansistyle.Text.__repr__


-------------------------------------------------
Changes in ll-ansistyle 0.1 (released 02/18/2001)
-------------------------------------------------

  * Initial release


===================
Changes in ll-color
===================


-----------------------------------------------
Changes in ll-color 0.3.1 (released 03/22/2005)
-----------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


---------------------------------------------
Changes in ll-color 0.3 (released 01/21/2005)
---------------------------------------------

  * Two new methods (abslum and rellum) have been added that return a
    color with modified luminosity.


---------------------------------------------
Changes in ll-color 0.2 (released 01/03/2005)
---------------------------------------------

  * color requires the core module and Python 2.4 now.
  * Various bug fixes.


-----------------------------------------------
Changes in ll-color 0.1.1 (released 05/07/2004)
-----------------------------------------------

  * Fixed a bug in the css property.


---------------------------------------------
Changes in ll-color 0.1 (released 05/07/2004)
---------------------------------------------

  * Initial release.


==================
Changes in ll-make
==================


----------------------------------------------
Changes in ll-make 1.1.2 (released 10/04/2005)
----------------------------------------------

  * Fixed a bug in the handling of color environment variables.


----------------------------------------------
Changes in ll-make 1.1.1 (released 09/02/2005)
----------------------------------------------

  * Specifying colors via environment variables now works.
  * It's possible to specify a default for the show... options via
    environment variables.
  * CacheAction now drops the data in its clear method.


--------------------------------------------
Changes in ll-make 1.1 (released 09/01/2005)
--------------------------------------------

  * New action classes have been added: PickleAction, UnpickleAction,
    NullAction and CacheAction.
  * During calls to Target.clear and Target.dirty the action methods
    with the same name are now called.


--------------------------------------------
Changes in ll-make 1.0 (released 08/29/2005)
--------------------------------------------

  * Targets may now cache the objects that they create, so it can be
    reused for different outputs.
  * The Action chain has been split into four chains that will be used
    in different situations. Each target has an internal and external
    representation (e.g. the Python str object (the internal
    representation), that is the content of a file (the external
    representation). The read chain creates the internal representation
    from the external one, the write chain creates the external
    representation from the internal one. The convert chain converts
    between different internal representations. The use chain is called
    when external and internal representation exist and are up to date.
  * The internal representation of a target is now available via the
    method getdata.
  * Importing Python modules is now done via an ImportAction.
  * ImportAction and UseModuleAction can be used to automatically track
    module dependencies.
  * During build operations the currently ?running? project is
    available as ll.make.currentproject.
  * Two new action classes are available: SelectMainAction and
    JoinOrderedAction, which can be used to select the input data at
    the start of a convert chain.


---------------------------------------------
Changes in ll-make 0.26 (released 05/29/2005)
---------------------------------------------

  * Uses ansistyle 1.1 now.
  * Introduced a new Action class named ChainedAction that consists of
    a list of other actions. Each Target now only has one action to
    update this target, but this action might be a ChainedAction.
    Actions can be added (which results in a ChainedAction).


---------------------------------------------
Changes in ll-make 0.25 (released 05/20/2005)
---------------------------------------------

  * make is compatible with XIST 2.10 now.


---------------------------------------------
Changes in ll-make 0.24 (released 04/11/2005)
---------------------------------------------

  * XPITAction now works if there is no namespace available. In this
    case only the global namespace will be passed to the expressions.


-----------------------------------------------
Changes in ll-make 0.23.1 (released 03/22/2005)
-----------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


---------------------------------------------
Changes in ll-make 0.23 (released 02/14/2005)
---------------------------------------------

  * Actions can now be displayed during the make process in two ways: a
    short name (this uses the method desc) and a longer description
    (using the method fulldesc). You can activate the full description
    via the command line option -vf and deactivate it with -vF. In
    interactive mode you can use the attribute showactionsfull.


---------------------------------------------
Changes in ll-make 0.22 (released 01/21/2005)
---------------------------------------------

  * XPITAction will now pass the project, target and action to the
    embedded Python expression as global variables.


---------------------------------------------
Changes in ll-make 0.21 (released 01/19/2005)
---------------------------------------------

  * An action class XPITAction has been added for use with ll.xpit.
  * Setting a project dirty (so that out-of-dateness will be rechecked)
    has been factored into a separate method.


---------------------------------------------
Changes in ll-make 0.20 (released 01/03/2005)
---------------------------------------------

  * make requires the core module and Python 2.4 now.


-----------------------------------------------
Changes in ll-make 0.19.1 (released 11/26/2004)
-----------------------------------------------

  * Fixed print of tracebacks when ignoreerrors is true.


---------------------------------------------
Changes in ll-make 0.19 (released 10/29/2004)
---------------------------------------------

  * ll.make is compatible with XIST 2.6 now (and incompatible with XIST
    2.5).


-----------------------------------------------
Changes in ll-make 0.18.2 (released 10/12/2004)
-----------------------------------------------

  * Retry with absolute and real URLs in __candidates even if the
    argument is already an ll.url.URL object. This work around an URL
    normalization bug under Windows.


-----------------------------------------------
Changes in ll-make 0.18.1 (released 08/27/2004)
-----------------------------------------------

  * Target.actions is now a list instead of a tuple.


---------------------------------------------
Changes in ll-make 0.18 (released 07/06/2004)
---------------------------------------------

  * Added a new action class TOXICPrettifyAction that uses the new
    prettify function introduced in ll.toxic version 0.3.


---------------------------------------------
Changes in ll-make 0.17 (released 06/02/2004)
---------------------------------------------

  * Renamed OracleTarget to DBTarget.
  * Reporting PhonyTargets has been moved to a separate method named
    reportphonytargets.


---------------------------------------------
Changes in ll-make 0.16 (released 05/31/2004)
---------------------------------------------

  * The method buildWithArgs has been dropped. Use buildwithargs now.
  * Argument parsing has been made extensible. The method optionparser
    must return an instance of optparse.OptionParser. The method
    parseoptions parses the argument sequence passed in (defaults to
    sys.argv[1:] and returns a tuple with (values, args) (just like
    optparse.OptionParser.parse_args does).
  * The arguments ignoreerrors, color, maxinputreport have been removed
    from the Project constructor. If you really need different values
    for these, simply change the attributes after creating the Project
    object.
  * Project.__getitem__ and Project.__contains__ now recognize database
    ids.


-----------------------------------------------
Changes in ll-make 0.15.1 (released 05/25/2004)
-----------------------------------------------

  * Fixed formatting bugs in OracleReadResource.


---------------------------------------------
Changes in ll-make 0.15 (released 05/25/2004)
---------------------------------------------

  * There's a new option -vl that reports the recursion level as an
    indentation during the build process. This makes it easier to see,
    what depends on what. The indentation per level can be specified
    with the environment variable LL_MAKE_INDENT.
  * The environment variable MAKE_REPRANSI has been renamed to
    LL_MAKE_REPRANSI.


-----------------------------------------------
Changes in ll-make 0.14.2 (released 05/25/2004)
-----------------------------------------------

  * If a target has prerequisites, the time to rebuild those will be
    reported in the progress report too (if time reporting is on (via
    the option -vt)).
  * Fix a bug in XISTPublishAction.


-----------------------------------------------
Changes in ll-make 0.14.1 (released 05/21/2004)
-----------------------------------------------

  * The default color for output has been removed.
  * In the progress report URLs relative to the home directory are now
    tried too to find the shortest URL for display.
  * Fix a bug in JoinedReadAction and various other bugs.


---------------------------------------------
Changes in ll-make 0.14 (released 05/20/2004)
---------------------------------------------

  * Actions have been made much more atomic and flexible. For each
    target a chain of actions will be executed. The first action loads
    the file. The next actions transform the content, after that an
    action will save the result to a file. Finally other actions can
    modify this file (what has formerly been known as ?secondary
    actions?).

    For example: to transform an XIST file now you need a ReadAction, a
    XISTParseAction, a XISTConvertAction, a XISTPublishAction and a
    WriteAction. The base URLs for parsing and publishing have been
    moved from XISTTarget to XISTParseAction and XISTPublishAction.

  * DBID has been rewritten. For Oracle DBIDs it's possible to read and
    write functions and procedures via a file-like interface.
  * Support for Apache FOP and ll-toxic has been added.
  * The Target methods sources and targets have been renamed to inputs
    and outputs (related methods have been renamed too).
  * The options for selecting the verbosity of the progress report have
    been combined into one option -v.
  * The progress report tries to shorten URLs by displaying relative
    URLs (relative to the current directory) if those are shorter
    (which they usually are).


-----------------------------------------------
Changes in ll-make 0.13.1 (released 05/05/2004)
-----------------------------------------------

  * Fixed a small bug in Project.__contains__.


---------------------------------------------
Changes in ll-make 0.13 (released 01/12/2004)
---------------------------------------------

  * Now after the build the import cache ll.url.importcache will be
    restored to the state before the call. This fixes a bug, where a
    module that was loaded from another module (not as a PythonTarget),
    didn't get cleared from the import cache.


---------------------------------------------
Changes in ll-make 0.12 (released 01/02/2004)
---------------------------------------------

  * Adapted to XIST 2.4. XISTTarget now has two attributes parser and
    publisher which will be used by XISTAction for parsing and
    publishing targets.
  * Changed the assertions that check that XISTAction, CopyAction and
    SplatAction have only one source into exceptions.
  * Project.__getitem__ and related methods will now only try absolute
    file paths, if the URL really is local.
  * Dropped the deprecated project method has.
  * For parsing the command line option optparse is used now instead of
    getopt.


-----------------------------------------------
Changes in ll-make 0.11.7 (released 12/15/2003)
-----------------------------------------------

  * When building a target fails, the file will now only be removed if
    it exists.


-----------------------------------------------
Changes in ll-make 0.11.6 (released 12/08/2003)
-----------------------------------------------

  * Remove the module from the import cache in PythonTarget.clear, so
    that the module will be reloaded when Project.recreate is used.
  * Made compatible with XIST 2.3.


-----------------------------------------------
Changes in ll-make 0.11.5 (released 12/06/2003)
-----------------------------------------------

  * Now when a project is rebuilt, all loaded Python modules will be
    removed from the import cache before rebuilding commences. This
    should fix intermodule dependencies.


-----------------------------------------------
Changes in ll-make 0.11.4 (released 12/06/2003)
-----------------------------------------------

  * Added methods itersources, itertargets, itersourcedeps and
    itertargetdeps to the Target class.


-----------------------------------------------
Changes in ll-make 0.11.3 (released 11/22/2003)
-----------------------------------------------

  * __getitem__ and __contains__ of the Project class now first try
    with an absolute filename and then with the real filename (i.e. all
    links resolved).


-----------------------------------------------
Changes in ll-make 0.11.2 (released 08/06/2003)
-----------------------------------------------

  * A few of the Project attributes have been renamed to avoid name
    clashes when a class was derived from Project and ll.sisyphus.Job.


-----------------------------------------------
Changes in ll-make 0.11.1 (released 08/01/2003)
-----------------------------------------------

  * Fixed a bug in Project.build: Timestamps were not cleared on the
    second call to build when the first one had failed.
  * Timestamp handling was broken. Timestamps from the filesystem were
    in UTC, but the timestamp set after calls to Target.update were in
    local time. This has been fixed now.


---------------------------------------------
Changes in ll-make 0.11 (released 07/31/2003)
---------------------------------------------

  * Calling the XIST conversion in XISTAction has been moved from
    execute to a new method convert to be easier to customize.
  * make requires Python 2.3 now.


---------------------------------------------
Changes in ll-make 0.10 (released 07/02/2003)
---------------------------------------------

  * Targets will now be removed when building them fails.


----------------------------------------------
Changes in ll-make 0.9.5 (released 05/02/2003)
----------------------------------------------

  * Project.__getitem__ now retries with a canonical filename (i.e. the
    result of the real) before giving up.


----------------------------------------------
Changes in ll-make 0.9.4 (released 04/24/2003)
----------------------------------------------

  * All primary actions now make sure that the output file is removed
    when an error happens. The next call to a make script will again
    try to generate the output instead of silently skipping the half
    finished (but seemingly up to date) file.


----------------------------------------------
Changes in ll-make 0.9.3 (released 04/23/2003)
----------------------------------------------

  * Use the enhanced import_ method from ll.url 0.7.
  * Add a doc attribute to PhonyTarget which can be used in help
    messages (e.g. when buildWithArgs is called without arguments).


----------------------------------------------
Changes in ll-make 0.9.2 (released 04/15/2003)
----------------------------------------------

  * Fixed a small bug in the deprecated Project.has.


----------------------------------------------
Changes in ll-make 0.9.1 (released 03/11/2003)
----------------------------------------------

  * Fixed a small bug in Target.lastmodified.


--------------------------------------------
Changes in ll-make 0.9 (released 03/10/2003)
--------------------------------------------

  * Generating a Publisher in an XISTAction has been moved to a
    separate method publisher.
  * Each target can now be assigned a sequence of actions. There are
    new action classes ModeAction and OwnerAction that change the
    access permissions or owner of a file that has been created by a
    previous action in an action sequence.
  * Updated the timestamp functionality so that with Python 2.3 the
    datetime module will be used for timestamps.


--------------------------------------------
Changes in ll-make 0.8 (released 03/03/2003)
--------------------------------------------

  * The project method has has been deprecated. Use has_key or the new
    __contains__ for that. This means that all dictionary access method
    now, try strings, URLs and absolute URLs now.
  * Populating a project can now be done in the overwritable method
    create. There is a new method clear which removes all targets from
    the project. Use the method recreate to recreate a project, i.e.
    call clear and create.


--------------------------------------------
Changes in ll-make 0.7 (released 02/26/2003)
--------------------------------------------

  * Made compatible with XIST 1.5 again: prefixes is only passed to the
    parser, when it is not None.
  * has and has_key have been changed to do the same as __getitem__,
    i.e. retry with an URL or absolute URL in case of an error.
  * build can now be called multiple times and will reset timestamp
    information on all subsequent calls. This makes it possible to
    rerun a build process without having to recreate the project with
    its targets and dependencies (provided that no targets have to be
    added or removed).


----------------------------------------------
Changes in ll-make 0.6.1 (released 02/14/2003)
----------------------------------------------

  * XISTTarget has new attributes parser, handler and prefixes that can
    be specified in the constructor and will be used for parsing.


--------------------------------------------
Changes in ll-make 0.6 (released 11/20/2002)
--------------------------------------------

  * Project.__getitem__ now raises an UndefinedTargetError exception
    with the original key if retrying with URLs fails.
  * The methods Target.sources and Target.targets have been changed to
    return the Target objects instead of the Dep objects. The old
    functionality is still available as Target.sourcedeps and
    Target.targetdeps. The same has been done for the method
    Target.newerSources (and the method name has been made lowercase).


--------------------------------------------
Changes in ll-make 0.5 (released 11/13/2002)
--------------------------------------------

  * Project is derived from dict now.
  * Calling Project.buildWithArgs with an empty argument list now lists
    all PhonyTargets.


----------------------------------------------
Changes in ll-make 0.4.2 (released 11/11/2002)
----------------------------------------------

  * Added a new target class JavaPropAction, for Java property files.
  * Added a __len__ to the Project class.


----------------------------------------------
Changes in ll-make 0.4.1 (released 10/25/2002)
----------------------------------------------

  * Added a new action class SplatAction, that can be used for
    replacing strings in files.
  * Speed up dependency creation by adding slot declarations.


--------------------------------------------
Changes in ll-make 0.4 (released 08/27/2002)
--------------------------------------------

  * Adapted to XIST 2.0.


----------------------------------------------
Changes in ll-make 0.3.2 (released 06/16/2002)
----------------------------------------------

  * Work around a problem with unicode objects in sys.path. This
    workaround will disappear as soon as Python 2.3 is released.
  * Use the method doPublication for publishing nodes. (This requires
    XIST 1.4.4.)


----------------------------------------------
Changes in ll-make 0.3.1 (released 03/28/2002)
----------------------------------------------

  * Added a warning when the id of a new target already exists in the
    project, i.e. when the target is redefined.
  * Added a warning for file modification timestamps from the future.


--------------------------------------------
Changes in ll-make 0.3 (released 03/18/2002)
--------------------------------------------

  * Now url.URL is used everywhere instead of fileutils.Filename


----------------------------------------------
Changes in ll-make 0.2.3 (released 02/22/2002)
----------------------------------------------

  * Added a new class DBID that can be used as an id for database
    content.
  * Ported to Python 2.2


----------------------------------------------
Changes in ll-make 0.2.2 (released 01/25/2001)
----------------------------------------------

  * Verbosity can now be specified via several Project constructor
    arguments.
  * Action.converter now sets the attribute makeaction on the returned
    Converter object.


----------------------------------------------
Changes in ll-make 0.2.1 (released 10/03/2001)
----------------------------------------------

  * Support for the root paramenter for the convert method in
    XISTAction.


--------------------------------------------
Changes in ll-make 0.2 (released 10/02/2001)
--------------------------------------------

  * Dependencies now have a type (a subclass of Dep). This allows to
    mark certain dependencies as ?special?.
  * Project.build can now be called with a Target or a filename as a
    string.


--------------------------------------------
Changes in ll-make 0.1 (released 07/27/2001)
--------------------------------------------

  * Initial release.


======================
Changes in ll-sisyphus
======================


---------------------------------------------------
Changes in ll-sisyphus 0.10.1 (released 03/22/2005)
---------------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


-------------------------------------------------
Changes in ll-sisyphus 0.10 (released 01/03/2005)
-------------------------------------------------

  * sisyphus requires the core module and Python 2.4 now.


--------------------------------------------------
Changes in ll-sisyphus 0.9.1 (released 04/28/2004)
--------------------------------------------------

  * Fixed a bug related to logging empty strings.


------------------------------------------------
Changes in ll-sisyphus 0.9 (released 11/13/2003)
------------------------------------------------

  * Lowercased the constructor arguments maxRuntime, raiseErrors and
    printKills.
  * When the job is started it checks whether it's predecessor is still
    running (i.e. it checks whether the pid from the run file really
    exists).
  * Added a method logErrorOnly that writes to the error log only (this
    is used when the message about a job still running is written to
    the error log, so the progress log from the previous job execution
    won't be disturbed).
  * The loop log now contains the exception value in case of an error.


------------------------------------------------
Changes in ll-sisyphus 0.8 (released 07/31/2003)
------------------------------------------------

  * sisyphus now uses and requires Python 2.3.
  * The logging methods can now log everything. If the logged object is
    not a string, pprint is used for formatting.
  * The number of seconds is now properly formatted with hours, minutes
    and seconds in the logfiles.
  * A few methods have been lowercased.
  * When a job fails the method failed is called now. This gives the
    job the change to clean up.


------------------------------------------------
Changes in ll-sisyphus 0.7 (released 03/11/2003)
------------------------------------------------

  * sisyphus now uses the ll.url module, ll.fileutils is no longer
    required.


--------------------------------------------------
Changes in ll-sisyphus 0.6.2 (released 12/03/2002)
--------------------------------------------------

  * error reports are now logged to the process log too.


--------------------------------------------------
Changes in ll-sisyphus 0.6.1 (released 09/10/2002)
--------------------------------------------------

  * The Job constructor has a new argument printKills which specifies
    whether killing a previous job should be printed (i.e. mailed from
    cron).


------------------------------------------------
Changes in ll-sisyphus 0.6 (released 08/27/2002)
------------------------------------------------

  * sisyphus has been moved to the ll package.


--------------------------------------------------
Changes in ll-sisyphus 0.5.3 (released 05/07/2002)
--------------------------------------------------

  * Derive Job from object to be able to use new style classes in
    mixins in subclasses.


--------------------------------------------------
Changes in ll-sisyphus 0.5.2 (released 07/19/2001)
--------------------------------------------------

  * Made compatible with fileutils 0.2.


--------------------------------------------------
Changes in ll-sisyphus 0.5.1 (released 04/12/2001)
--------------------------------------------------

  * Fixed a severe bug (missing call to os.path.expanduser), that
    prevented Job from working.


------------------------------------------------
Changes in ll-sisyphus 0.5 (released 03/29/2001)
------------------------------------------------

  * The Job constructor has a new parameter raiseErrors. When set to
    true exceptions will not only be written to the logfile but raised,
    which results in a output to the terminal and an email from the
    cron daemon.


------------------------------------------------
Changes in ll-sisyphus 0.4 (released 03/26/2001)
------------------------------------------------

  * The class LogFile has been moved to a seperate module named
    fileutils.


------------------------------------------------
Changes in ll-sisyphus 0.3 (released 02/16/2001)
------------------------------------------------

  * Initial public release


=================
Changes in ll-url
=================


----------------------------------------------
Changes in ll-url 0.15.1 (released 03/22/2005)
----------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


--------------------------------------------
Changes in ll-url 0.15 (released 02/24/2005)
--------------------------------------------

  * The mimetype property of ReadResource is no longer a tuple, but a
    plain string.
  * ReadResource has a new property named encoding, which is the
    character encoding of the resource.
  * A bug in the lastmodified property of WriteResource has been fixed.


----------------------------------------------
Changes in ll-url 0.14.2 (released 02/22/2005)
----------------------------------------------

  * url.URL("file:foo/").local() will now always end in a directory
    separator. This didn't work on Windows before.


----------------------------------------------
Changes in ll-url 0.14.1 (released 01/13/2005)
----------------------------------------------

  * On Windows url.File("c:\\foo").abs() generated URL('file:///C|/
    foo'). Now the result will always be URL('file:/C|/foo'). The same
    fix has been made for real and the constructor.


--------------------------------------------
Changes in ll-url 0.14 (released 01/03/2005)
--------------------------------------------

  * url requires the core module and Python 2.4 now.


--------------------------------------------
Changes in ll-url 0.13 (released 11/25/2004)
--------------------------------------------

  * The helper function _unescape will now interpret %u escapes
    (produced by Microsoft software). The patch has been contributed by
    Artiom Morozov.


----------------------------------------------
Changes in ll-url 0.12.1 (released 11/03/2004)
----------------------------------------------

  * Fixed a bug in the C helper function _unescape (forget to clear the
    exception).
  * Dropped the system default encoding from the list of encodings that
    will be tried when UTF-8 fails in _unescape.


--------------------------------------------
Changes in ll-url 0.12 (released 01/12/2004)
--------------------------------------------

  * removefromimportcache has been dropped, now you can assign the
    import cache directly (as the module level attribute importcache.
    Removing modules from the import cache can now be done via
    url.importcache.remove(mod).


----------------------------------------------
Changes in ll-url 0.11.7 (released 12/23/2003)
----------------------------------------------

  * Fixed a bug in Path.real that only surfaced on Windows.


----------------------------------------------
Changes in ll-url 0.11.6 (released 12/06/2003)
----------------------------------------------

  * Added a function removefromimportcache.


----------------------------------------------
Changes in ll-url 0.11.5 (released 11/22/2003)
----------------------------------------------

  * Fixed a bug with the scheme argument of the methods real and abs.


----------------------------------------------
Changes in ll-url 0.11.4 (released 11/19/2003)
----------------------------------------------

  * realurl has been renamed to finalurl and now works for local URLs
    too (it will be the same as the original URL).


----------------------------------------------
Changes in ll-url 0.11.3 (released 11/17/2003)
----------------------------------------------

  * Added an attribute realurl to ReadResource which contains the real
    URL (which might be different from the URL passed to the
    constructor, because of a redirect).


----------------------------------------------
Changes in ll-url 0.11.2 (released 11/17/2003)
----------------------------------------------

  * URLs that have an authority part but a relative path will be
    properly formatted, i.e. the leading / will be included.


----------------------------------------------
Changes in ll-url 0.11.1 (released 08/13/2003)
----------------------------------------------

  * The URL method rename has been fixed.
  * A bug has been fixed that created relative paths for HTTP URLs that
    didn't have a trailing /.


--------------------------------------------
Changes in ll-url 0.11 (released 08/04/2003)
--------------------------------------------

  * A method withoutfrag has been added. withFragment has been renamed
    to withfrag and the property fragment has been renamed to frag.


--------------------------------------------
Changes in ll-url 0.10 (released 07/31/2003)
--------------------------------------------

  * url requires Python 2.3 now.
  * The method insert has been fixed.


---------------------------------------------
Changes in ll-url 0.9.1 (released 07/17/2003)
---------------------------------------------

  * Fixed a bug that drops the filename in relative when both URLs have
    the same filenames but a different query.
  * The fragment is now properly escaped when the URL is regenerated.


-------------------------------------------
Changes in ll-url 0.9 (released 07/09/2003)
-------------------------------------------

  * withExt and friends have been lowercased.
  * The path has been changed from a string to an object of the new
    class Path. This new class provides many of the path related
    functionality of URLs.
  * The method URL.import_ no longer uses the import machinery (from
    the imp module), but execfile. This has the following consequences:

      + You can only import files with the extension .py.
      + The imported module no longer retains deleted attributes of the
        previous version.
      + The file will be compiled even if a bytecode file exists.


-------------------------------------------
Changes in ll-url 0.8 (released 06/04/2003)
-------------------------------------------

  * Added methods abs and __rdiv__ to URL.
  * The method real now has an argument scheme that specifies which
    scheme should the use for the resulting URL.
  * Now the query part of an URL will be parsed into the attribute
    query_parts (which is a dictionary). If the query can't be parsed,
    query_parts will be False, but query will still contain the
    complete query part.


---------------------------------------------
Changes in ll-url 0.7.1 (released 05/01/2003)
---------------------------------------------

  * Made clearimportcache a class method.


-------------------------------------------
Changes in ll-url 0.7 (released 04/23/2003)
-------------------------------------------

  * Introduced local as a synonym for asFilename, Dir as a synonym for
    Dirname and File as a synonym for Filename.
  * Added functions first, firstdir and firstfile, that returns the
    first URL from a list that exists, is a directory or a file.
  * The method import_ uses a cache now. Different caching strategies
    can be chosen through the mode parameter.


---------------------------------------------
Changes in ll-url 0.6.2 (released 03/07/2002)
---------------------------------------------

  * The method real checked whether the referenced file really is a
    directory. This has the problem that the directory/file must exist.
    Now the directoryness of the URL itself is used.


---------------------------------------------
Changes in ll-url 0.6.1 (released 03/06/2002)
---------------------------------------------

  * Fixed a bug in chown: Attributes are not available for pwd.getpwnam
    () and grp.getgrnam() results under Python 2.2. Use the tuple entry
    instead.
  * Added methods mtime, atime and size to URL.


-------------------------------------------
Changes in ll-url 0.6 (released 03/05/2002)
-------------------------------------------

  * Now all arguments for walk default to False.
  * Added new convenience methods walkfiles and walkdirs.
  * An URL can now be iterated. This is equivalent to walk(dirsbefore=
    True, files=True).
  * Many functions from os and os.path have been added as methods to
    ll.url. This was inspired by Jason Orendorff's path module.
  * The method import_ is now available in the URL class too.
  * When Python 2.3 is used timestamp will now be datetime.datetime
    objects and mx.DateTime is no longer required. With Python 2.2
    mx.DateTime will still be used.


---------------------------------------------
Changes in ll-url 0.5.1 (released 01/07/2002)
---------------------------------------------

  * Added a LICENSE file.


-------------------------------------------
Changes in ll-url 0.5 (released 11/14/2002)
-------------------------------------------

  * WriteResource has been largely rewritten to elminate the overhead
    of calls the write. Access to properties might be a little slower
    now, because WriteResource has been optimized for maximum writing
    speed.
  * Added source code encoding statements to the Python files.


---------------------------------------------
Changes in ll-url 0.4.3 (released 11/11/2002)
---------------------------------------------

  * Fixed a refcounting leak in the new version of _normalizepath.


---------------------------------------------
Changes in ll-url 0.4.2 (released 11/08/2002)
---------------------------------------------

  * _normalizepath has been reimplemented in C for performance reasons.


---------------------------------------------
Changes in ll-url 0.4.1 (released 10/29/2002)
---------------------------------------------

  * ReadResource and WriteResource now have a method import_, that
    imports the file as a Python module (ignoring the file extension).


-------------------------------------------
Changes in ll-url 0.4 (released 10/18/2002)
-------------------------------------------

  * Added a HOWTO file.
  * Made the docstrings compatible with XIST 2.0.
  * The imagesize property now raises an IOError if the PIL is not
    available.


---------------------------------------------
Changes in ll-url 0.3.1 (released 09/09/2002)
---------------------------------------------

  * WriteResource will now generate an empty file, even if write is
    never called. This is checked in close.
  * WriteResource gained a destructor that will call close.


-------------------------------------------
Changes in ll-url 0.3 (released 08/27/2002)
-------------------------------------------

  * url has been moved to the ll package.


-------------------------------------------
Changes in ll-url 0.2 (released 06/18/2002)
-------------------------------------------

  * _escape now always uses unicode strings. 8bit strings will be
    converted to unicode before the UTF-8 version will be encoded.
  * _unescape now always emits unicode strings. If the UTF-8 decoding
    does not work, the system default encoding will be tried, and
    finally Latin-1 will be used.
  * _escape and _unescape have been rewritten in C for performance
    reasons.


---------------------------------------------
Changes in ll-url 0.1.8 (released 05/07/2002)
---------------------------------------------

  * Illegal % escapes now only issue a warning and will be used
    literally when the warning framework doesn't raise an exception.


---------------------------------------------
Changes in ll-url 0.1.7 (released 04/30/2002)
---------------------------------------------

  * Removed the illegal scheme handling change from 0.1.6 again. Now
    this has to be done before constructing an URL.


---------------------------------------------
Changes in ll-url 0.1.6 (released 04/26/2002)
---------------------------------------------

  * Now when the parser discovers an illegal scheme, you get another
    chance: Beginning whitespace will be stripped and it will be
    retried.


---------------------------------------------
Changes in ll-url 0.1.5 (released 04/25/2002)
---------------------------------------------

  * Fixed a bug in __div__: Now URL("http://foo/bar")/"/baz" works.


---------------------------------------------
Changes in ll-url 0.1.4 (released 04/15/2002)
---------------------------------------------

  * When assigning to the url property, the scheme will now only be set
    when it consists of legal characters. This means that parsing /
    foo.php?x=http://www.bar.com won't try to set a scheme /foo.php?x=
    http, but will use an empty scheme.


---------------------------------------------
Changes in ll-url 0.1.3 (released 04/09/2002)
---------------------------------------------

  * Make ext and file work with opaque URLs.
  * Forgot the make resdata assignable. Fixed.
  * Now the scheme to be used can be specified for the various filename
    functions.
  * Added a method withFragment that returns a copy of the URL with a
    new fragment.
  * Use the email package instead of rfc822 for formatdate.
  * No longer quote [ and ] to be compatible with the ezt templates
    from ViewCVS.
  * When joining URLs the right hand URL no longer inherits the scheme,
    if it has not scheme, but the path is absolute, i.e.

        >>> url.URL("root:foo.html")/url.URL("/cgi-bin/")
        URL('/cgi-bin/')



---------------------------------------------
Changes in ll-url 0.1.2 (released 03/26/2002)
---------------------------------------------

  * Fixed a bug in URL.__eq__ and URL.__hash__: query and fragment were
    not used. This has been fixed.


---------------------------------------------
Changes in ll-url 0.1.1 (released 03/20/2002)
---------------------------------------------

  * Fixed a bug in ReadResource.contentlength, which tried to convert
    the stat result to a DateTime object.


-------------------------------------------
Changes in ll-url 0.1 (released 03/18/2002)
-------------------------------------------

  * Initial release


==================
Changes in ll-xpit
==================


----------------------------------------------
Changes in ll-xpit 0.2.1 (released 03/22/2005)
----------------------------------------------

  * Added a note about the package init file to the installation
    documentation.


--------------------------------------------
Changes in ll-xpit 0.2 (released 01/21/2005)
--------------------------------------------

  * convert now takes both a global and a local namespace and will
    raise an exception when an unknown processing instruction target is
    encountered.


--------------------------------------------
Changes in ll-xpit 0.1 (released 01/19/2005)
--------------------------------------------

  * Initial release.
