repoze.configuration Changelog
==============================

0.5 (2009-07-26)
----------------

- Add documentation about interpolation.

- Show only line numbers in error reports on console (previously both
  line numbers and column numbers were reported, but the column
  numbers seem to be meaningless in most debugging scenarios).

- Fix an off by one error in line number reporting in errors.

- Interpolation variables now try to use the registry first, but fall
  back to "stack" values; the most important of which is ``%(here)s``;
  this interpolation variable can be used in any config file.  It will
  be the absolute path to the parent directory of the configuration
  file in which it was declared.  Any stack variable will be
  overridden permanently (for interpolation purposes) by a registry
  variable.

0.4 (2009-07-25)
----------------

- Totally backwards incompatible.

- Instead of accepting "context", "structure" and "node", directives
  now accept "declaration" objects.  A declaration object has most of
  the methods that used to be supplied by the "context", and some new
  ones.  The docs have been updated.

0.3 (2009-07-24)
----------------

- Backwards incompatibility: directives must now accept three
  arguments: context, structure, and node (previously they had only
  accepted context and structure).

- ``error`` method added to context.

- Make discriminator conflict detection actually work.

- Show actual lines from conflicting files when possible during a
  discriminator conflict.

- Ignore import errors when trying to resolve entry point loads.

- Add a ``popvalue`` method to the context; it works like ``getvalue``
  except it pops the value out of the structure supplied instead of
  just getting it.

- It was not possible to resolve the single dot ``.`` using
  repoze.configuration.context.Context.resolve to the current package.

- Using a Python %(interpolation)s marker in any string value allows
  you to replace values in strings.  For example, using "%(here)s" in
  a string value would attempt to resolve the name "here" from the
  registry as a key.

- Use pyyaml's SafeLoader rather than Loader: we don't really need to
  be able to construct arbitrary Python objects.

0.2 (2009-07-13)
----------------

- Trying to read any directive section that wasn't a YAML mapping
  caused a TypeError (e.g. ``construct_scalar takes no argument
  'deep'``).

0.1 (2009-06-22)
----------------

- Initial release.
