I've heard Simon speaking about that: Contacts and Requests are now mandatory for any useful CM. With all the stuff we removed it won't make a huge iface... Also about those ifaces: - GetContactAttributes should be renamed to GetContact(ByHandle) IMO since it's now the only way to get a contact. - ContactAttributeInterfaces can die now that CMs must implement all contact attributes. Connection.Interfaces is enough. - Request/InspectHandles can die (bug #50085)
Okay I could get behind this. The most annoying thing will clearly be sedding gabble's test suite with s/conn.Requests/conn/g. :-D
True. Drop blocking bug #23148, life is too short. For now, we'll just make those 2 ifaces mandatory (bug #54321)
I think I'm going to go for the "JFDI" approach. We've done worse sed operations. See Bug #69430 which I arbitrarily repurposed for all this sort of thing.
Prerequisite: squash TpContactsMixin into TpBaseConnection. I have a design which is even introspectable, I think.
Created attachment 88777 [details] [review] [spec next 1/2] Flatten Connection.I.Contacts into Connection
Created attachment 88778 [details] [review] [spec next 2/2] Do not list Requests in the Interfaces property
Created attachment 88780 [details] [review] [tp-glib next 1] TpBaseConnection: absorb the functionality of the TpContactsMixin It's a somewhat different "shape" - using a fill_contacts_attribute() virtual method - so that it's (hopefully) introspectable. This is a step towards folding Contacts into Connection.
Created attachment 88781 [details] [review] [tp-glib next 2] TpBaseConnection: add more ABI padding We're starting to run out of pointers here; while the 'next' branch isn't ABI-stable, we might as well add plenty of padding.
Created attachment 88782 [details] [review] [tp-glib next 3] [temporary] update spec: fold Contacts into Connection To be replaced with an update to a newer spec.
Created attachment 88783 [details] [review] [tp-glib next 4] Adjust telepathy-glib code for removal of Contacts interface
Created attachment 88784 [details] [review] [tp-glib next 5] Assume that Conn.I.Requests is supported, and don't put it in Interfaces --- Implementation of Attachment #88778 [details].
Created attachment 88785 [details] [review] [tp-glib next 6/7] Simplify TpPresenceMixin by making the "get contact status" vfunc singular
Created attachment 88786 [details] [review] [tp-glib next 7/7] TpBaseContactList: add mandatory is_blocked vfunc This makes the implementation of the former Contacts methods more efficient.
CMs not yet updated. This is going to break all of them. I don't think this will affect non-CMs, apart from them needing to update their test code.
Created attachment 88828 [details] [review] [gabble next 1/4] Adjust code for replacement of TpContactsMixin
Created attachment 88829 [details] [review] [gabble next 2/4] presence: use new "singular" API for getting contact status API break in TpPresenceMixin.
Created attachment 88830 [details] [review] [gabble next 3/5] roster: implement new is_blocked() vfunc --- This goes with Attachment #88786 [details].
Created attachment 88831 [details] [review] [gabble next 5/5] Don't explicitly include Requests in list of interfaces --- Gabble's implementation of Attachment #88784 [details], Attachment #88778 [details]
(In reply to comment #6) > Created attachment 88778 [details] [review] > [spec next 2/2] Do not list Requests in the Interfaces property (In reply to comment #11) > Created attachment 88784 [details] [review] > [tp-glib next 5] Assume that Conn.I.Requests is supported, and don't put it > in Interfaces See https://bugs.freedesktop.org/show_bug.cgi?id=69430#c14 for rationale.
Comment on attachment 88777 [details] [review] [spec next 1/2] Flatten Connection.I.Contacts into Connection Review of attachment 88777 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88778 [details] [review] [spec next 2/2] Do not list Requests in the Interfaces property Review of attachment 88778 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88780 [details] [review] [tp-glib next 1] TpBaseConnection: absorb the functionality of the TpContactsMixin Review of attachment 88780 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88781 [details] [review] [tp-glib next 2] TpBaseConnection: add more ABI padding Review of attachment 88781 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88782 [details] [review] [tp-glib next 3] [temporary] update spec: fold Contacts into Connection Review of attachment 88782 [details] [review]: ----------------------------------------------------------------- ok but should be be a proper update.
Comment on attachment 88783 [details] [review] [tp-glib next 4] Adjust telepathy-glib code for removal of Contacts interface Review of attachment 88783 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88784 [details] [review] [tp-glib next 5] Assume that Conn.I.Requests is supported, and don't put it in Interfaces Review of attachment 88784 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88785 [details] [review] [tp-glib next 6/7] Simplify TpPresenceMixin by making the "get contact status" vfunc singular Review of attachment 88785 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 88786 [details] [review] [tp-glib next 7/7] TpBaseContactList: add mandatory is_blocked vfunc Review of attachment 88786 [details] [review]: ----------------------------------------------------------------- ++
Created attachment 91666 [details] [review] [gabble next 6/6] Add a comment indicating why wrap_connection treats Contacts specially --- Can be squashed into Attachment #88828 [details] if desired.
Created attachment 91667 [details] [review] [salut next 1/5] Replace TpContactsMixin with fill_contact_attributes vfunc
Created attachment 91669 [details] [review] [salut next 2/5] constants, servicetest: partially resync with Gabble Gabble uses telepathy-glib for sidecars whereas Salut doesn't yet, so I didn't delete the 'Future' line from wrap_connection(). --- > +CHANNEL_TYPE_CONTACT_LIST = CHANNEL + ".Type.ContactList1" Yes, I know this shouldn't be here. I'll delete it from Gabble at some point, and resync to that, but that isn't on the critical path or anything. > +ATTR_CONTACT_ID = CONN + '/contact-id' > +ATTR_CONTACT_ID = CONN + '/contact-id' Likewise.
Created attachment 91670 [details] [review] [salut next 3/5] tests: abolish Contacts interface As with Gabble, I kept conn.Contacts working for now, but it's now an alias for the default interface.
Created attachment 91671 [details] [review] [salut next 4/5] presence mixin: switch to singular API
Created attachment 91672 [details] [review] [salut next 5/5] don't explicitly list Requests in Interfaces
Created attachment 91673 [details] [review] [gabble next] constants: remove obsolete and duplicate lines In the process, get rid of some now-redundant test code that relied on CHANNEL_TYPE_CONTACT_LIST still existing. --- Not part of this API break, can be merged whenever.
Created attachment 91676 [details] [review] [rakia next 1/1] Adapt for merge of Contacts into Connection, and deletion of Requests This also resyncs constants.py, servicetest.py with my current Gabble branch. --- ... after Attachment #91673 [details], Attachment #91666 [details] have been applied.
Created attachment 91679 [details] [review] [idle next 1/1] Adapt for merge of Contacts into Connection, and deletion of Requests This also resyncs constants.py, servicetest.py with my current Gabble branch. --- Same notes as for the Rakia patch
Created attachment 91680 [details] [review] [haze next 1/5] remove use of TpContactsMixin and Contacts interface
Created attachment 91681 [details] [review] [haze next 2/5] tests: resync constants, servicetest with Gabble --- Same notes as for the Rakia and Idle patches
Created attachment 91682 [details] [review] [haze next 3/5] contact list: implement is_blocked
Created attachment 91683 [details] [review] [haze next 4/5] presence: switch to "singular" API
Created attachment 91684 [details] [review] [haze next 5/5] connection: don't explicitly advertise Requests interface
Created attachment 91685 [details] [review] [mc next 1/3] Resync constants, servicetest from Gabble --- Same caveats as the Rakia, Idle, Haze patches.
Created attachment 91686 [details] [review] [mc next 2/3] the Requests interface no longer needs to appear in Interfaces It's only a separate interface so its signals won't wake everything up.
Created attachment 91687 [details] [review] [mc next 3/3] tests: cope with Contacts being part of Connection now Also delete ContactAttributeInterfaces, which no longer exists. --- I think that's everything done, unless telepathy-farstream or Empathy need patching (I don't have the full VoIP stack set up for 1.0 yet).
Comment on attachment 91667 [details] [review] [salut next 1/5] Replace TpContactsMixin with fill_contact_attributes vfunc Review of attachment 91667 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91669 [details] [review] [salut next 2/5] constants, servicetest: partially resync with Gabble Review of attachment 91669 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91670 [details] [review] [salut next 3/5] tests: abolish Contacts interface Review of attachment 91670 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91671 [details] [review] [salut next 4/5] presence mixin: switch to singular API Review of attachment 91671 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91672 [details] [review] [salut next 5/5] don't explicitly list Requests in Interfaces Review of attachment 91672 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91673 [details] [review] [gabble next] constants: remove obsolete and duplicate lines Review of attachment 91673 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91676 [details] [review] [rakia next 1/1] Adapt for merge of Contacts into Connection, and deletion of Requests Review of attachment 91676 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91679 [details] [review] [idle next 1/1] Adapt for merge of Contacts into Connection, and deletion of Requests Review of attachment 91679 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91680 [details] [review] [haze next 1/5] remove use of TpContactsMixin and Contacts interface Review of attachment 91680 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91681 [details] [review] [haze next 2/5] tests: resync constants, servicetest with Gabble Review of attachment 91681 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91682 [details] [review] [haze next 3/5] contact list: implement is_blocked Review of attachment 91682 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91683 [details] [review] [haze next 4/5] presence: switch to "singular" API Review of attachment 91683 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91684 [details] [review] [haze next 5/5] connection: don't explicitly advertise Requests interface Review of attachment 91684 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91685 [details] [review] [mc next 1/3] Resync constants, servicetest from Gabble Review of attachment 91685 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91686 [details] [review] [mc next 2/3] the Requests interface no longer needs to appear in Interfaces Review of attachment 91686 [details] [review]: ----------------------------------------------------------------- ++
Comment on attachment 91687 [details] [review] [mc next 3/3] tests: cope with Contacts being part of Connection now Review of attachment 91687 [details] [review]: ----------------------------------------------------------------- ++
Fixed in telepathy-{glib,gabble,salut,idle,haze,rakia} 0.99.6 and MC 5.99.6.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.