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