Describe DBusException.get_dbus_name() in NEWS
[dbus-python-phuang.git] / NEWS
blobeacb7bde665e33951602bd024a449393f5674e6d
1 D-Bus Python Bindings 0.81.1 (unreleased)
2 =========================================
4 Features:
6 * When an Error message on the bus is represented as a DBusException, the
7   error name is copied into the exception and can be retrieved by
8   get_dbus_name(). Exception handlers should use this instead of looking at
9   the stringified form of the exception, unless backwards compatibility
10   is needed.
12 D-Bus Python Bindings 0.81.0 (9 May 2007)
13 =========================================
15 The 'series of tubes' release
16 -----------------------------
18 This is a feature release with support for non-bus-daemon connections
19 and improved GObject integration.
21 Features:
23 * Bus has a superclass dbus.bus.BusConnection (a connection to a bus daemon,
24   but without the shared-connection semantics or any deprecated API)
25   for the benefit of those wanting to subclass bus daemon connections
27 * BusConnection has a superclass dbus.connection.Connection (a
28   connection without a bus daemon) for use in peer-to-peer situations,
29   or distributed pseudo-bus situations without a bus daemon such as
30   Telepathy's Tubes API
32 * dbus.gobject_service.ExportedGObject is like dbus.service.Object, but
33   is also a subclass of GObject (with the necessary metaclass magic to
34   make this work). Until someone has verified that the GObject side of
35   things works as expected too, I consider this API to be potentially
36   subject to change!
38 * Connection and BusConnection have gained a number of useful methods,
39   including watch_name_owner (track name owner changes asynchronously,
40   avoiding race conditions), call_blocking and call_async (blocking and
41   asynchronous method calls without going via a proxy - note that these
42   are semi-low-level interfaces which don't do introspection), and
43   list_names, list_activatable_names and get_name_owner which are
44   simple wrappers for the corresponding org.freedesktop.DBus methods
46 * dbus.Interface (now also available at dbus.proxies.Interface)
47   and dbus.proxies.ProxyObject now have some reasonably obvious properties.
49 Deprecations:
51 * All keyword arguments called named_service are deprecated in favour of an
52   argument called bus_name (to be compatible with both older and newer
53   dbus-python, you should pass these positional arguments).
55 * The bus keyword argument to dbus.proxies.ProxyObject is deprecated in
56   favour of an argument called conn, because proxies will work on non-bus
57   connections now (again, for maximum compatibility you should use a
58   positional argument for this).
60 * No warning is raised for this, but I consider calling any remote method
61   on a ProxyObject or Interface whose name is either alllowercase or
62   lower_case_with_underscores to be deprecated, and reserve the right
63   to add properties or methods of this form in future releases - use
64   ProxyObject.get_dbus_method if you must call a remote method named in
65   this way. Methods named following TheUsualDBusConvention or
66   theJavaConvention are safe.
68 Bugfixes:
70 * Exceptions in signal handlers print a stack trace to stderr (this can
71   be redirected elsewhere with Python's logging framework). Partially
72   addresses fd.o #9980.
74 * The reserved local interface and object path are properly checked for.
76 * When you return a tuple that is not a Struct from a method with no
77   out_signature, it's interpreted as multiple return values, not a
78   single Struct (closes fd.o #10174).
80 * If send_with_reply() returns TRUE but with pending call NULL, dbus-python
81   no longer crashes. This can happen when unexpectedly disconnected.
83 * Arguments are not examined for functions declared METH_NOARGS (this is
84   unnecessary and can cause a crash).
86 Other notable changes:
88 * dbus-python uses the standard Python logging framework throughout.
89   The first time a WARNING or ERROR is generated, it will configure the
90   logging framework to output to stderr, unless you have already
91   configured logging in your application.
93 * The tutorial now advocates the use of add_signal_receiver if all you
94   want to do is listen for signals: this avoids undesired activation,
95   e.g. of Listen or Rhythmbox (!). Addresses fd.o #10743, fd.o #10568.
97 D-Bus Python Bindings 0.80.2 (13 February 2007)
98 ===============================================
99 - Fix numerous memory and reference leaks
100 - Only use -Werror if the user specifically asks for it
101 - Audit tp_dealloc callbacks to make sure they correctly preserve the
102   exception state
103 - Relicense files solely owned by Collabora Ltd. more permissively (LGPL/AFL
104   rather than GPL/AFL) - this includes the tutorial and all the C code
106 D-Bus Python Bindings 0.80.1 (24 January 2007)
107 ==============================================
108 - The "oops" release
109 - Install dbus/_version.py, so dbus.__version__ exists again
111 D-Bus Python Bindings 0.80.0 (24 January 2007)
112 ==============================================
113 - The "everything changes" release
114 - Rewrite dbus_bindings (Pyrex) as _dbus_bindings (C) - API changes!
115 - Define what's public API
116 - Move low-level but still public API to dbus.lowlevel
117 - Remove Variant class, add variant_level property on all D-Bus types
118 - Make signal matching keep working as expected when name ownership changes
119 - Use unambiguous D-Bus types when transferring from D-Bus to Python
120 - Follow well-defined rules when transferring from Python to D-Bus
121 - Add utf8_strings and byte_arrays options in various places, so a user
122   can tweak the calling conventions to be more efficient
123 - Raise RuntimeError if user tries to use a connection with no main loop
124   to do something that won't work without one
125 - Make asynchronous method calls actually asynchronous when made before
126   introspection results come back
127 - Redo main loop machinery so we can add pure-Python main loops later without
128   API breakage
129 - Allow construction of a dbus.service.Object if you don't have a BusName
130   (or even a Bus)
131 - Port introspection XML parser from libxml2 (external package) to expat
132   (included with Python)
133 - Port build system from distutils to autoconf/automake/libtool
134 - Install a header file for third-party main loop integration
135 - Make compatible with Python 2.5, including on 64-bit platforms
136 - Add docstrings throughout
137 - Add more tests and examples
138 - Add interoperability tests (which interoperate with Java)
139 - Add copyright notices!
141 D-Bus Python Bindings 0.71 (24 July 2006)
142 ==============================================================
143 - Binary modules are now installed in the correct directory
144 - Distutils exports the dbus and dbus-glib cflags
146 D-Bus Python Bindings 0.70 (17 July 2006)
147 ==============================================================
148 - First release of bindings split
149 - Move to a distutils build enviornment
150 - It is possible to now specify sender_keyword="foo", path_keyword="bar" when 
151   adding a signal listener