Change PostalAddress.types to be a Set<string>
[platform/upstream/folks.git] / NEWS
1 Overview of changes from libfolks 0.5.0 to libfolks 0.5.1
2 =========================================================
3
4 Bugs fixed:
5 * Bug 645388 — Group channels are leaked
6 * Bug 647562 — Don't crash on duplicate group channels
7 * Bug 647121 — Crash in individual_store_contact_sort at
8   empathy-individual-store.c line 1387
9 * Bug 645684 — Implement Iterator on LinkedHashSet
10
11 API changes:
12 * LinkedHashSet.list_iterator() is now disallowed (causes an assertion failure)
13 * LinkedHashSet.iterator() now returns a BidirIterator instead of just an
14   Iterator
15 * ImDetails.im_addresses is now of type MultiMap<string, string>
16 * WebServiceDetails.web_service_addresses is now of type
17   MultiMap<string, string>
18 * Removed LinkedHashSet in favour of Gee.HashSet
19 * Backend.persona_stores is now of type Map<string, PersonaStore>
20 * GroupDetails.groups is now of type Set<string>
21 * FieldDetails.parameters is now of type MultiMap<string, string>
22 * FieldDetails.get_parameter_values() now returns type Collection<string>
23 * FieldDetails.extend_parameters() now takes type MultiMap<string, string>
24 * PostalAddressDetails.postal_addresses is now of type Set<PostalAddress>
25 * EmailDetails.email_addresses is now of type Set<FieldDetails>
26 * PhoneDetails.phone_numbers is now of type Set<FieldDetails>
27 * UrlDetails.urls is now of type Set<FieldDetails>
28 * BackendStore.enabled_backends now has type Map<string, Backend>
29   - The corresponding C function folks_backend_store_dup_enabled_backends()
30     has been renamed folks_backend_store_get_enabled_backends(), and no longer
31     returns an owned variable.
32 * Individual.personas now has type Set<Persona>
33 * Individual.personas_changed now uses Set<Persona>-typed parameters
34 * PersonaStore.personas_changed now uses Set<Persona>-typed parameters
35 * IndividualAggregator.individuals_changed now uses
36   Set<Individual>-typed parameters
37 * IndividualAggregator.link_personas() now takes a Set<Persona>
38 * IndividualAggregator.get_all_potential_matches() now returns a
39   Map<Individual, Map<Individual, MatchResult>>
40 * IndividualAggregator.get_potential_matches() now returns a
41   Map<Individual, MatchResult>
42 * IndividualAggregator.individuals now has type Map<string, Individual>
43 * PersonaStore.personas now has type Map<string, Persona>
44 * LocalIdDetails.local_ids now has type Set<string>
45 * NoteDetails.notes now has type Set<Note>
46 * RoleDetails.roles now has type Set<Role>
47 * PotentialMatch.known_email_aliases now has type Set<string>
48 * PostalAddress.types now has type Set<string>
49
50 Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
51 =========================================================
52
53 Major changes:
54 * Add support to change primary (writeable) store either via
55   GConf or an env variable (bug 645441).
56 * Bumped Vala dependency to 0.12.0 for bug #646345
57
58 Bugs fixed:
59 * Bug 644968 - _update_phone_numbers() needs to create copies
60   of each List<FieldDetails>
61 * Bug 644966 - _update_emails () needs to create copies of each
62   List<FieldDetails>
63 * Bug 644527 - Add a Tracker backend
64 * Bug 645430 - folks-inspect: Use LinkedHashSet to access im-addresses
65 * Bug 645411 - folks-import segfaults on startup
66 * Crasher when removing Personas
67 * Crasher when reconnecting a Telepathy account
68 * Bug 645680 — Use random integer IDs for Kf.Personas
69 * Bug 645475 — Linker warnings for Tracker backend tests
70 * Bug 645570 — Fix checks for empty and equal StructuredNames
71 * Bug 645989 — Ensure add_persona_from_details handles the basic attribute
72 * Bug 645413 — Write support for Tracker
73 * Bug 645441 — Mechanism to specify primary backend
74 * Bug 638280 — Add a libsocialweb backend
75 * Deal with duplicated phones/e-mails in Tracker
76 * Bug 646944 — Fix libsocialweb updates and removals of contacts
77 * Bug 644867 — add interface for linkable web service contact UIDs
78 * Bug 647168 — print the "web-service-addresses" property correctly
79 * Bug 646831 — Setting an existing phone number or e-mail address on a
80   Trf.Persona fails
81 * Bug 647298 — folks-inspect gets SIGSEGV when trying to auto-complete
82   parameters
83 * Bug 646948 — Support for potential matches
84
85 API changes:
86 * Add equal () to StructuredName
87 * Add detail_key () along with an enum PersonaDetail to PersonaStore
88   which together define the basic attributes that should be supported
89   by add_persona_from_details ().
90 * Add public primary_store to IndividualAggregator
91 * Add LocalIdDetails interface for linking Personas based on local address book
92   IDs (such as for the Tracker backend Personas)
93 * Add WebServiceDetails interface for linking Personas based on web service
94   accounts (such as for the libsocialweb backend Personas)
95 * Add PotentialMatch class and IndividualAggregator.get_potential_matches() and
96   IndividualAggregator.get_all_potential_matches() to suggest Individuals that
97   may match the given Individual or all potential matches, respectively.
98
99 Overview of changes from libfolks 0.3.6 to libfolks 0.4.0
100 =========================================================
101
102 Bugs fixed:
103 * Bug 642351 — BACKEND_STORE_KEY_FILE format should support a wildcard entry
104 * Bug 643241 — _update_urls () needs to create copies of each
105   List<FieldDetails>
106 * Bug 643247 — Folks needs C API documentation
107 * Bug 643201 — folks-inspect can't handle properties which are
108   List<FieldDetails>
109 * Bug 642866 — tp-lowlevel leaks TpChannel
110 * Bug 642861 — FolksLinkedHashSet still alive when exiting Empathy
111 * Bug 642493 — Folks needs API for specifying a contact's organisation
112 * Bug 642500 — Folks needs API for specifying a contact's birthday
113 * Bug 642501 — Folks needs API for attaching notes to a Contact
114 * Bug 641210 — Add interface for postal addresses
115 * Bug 643956 — Use the correct signal name for postal addresses
116 * Bug 643954 — Add to_string () to PostalAddress class
117 * Bug 643955 — Add to_string () to RoleOwner class
118 * Bug 643957 — Deal handle birthday and postal-addresses.
119 * Bug 644457 — Handle structured names
120 * Bug 644165 — An individual's avatar shouldn't be replaced by a null avatar
121
122 API changes:
123 * Add RoleDetails interface
124 * Add BirthdayDetails interface
125 * Add NoteDetails interface
126 * Add PostalAddressDetails interface
127 * Rename Aliasable -> AliasDetails
128 * Rename AvatarOwner -> AvatarDetails
129 * Rename Emailable -> EmailDetails
130 * Rename Favouritable -> FavouriteDetails
131 * Rename GenderOwner -> GenderDetails
132 * Rename Groupable -> GroupDetails
133 * Rename IMable -> ImDetails
134 * Rename NameOwner -> NameDetails
135 * Rename Phoneable -> PhoneDetails
136 * Rename PresenceOwner -> PresenceDetails
137 * Rename Urlable -> UrlDetails
138
139 Overview of changes from libfolks 0.3.5 to libfolks 0.3.6
140 =========================================================
141
142 This is just a repackaging of libfolks 0.3.5 with some documentation comment
143 version numbers fixed.
144
145 Overview of changes from libfolks 0.3.4 to libfolks 0.3.5
146 =========================================================
147
148 Major changes:
149 * Various API breaks and improvements, especially in the IndividualAggregator
150 * Add various new interfaces: NameOwner, FieldDetails, Urlable, GenderOwner,
151   Phoneable and Emailable
152
153 API changes:
154 * Add NameOwner interface
155 * Add FieldDetails interface
156 * Add Urlable interface
157 * Add GenderOwner interface
158 * Add Phoneable interface
159 * Add Emailable interface
160 * Add Tpf.Persona.is_in_contact_list
161 * Rename the URLable interface to Urlable
162 * Take a PersonaStore in IndividualAggregator.add_persona_from_details
163 * Remove IndividualAggregatorError.STORE_NOT_FOUND
164 * Rename the getter for BackendStore.enabled_backends from
165   folks_backend_store_get_enabled_backends() to
166   folks_backend_store_dup_enabled_backends()
167 * Rename BackendStore.get_backend_by_name() to .dup_backend_by_name()
168
169 Bugs fixed:
170 * Bug 640901 — Allow it to be determined whether a user Tpf.Persona is in the
171   contact list
172 * Bug 641780 — Incorrect C function names for URLable interface
173 * Bug 629078 — Folks needs a full API review to take advantage of our
174   compatibility break in 0.2.x
175 * Bug 642036 — No way to pass a message when adding a contact
176
177 Overview of changes from libfolks 0.3.3 to libfolks 0.3.4
178 =========================================================
179
180 Major changes:
181 * Add folks-inspect tool
182 * The use of the new LinkedHashSet type in the API may make libgee a requirement
183   for some clients (to take full advantage of its class lineage).
184
185 API changes:
186 * New type: LinkedHashSet, similar to Gee.HashSet, but ordered.
187 * IMable.im_addresses is now a mapping of string to LinkedHashSet.
188 * Rename the HasAvatar interface to AvatarOwner
189 * Rename the HasPresence interface to PresenceOwner
190
191 Bugs fixed:
192 * Bug 637240 — libfolks-telepathy.so exports private symbols
193 * Bug 638311 — Add a HACKING file that outlines development policies and
194   coding style
195 * Bug 629083 — Review coding conventions in folks
196 * Bug 629075 — Add folks command line application
197 * Bug 638609 — libfolks hard-codes backend names for debugging
198 * Bug 639195 — Print stack traces for failed tests to improve remote
199   debugging
200 * Bug 639113 — Add static aggregation tests
201 * Bug 639742 — Logger service unavailable in make check
202 * Bug 640213 — Add tests for LinkedHashSet
203 * Bug 627397 — Use better interface names
204
205 Overview of changes from libfolks 0.3.2 to libfolks 0.3.3
206 =========================================================
207
208 Major changes:
209 * Fix some minor leaks
210 * Add support for building gtk-doc documentation for the C API
211 * Fix some related documentation problems
212 * Fix some Vala problems caused by differences between Vala 0.10 and 0.12
213 * Finish off renaming interfaces (this is an API break; see below)
214 * Don't trust personas from IRC
215 * Handle invalid IM addresses more gracefully than with an assertion failure
216 * Fix a linking problem with the user's individual when going offline which
217   could lead to infinite loops
218
219 API changes:
220 * Rename the Avatar interface to HasAvatar
221 * Rename the Presence interface to HasPresence
222 * Rename the Favourite interface to Favouritable
223 * Add IMableError
224 * Throw IMableError from IMable.normalise_im_address()
225
226 Bugs fixed:
227 * Bug 635178 — Leak in
228   folks_tp_lowlevel_connection_open_contact_list_channel_async
229 * Bug 635649 — autopoint fails to run
230 * Bug 635703 — Leak in connection_get_requestable_channel_classes_cb
231 * Bug 635823 — [PATCH] telepathy test not linking against GIO
232 * Bug 636251 — Fails to add contact
233 * Bug 629526 — Generate gtk-doc documentation
234 * Bug 627397 — Use better interface names
235 * Bug 636714 — Assertion failure on invalid IM address
236 * Bug 637136 — Infinite loop when disconnecting accounts
237
238 Overview of changes from libfolks 0.3.1 to libfolks 0.3.2
239 ==========================================================
240
241 Major changes:
242 * BackendStore.load_backends() now (un)loads backends which have been
243   (dis|en)abled since the last call
244 * FOLKS_BACKEND_DIR has been replaced by FOLKS_BACKEND_PATH. It accepts any
245   number of files and directories, separated by :
246 * Significantly clean up the build system
247
248 API changes:
249 * Added BackendStore.prepare() and BackendStore::is-prepared
250 * Add BackendStore.enable_backend().
251 * Add BackendStore.disable_backend().
252 * Add BackendStore.unprepare().
253 * Remove casting convenience methods on Individual (casting isn't hard)
254 * Change the visibility of the setters of PersonaStore.type_id,
255   PersonaStore.display_name, PersonaStore.id, Backend.name,
256   Backend.persona_stores and Persona.linkable_properties. This removes the
257   corresponding C setter methods which should never have been exposed
258 * Remove Tpf.PersonaError
259 * Remove the exception from the Tpf.Persona constructor
260
261 Bugs fixed:
262 * Bug 629081 — Add API to allow specific backends to be disabled
263 * Bug 629862 — Add tests for the key-file backend
264 * Bug 628883 — Add localisation support
265 * Bug 633718 — Make the Folks releases buildable without vala, valadoc, or
266   g-i
267 * Bug 633080 — Crash when disconnecting twice
268
269 Overview of changes from libfolks 0.3.0 to libfolks 0.3.1
270 ==========================================================
271
272 Major changes:
273 * Tpf.Persona.contact is now guaranteed to have the client type feature
274
275 API changes:
276 * Add the PersonaStore:can-add-personas property
277 * Add the PersonaStore:can-remove-personas property
278 * Add the PersonaStore:can-alias-personas property
279 * Add the PersonaStore:can-group-personas property
280 * Make Individual implement the IMable interface
281
282 Bugs fixed:
283 * Bug 630431 — notify::alias is never emitted
284 * Bug 631864 — Crash when empathy disconnects
285 * Bug 632096 — build failure: contact-retrieval.o: undefined reference to
286   symbol 'gee_abstract_collection_add'
287 * Bug 632163 — Folks key-file backend needs a way to point to a specific
288   .ini file
289 * Bug 632564 — assertion `EMPATHY_IS_CONTACT (contact)' failed in
290   individual_store_contact_sort
291
292 Overview of changes from libfolks 0.1.17 to libfolks 0.3.0
293 ==========================================================
294
295 Major changes:
296 * Fixed some linking problems
297 * Added some missing documentation
298 * Fixed build problems introduced by switching to gobject-introspection 0.9.6
299   (i.e. GIR format 1.2)
300 * Bumped telepathy-glib dependency to 0.11.16
301 * Bumped Vala dependency to 0.10.0
302 * Bumped gobject-introspection dependency to 0.9.6
303 * Ensured IM addresses are normalised before being compared
304 * Made the folks-import build optional through a configure argument
305 * Added support for a “self” individual
306 * Added support for generating and installing Devhelp format documentation
307 * BackendStore.load_backends and the prepare() functions are now idempotent
308 * Tpf.Persona.contact is now guaranteed to have the avatar token and data
309   features
310 * Tpf.Persona.contact is now guaranteed to have the capabilities feature
311
312 API changes:
313 * Added IMable.normalise_im_address()
314 * Renamed Groups interface to Groupable
315 * Renamed Alias interface to Aliasable
316 * Removed BackendStore constructor
317 * Added BackendStore.dup()
318 * Added BackendStore::enabled-backends
319 * Added Individual::is-user
320 * Added Persona::is-user
321 * Added IndividualAggregator::user
322 * Added PersonaStoreError.UNSUPPORTED_ON_USER
323 * Added {IndividualAggregator, PersonaStoreError}.STORE_OFFLINE, used by the
324   respective add_persona_from_details() functions
325
326 Bugs fixed:
327 * Bug 629452 — [Patch] Add missing gio linking for import-tool
328 * Bug 626008 — Add @since lines to all symbols
329 * Bug 629311 — Folks should normalize IDs written to the writable backend
330 * Bug 629644 — Key file backend cannot be loaded because of linking problems
331 * Bug 629666 — libfolks should not hard autodetect libxml
332 * Bug 628970 — Folks API needs a way to determine whether a specific type of
333   PersonaStore is available
334 * Bug 629096 — Add a library init function
335 * Bug 627402 — Support marking FolksPersonas as "me"
336 * Bug 629642 — individuals-changed emitted in the wrong order
337 * Bug 629643 — do not fall back to the id if alias is empty
338 * Bug 629006 — PersonaStore should gracefully handle offline Persona change
339   attempts
340 * Bug 629331 — BackendStore.load_backends and the prepare() functions should
341   be idempotent.
342 * Bug 629008 — Add a test for Persona additions
343 * Bug 630347 — Avatars are always NULL
344
345 Overview of changes from libfolks 0.1.16 to libfolks 0.1.17
346 ===========================================================
347
348 Major changes:
349 * Added a basic test suite
350 * Cleaned up the build system
351 * Ensured the public libraries' VAPI files are distributed and installed
352 * Prevented the key-file from being saved unnecessarily
353 * Fixed multi-byte character handling in the key-file backend
354 * Ensured account removal and invalidation is handled in the Telepathy backend
355 * Prevented a hang when creating relationships.ini in certain situations
356 * Added a folks-import tool to import meta-contact data from Pidgin; this adds
357   a dependency on libxml
358
359 API changes:
360 * Added PersonaStore.flush()
361
362 Bugs fixed:
363 * Bug 628930 — folks crahses empathy on relationships.ini read
364 * Bug 629082 — Empathy crashes when toggling "Ignore SSL certificate errors"
365   checkbox
366 * Bug 628853 — hangs if there's no relationships.ini file
367 * Bug 629084 — Add a folks-import tool
368
369 Overview of changes from libfolks 0.1.15 to libfolks 0.1.16
370 ===========================================================
371
372 Major changes:
373 * Added more debugging output
374 * Fixed various small outputted code bugs
375 * Fixed problem where key file groups would be overwritten in some situations
376 * Fixed various signal emission problems
377 * Prevented changes to Personas' properties from being propagated back up to the
378   Individuals
379 * Limited libgee dependency to < 0.7 due to API changes in libgee
380 * Added a FOLKS_DISABLE_LINKING environment variable to disable linking (for
381   debugging purposes)
382
383 Bugs fixed:
384 * Bug 628108 — Favorite contacts are not save any more
385 * Bug 628294 — Some contacts appear to be linked together while they shouldn't
386 * Bug 628305 — Signal removal of Individuals containing untrusted Personas
387 * Bug 628131 — error message when trying to link ICQ with jabber
388 * Bug 628343 — Add an environment variable to disable linking
389 * Bug 628335 — Assertion error with master
390
391 Overview of changes from libfolks 0.1.14.1 to libfolks 0.1.15
392 =============================================================
393
394 Major changes:
395 * Fixed various build problems
396 * Ensured duplicate entries don't appear in various sets
397 * Made gobject-introspection dependency explicit
398 * Limited libgee dependency to <= 0.5.2 due to API changes in libgee
399 * Reworked some of the Individual internals to make notifications more efficient
400 * Added the concept of an Individual's “trust level”
401 * Changed alias fallbacks to fall back to a display ID instead of a UID
402 * Added support for storing aliases in the key-file backend and use them in
403   preference to aliases from other Personas in an Individual
404
405 API changes:
406 * Added Individual:personas-changed
407 * Added TrustLevel enum
408 * Added Individual::trust-level
409 * Implemented Alias on Kf.Persona
410
411 Bugs fixed:
412 * Bug 627314 — folks cannot be install in gentoo sandbox
413 * Bug 627506 — Require gobject-introspection
414 * Bug 626725 — Add an Individual.personas_changed signal
415 * Bug 627968 — Add Individual.trust_level property
416 * Bug 626578 — Use vala's vala.m4 to check for telepathy-glib(.vapi)
417 * Bug 626410 — contacts show up with a weird alias
418 * Bug 627508 — Store alias and groups in the key-file backend
419 * Bug 627898 — Fails to install with -j4
420
421 Overview of changes from libfolks 0.1.14 to libfolks 0.1.14.1
422 =============================================================
423
424 Major changes:
425 * Bumped Vala dependency to 0.9.6
426 * Fixed some more warning spew
427
428 Overview of changes from libfolks 0.1.13 to libfolks 0.1.14
429 ===========================================================
430
431 Major changes:
432 * Changed Vala detection code to use the correct macro
433 * Bumped Vala dependency to 0.9.5
434 * Removed some more message spew
435 * Changed tp-lowlevel Vala bindings to be generated using gobject-introspection
436 * Added optional dependency on gobject-introspection 0.6.7
437
438 Overview of changes from libfolks 0.1.12 to libfolks 0.1.13
439 ===========================================================
440
441 Major changes:
442 * Added the concept of “linkable properties”
443 * Added the IMable interface
444 * Added the concept of persona store “trust”
445 * Added a writeable key-file backend
446 * Added linking support to the IndividualAggregator
447 * Tidied up ID handling in the backends
448 * Warn if a backend's MIME type could not be determined, notifying the user if
449   libfolks can't load backends due to shared-mime-info not being installed
450 * Hint to clients the Individual replacing a removed Individual (if any)
451 * Exposed Telepathy contacts' IM addresses using the IMable interface
452 * Fixed some build and dependency issues
453 * Bumped telepathy-glib dependency to 0.11.11 and dropped dependency on
454   telepathy-vala
455 * Added the concept of “writeable” PersonaStores and use this concept to prevent
456   properties being synchronised between PersonaStores unnecessarily (and
457   potentially even destructively)
458
459 API changes:
460 * Added Persona::linkable-properties
461 * Added IMable interface
462 * Added PersonaStoreTrust enum
463 * Added PersonaStore::trust-level
464 * Added Persona.LinkablePropertyCallback()
465 * Added Persona.linkable_property_to_links()
466 * Added Persona.build_uid()
467 * Added Persona.split_uid()
468 * Added Persona::display-id
469 * Added PersonaStore::display-name
470 * Added replacement_individual parameter to Individual:removed
471 * Implemented IMable on Tpf.Persona
472 * Added IndividualAggregatorError.NO_WRITEABLE_STORE
473 * Added IndividualAggregator.link_personas()
474 * Added IndividualAggregator.unlink_individual()
475 * Added PersonaStore::is-writeable
476
477 Bugs fixed:
478 * Bug 625830 — Adding an existing contact to the tp backend results in bogus
479   warnings
480 * Bug 626108 — Defining XDG_DATA_DIRS prevents backends from being loaded
481
482 Overview of changes from libfolks 0.1.11 to libfolks 0.1.12
483 ===========================================================
484
485 Major changes:
486 * Added debug flags support using the FOLKS_DEBUG environment variable
487 * Removed various bits of message and warning spew
488 * Bumped Vala dependency to 0.9.4
489 * Ensured connections which are ready as soon as they're connected are handled
490   correctly
491 * Versioned the installed backends using the main library's libtool version
492
493 Bugs fixed:
494 * Bug 625815 — No contat showed in the contact list
495
496 Overview of changes from libfolks 0.1.10 to libfolks 0.1.11
497 ===========================================================
498
499 Major changes:
500 * Moved various bits of preparation code out into async prepare() methods to
501   avoid race conditions on startup
502 * Reset TpfPersonaStore state when going offline
503 * Made several methods async which could potentially require it in future
504 * Added error throws to various functions which could potentially fail in future
505
506 API changes:
507 * Added PersonaStore.prepare()
508 * Added Backend.prepare()
509 * Removed error thrown from Backend constructor
510 * Added IndividualAggregator.prepare()
511 * Changed return type of Presence.is_online() from uint to int
512 * Made IndividualAggregator.remove_individual() async
513 * Made PersonaStore.remove_persona() async
514 * Added an error throw to BackendStore.load_backends()
515 * Added an error throw to IndividualAggregator.prepare()
516 * Added an error throw to IndividualAggregator.remove_individual()
517 * Added an error throw to IndividualAggregator.remove_persona()
518 * Added an error throw to PersonaStore.remove_persona()
519 * Made Groups.change_group() async
520 * Made Groups:group-changed async
521
522 Overview of changes from libfolks 0.1.9 to libfolks 0.1.10
523 ==========================================================
524
525 Major changes:
526 * Fixed various memory and reference leaks
527 * Lots of build system improvements
528 * Added a libtool version to the installed libraries
529
530 Initial release of libfolks 0.1.9
531 =================================
532
533 Major changes:
534 * Move to GNOME infrastructure