=======
Changes
=======

2.2.0 (2011-09-01)
==================

--------
Features
--------

- Add support for excluding some subdirectories of the ``source-directory``
  with the ``exclude-directories`` option.  [Bruno Binet]

-----
Fixes
-----

- Added undeclared but necessary test dependency on `zope.testing` in a
  test extra.

- Added test dependency on `z3c.recipe.scripts` as it is required by newer
  `zc.buildout` versions.

- Using python's `doctest` module instead of deprecated
  `zope.testing.doctest`.

2.1.0 (2010-04-21)
==================

--------
Features
--------

- Enable cross-platform paths by allowing an extended syntax for path
  suffixes. Example: If ``${buildout:directory}`` resolves to
  ``/sample_buildout`` on a POSIX system and ``C:\sample_buildout`` in
  Windows, ``${buildout:directory/foo.txt}`` will resolve to
  ``/sample_buildout/foo.txt`` and ``C:\sample_buildout\foo.txt``,
  respectively.

- Add filters via a pipe syntax, reminiscent of UNIX pipes or Django template
  filters. Simple example: if ``${name}`` resolves to ``harry`` then
  ``${name|upper}`` resolves to ``HARRY``.  Simple string filters are
  upper, lower, title, and capitalize, just like the Python string
  methods.  Also see the next bullet.

- Added support for the buildout relative-paths option.  Shell scripts should
  include ``${shell-relative-path-setup}`` before commands with
  buildout-generated paths are executed.  Python scripts should use
  ``${python-relative-path-setup}`` similarly.  ``${os-paths}`` (shell),
  ``${space-paths}`` (shell), and ``${string-paths}`` (Python) will have
  relative paths if the buildout relative-paths option is used.  To convert
  individual absolute paths to relative paths, use the ``path-repr`` filter
  in Python scripts and the ``shell-path`` filter in shell scripts.  Path
  suffixes can be combined with these filters, so, if buildout's
  relative-paths option is true, ``${buildout:directory/foo.txt|path-repr}``
  will produce a buildout-relative, platform appropriate path to
  foo.txt.  Note that for shell scripts, Windows is not supported at
  this time.

- Support escaping ``${...}`` with ``$${...}`` in templates.  This is
  particularly useful for UNIX shell scripts.

-----
Fixes
-----

- Make tests less susceptible to timing errors.

-------
Changes
-------

- ``${os-paths}`` and ``${space-paths}`` no longer filter out .zip paths.

- The entries in ``${string-paths}`` now are separated by newlines. Each
  entry is indented to the level of the initial placement of the marker.

2.0.3 (2009-07-02)
==================

-----
Fixes
-----

- Use ``realpath`` helper function from zc.buildout on the buildout
  directory too, such that it goes through the same normalization as
  the path being compared and stands a chance of working on Windows,
  due to possible drive letter case differences.

2.0.2 (2009-05-04)
==================

-----
Fixes
-----

- Turns out sorting paths was a bad idea.  They are already in a deterministic
  order, AFAICT, because of the order or processing dependencies.  Sorting
  them makes them *less* deterministic in practice, across machines.

2.0.1 (2009-04-30)
==================

-----
Fixes
-----

- Correct sdist generation to include all necessary files.

- Doc formatting fixes.

- Correct "Destinations already exist" message to list destinations without
  ``.in`` suffix.

2.0 (2009-04-30)
================

--------
Features
--------

- Store your template files in a separate directory structure, using the
  ``source-directory`` option.

- Specify multiple files automatically with globs.

- Templates can reference other buildout sections using the usual syntax, e.g.
  ${buildout:parts}

- Share options with other sections using the typical ``extends`` option.

- Create destination directories automatically.

- Define option values for templates dynamically in Python with the
  ``interpreted-options`` option.

- Get paths for eggs by specifying ``eggs`` and ``extra-paths``, just like
  zc.recipe.egg script recipe.  These are available in template options in
  colon-delimited, space-delimited, and quoted variants.  You can also build
  your own using the ``interpreted-options`` feature.

- Templates are not processed if there are no changes to them or the buildout.

1.0 (2007-09-30)
================

Initial release.
