summaryrefslogtreecommitdiff
path: root/UPGRADING
blob: 3959798875551f01df82cd3c00b0a73e65359606 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
API/Behaviour changes
=====================

 - The library has been split in half. To use high-level APIs, use the
   pkg-config module "telepathy-glib-1" and
   #include <telepathy-glib/telepathy-glib.h>. To use lower-level APIs that
   rely on dbus-glib GTypes or specific D-Bus interfaces, methods or signals,
   also use the pkg-config module "telepathy-glib-1-dbus" and
   #include <telepathy-glib/telepathy-glib-dbus.h>.

 - TpSimpleClientFactory got renamed to TpClientFactory

 - tp_automatic_client_factory_new() now returns a TpClientFactory*
   for less boring casting.

 - Tp{Basic,Automatic}ProxyFactory and TpClientChannelFactory, as well as all
   related APIs got removed. TpClientFactory and TpAutomaricClientFactory are
   their replacement.

 - tp_simple_{observer,approver,handler}_new() now takes a TpClientFactory as
   first argument, and _new_with_factory() got removed.

 - TpBaseClient lost its "account-manager" property, applications only
   interested by channels does not have to create a full TpAccountManager,
   TpAccount objects will be created only when a channel comes up for that
   account.

 - TpContact now uses GQuark instead of TpContactFeature. This make them
   consistent with TpProxy features.

 - TpAutomaticClientFactory now only has CORE features by default, other
   features must be added explicitly by the user using
   tp_client_factory_add_*_features().

 - TP_CHANNEL_FEATURE_CONTACTS is removed:
   * TpChannel:target-contact and TpChannel:initiator-contact are now prepared
     as part of TP_CHANNEL_FEATURE_CORE;
   * group TpContacts are now prepared as part of TP_CHANNEL_FEATURE_GROUP.

 - TP_CHANNEL_FEATURE_GROUP is not CORE anymore, so must be requested explicitly
   to introspect Group interface.

 - Some of the Group APIs of TpChannel has been renamed:
   * tp_channel_group_dup_members_contacts -> tp_channel_group_dup_members;
   * tp_channel_group_dup_local_pending_contacts -> tp_channel_group_dup_local_pending;
   * tp_channel_group_get_local_pending_contact_info -> tp_channel_group_get_local_pending_info;
   * tp_channel_group_dup_remote_pending_contacts -> tp_channel_group_dup_remote_pending;
   * "group-contacts-changed" -> "group-members-changed".

 - "contact-chat-state-changed" signal has been renamed to "chat-state-changed".

 - TpContact does not ref its TpConnection anymore, to fix refcycle caused by
   TpConnection reffing its roster contacts, or TpChannel reffing its members.
   Apps should now keep their own reference to the TpConnection in order to use
   its TpContact. Note that keeping a reference to the TpAccountManager or
   TpAccount is good as well.

 - tp_connection_manager_get_protocol_object() has been renamed to
   tp_connection_manager_get_protocol().

 - TpGroupMixin and TpMessageMixin now require TpBaseChannel.
   TpPresenceMixin now require TpBaseConnection.

 - TpAccountRequest::connection-manager property has been renamed to ::cm-name,
   and TpAccountRequest::protocol property has been renamed to ::protocol-name.

 - tp_group_mixin_change_members() now has the signature of
   tp_group_mixin_change_members_detailed(). To help transition this function
   can be added internally:

        static void
        change_members (GObject *obj,
            const gchar *message,
            const TpIntset *add,
            const TpIntset *del,
            const TpIntset *add_local_pending,
            const TpIntset *add_remote_pending,
            TpHandle actor,
            TpChannelGroupChangeReason reason)
        {
          GHashTable *details;

          details = tp_asv_new (
              "actor", G_TYPE_UINT, actor,
              "change-reason", G_TYPE_UINT, reason,
              NULL);

          if (message != NULL)
            tp_asv_set_string (details, "message", message);

          tp_group_mixin_change_members (obj,
              add, del, add_local_pending, add_remote_pending, details);

          g_hash_table_unref (details);
        }

 - TpBaseContactList is not a channel manager anymore. An instance should be
   created in TpBaseConnection::constructed instead of
   TpBaseConnection::create_channel_factories.

 - Protocol and service names contain "_" where they used to contain "-"
   (in real life, this mostly affects Salut and Haze for local_xmpp,
   and Haze for skype_dbus and skype_x11).