The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes since 0.32.3

 - Constructor for Net::DBus::Object allows another Net::DBus::Object
   to be passed instead of the Net::DBus::Service, to create child
   objects specifying only a relative path.

 - Updated minimum required DBus version to be 0.33 to gain access
   to the unregister_object_path API

 - Add a disconnect() method to Net::DBus::Object to make it possible 
   to unregister object from the bus & thus make it possible to destroy 
   objects which are no longer required / relevant.

 - Unregister all child objects if we are unregistered ourselves

 - Fix numerous POD errors identified by Test::Pod and podchecker

 - Increase POD documentation to get 100% coverage of all APIs,
   verified by Test::Pod::Coverage

Changes since 0.32.2

 - Introspection data is used only as hint, so if an object
   exports many methods, but only provides partial introspection
   data, remote calls fallback to regular typing rules

 - Re-add dbus_XXX convenience methods to Net::DBus to allow
   clients to do explicit type casting. Must be requested at
   export time, using 'Net::DBus qw(:typing)'.

 - Update all example programs to run against session bus,
   since there are no security rules to enable them to work
   on system bus.

 - Print out warning upon use, if a method, signal, or property
   is annotated with the 'org.freedesktop.DBus.Deprecated' flag.

 - Do not wait for a method reply if the method is annotated
   with the 'org.freedesktop.DBus.Method.NoReply' flag.

 - Extend Net::DBus::Exporter to enable methods, signals, and
   properties to be annotated.

 - Add support for 'org.freedesktop.DBus.Method.NoReply' and
   'org.freedesktop.DBus.Deprecated' annotations when exporting
   objects

 - Add a pure in-memory bus implementation for facilitating
   creation of unit tests which would otherwise require making
   a connection to a 'live' message bus. Can be accessed via:
 
      Net::DBus->test

 - Add an *EXPERIMENTAL* mock object to faciltate creation of
   unit tests which need to communicate with other objects on
   the bus. See Net::DBus::Test::MockObject for further info.

Changes since 0.32.1

 - Fix unit tests broken in previous build

 - Added patch to avoid leaking memory when throwing dbus
   errors from the XS layer

 - Added support for org.freedesktop.DBus.Properties
   in exported & remote objects.

 - Added support for getting the unique name of the client's
   connection to the bus

 - Added support for getting the unique name of the client
   owning a service on the bus

 - RemoteService object constructor gains an extra parameter
   for the owner of the service at the time it was aquired to
   deal with issues where a service is replaced.

 - Cache RemoteService objects to avoid creating multiple
   instances for the same service name.

 - Fix caching of objects by the service to avoid caching
   objects cast to a specific interface

 - Make add_signal_receiver method on Net::DBus private

 - Use introspection data for hinting only, not absolute truth
   since Python bindings don't provide complete data.

 - Adding correct handling for (de)marshalling variant data
   type to fix interaction with python bindings

 - Added magic 'caller' and 'serial' data types for requesting
   that data about method caller be passed into a method

 - Lots more POD documentation

 - Added 'lshal.pl' demo script for listing HAL devices

 - Made example scripts interoperate correctly with example
   scripts from Python & GLib bindings

Changes since 0.32.0

 - The order of 'service_name' and 'bus' parameter to the
   Net::DBus::Service constructor is reversed to match
   that of Net::DBus::RemoteService

 - The order of 'service' and 'object_path' parameter to the
   Net::DBus::Object constructor is reversed to match
   that of Net::DBus::RemoteObject

 - No longer neccessary to construct an explicit Net::DBus::Service
   object - one is constructed & returned by the 'export_service'
   method on Net::DBus

 - The 'find' method on Net::DBus will search for & attach to
   a suitable bus, so no longer neccessary to hard code either
   system or session bus

 - Introspection data is no longer provided via the
   Net::DBus::Object constructor. Consult the manual pages
   for Net::DBus::OBject and Net::DBus::Exporter for details
   of new approach to defining introspection data.

 - The Net::DBus::Introspector class is no longer for public
   use.

 - The Net::DBus::Dumper class can be used to display a dump
   of an object's exported API cf examples/dump-object.pl

 - Signal handler callbacks now get the actual signal params
   passed in, rather than low level bind info

 - The Net::DBus objects are automatically registered with
   the default reactor mainloop, unless 'nomainloop => 1'
   is passed into constructor