pyxs Changelog
==============

Here you can see the full list of changes between each pyxs release.

Version 0.3

- Moved all PUBSUB functionality into a separate `Monitor` class, which
  uses a *separate* connection. That way, we'll never have to worry
  about mixing incoming XenStore events and command replies.
- Fixed a couple of nasty bugs in concurrent use of `Client.wait()`
  with other commands (see above).

Version 0.2
-----------

Released on August 18th 2011

- Completely refactored validation -- no more `@spec` magic, everything
  is checked explicitly inside `Client.execute_command()`.
- Added a compatibility interface, which mimics `xen.lowlevel.xs`
  behaviour, using `pyxs` as a backend, see pyxs/_compat.py.
- Restricted `SET_TARGET`, `INTRODUCE` and `RELEASE` operations to
  Dom0 only -- `/proc/xen/capabilities` is used to check domain
  role.
- Fixed a bug in `Client.wait()` -- queued watch events weren't wrapped
  in `pyxs._internal.Event` class, unlike the received ones.
- Added `Client.walk()` method for walking XenStore tree -- similar to
  `os.walk()`

Version 0.1
-------------

Initial release, released on July 16th 2011

- Added a complete implementation of XenStore protocol, including
  transactions and path watching, see `pyxs.Client` for details.
- Added generic validation helper -- `@spec`, which forces arguments
  to match the scheme from the wire protocol specification.
- Added two connection backends -- `XenBusConnection` for connecting
  from DomU through a block device and `UnixSocketConnection`,
  communicating with ``xenstored`` via a Unix domain socket.
