[Ftp-release] ANNOUNCE: telepathy-qt4 0.5.0

Olli Salli ollisal at gmail.com
Tue Nov 16 10:57:11 PST 2010

telepathy-qt4 0.5.0 (2010-11-16)

The "new era of breakage" release.

in the 0.5 development series will however be compatible with this release, as
will any releases in a 0.6 stable series.

For enhanced compatibility versions from 0.5 and earlier series can be parallel
installed, with 0.5 bumping the .so major version to .so.1.  However, the
development headers and pkgconfig file can't be parallel installed.

tarball: http://telepathy.freedesktop.org/releases/telepathy-qt4/telepathy-qt4-0.5.0.tar.gz
signature: http://telepathy.freedesktop.org/releases/telepathy-qt4/telepathy-qt4-0.5.0.tar.gz.asc
API documentation: http://telepathy.freedesktop.org/doc/telepathy-qt4/

 * fd.o #28793 - It is no longer necessary to keep the proxy / other object you
   get a PendingOperation from manually referenced until the operation is
 * fd.o #28797 - generated client code (AbstractInterface subclasses) now allows
   setting a non-default timeout for D-Bus method calls
 * fd.o #29486 - Bare variant maps and string lists are no longer exposed in the
   API unless absolutely necessary; instead they have wrapper classes with
   easy access to well-known keys and values. Among other consequences, this
   means AbstractClient implementations NEED TO CHANGE their method
   implementation signatures to accept the wrapper classes instead of bare
 * Setting automatic/requested presence in Account now uses Tp::Presence
 * Cleaned up the API and internal code by removing all deprecated classes,
   methods and signals.
 * Added Tp::Object intermediate base class for uniform QObject property change
   notification. Connection, Channel and Contact will be propertified using it
   in the future.
 * Enumeration and flag types generated from the specification can now be used
   in API without endangering ABI stability due to added padding members,
   enhancing type safety in numerous instances where bare uints used to be
   returned / taken as a parameter.
 * Moved low-level functionality which shouldn't be used when using a full
   Telepathy setup with a Mission Control service (Account Manager + Channel
   Dispatcher) available from Connection and ConnectionManager to Lowlevel
   classes, which can be accessed only if TP_QT4_ENABLE_LOWLEVEL_API is #defined
   through a lowlevel() accessor on them
 * Bare pointers are no longer returned from the API, instead either SharedPtr
   or Qt implicitly shared handle classes are used (applicable to
   Connection/ContactCapabilities, ProtocolInfo, etc)
 * Tp::Contact is now a RefCounted and uses Tp::Feature like the rest of the
 * ClientRegistrar no longer guarantees that a singleton instance is returned
   for create(). In particular, this relaxation allows us to implement an API in
   the future which constructs a ClientRegistrar behind the scenes to be able to
   request and handle channels without manually implementing an
 * The Filter API is now more future-proof, with the assumption that the filter
   chain is ANDed together dropped. It will be possible to combine filters using
   And/Or/Not filter combiners in the future, of which And is included now.
 * The SharedPtr API has been improved. In particular, it's now safe to use it
   as a QMap/QHash key and more difficult to use it incorrectly as a boolean or
   an integer. The redundant WeakPtr class has been removed - use QWeakPointer
   instead (which works with SharedPtr for all QObject classes).
 * Tp::Contact friend list state change signals now have a details argument
   (which will contain e.g. the request message for publishState() == Ask when
    somebody adds you to their contact list, for example). This means that
   code connecting to them NEEDS TO BE CHANGED.
 * Account::haveConnection(Changed) and friends is now the less confusing
   Account::connection(Changed) pair
 * AccountManager filtering methods returning an AccountSet now have more
   descriptive names without the Set suffix
 * Account/Connection/Channel subclasses now can override the "core" feature
   implied by isReady() and becomeReady(). In particular, this means that e.g.
   ContactSearchChannel::isReady() with no arguments will only return true if
   ContactSearchChannel::FeatureCore is ready in addition to
 * StreamedMediaChannel is once again just for Channel.Type.StreamedMedia
   channels, with the intermediate Call.DRAFT support and API removed. When Call
   is undrafted, a new CallChannel will be added and StreamedMediaChannel
 * Similarly, hacky Conference.DRAFT support IS REMOVED. Only the final
   Conference interface is supported from now on.
 * Everything that used to be called just Audio/Video/MediaCall etc now has
   StreamedMedia in the name, to not conflict with future Call API.

 * fd.o #27204 - Codegen erroneously uses enums' value-prefix as the name for
   the C++ enum
 * fd.o #29998 - Connecting to signal Tp::TextChannel::chatStateChanged needs
   typedef if not done in Tp namespace
 * fd.o #27795 - Problems using Tp::SharedPtr as a key in QMap
 * ChannelRequest not becoming ready successfully when there is no Account
 * ContactSearchChannel not initializing its private members correctly
 * Compile errors with QT_STRICT_ITERATORS
 * Some MSVC++ compilation issues (though there still are likely some remaining)
 * ContactManager::allKnownContacts not picking up changes from the "stored"


Olli Salli

More information about the Ftp-release mailing list