Planned API/ABI breaks

We would like to get in as many of the remaining necessary API breaks as possible in the 0.5.x series and have as few as possible through 1.0. A few fundamental breaks are saved for a hypothetical Folks 2.x (which we have no immediate plans to start, but will after Folks 1.x is essentially feature-complete and/or requires fundamental changes for important features).

The following groups are named after their GNOME Bugzilla milestone (the last two of which have not yet been created).

folks-0.8 milestone (after Gnome 3.2)

These are to be finished during 0.7.x, with the 0.8.0 release after Gnome 3.2

folks-2.0 milestone

These are meant to be finished during the 1.90.x series with stable releases continuing in 1.x. The final release will be 2.0.

These goals are very long-term (there are no immediate plans to move on to Folks 2), since they generally require significant API and/or behavior changes.

  • support representation of Personas before they've been committed to their backend
    • mainly intended to simplify the ugliness that is involved in tracking a details hash from the initial add_persona_from_details() call to the success/failure of adding a Persona
  • make Persona edits and potentially link/unlink batch operations
    • ie, add PersonaStore.commit()

    • this maps better to address books and high-latency services (like those behind libsocialweb)
  • treat attributes more generically, as in QtContacts

    • eg, add functions like:
      • T get_detail<T> ()

      • Set<T> get_details<T> ()

        • this may need to be a group of functions to handle both ordered and unordered details without excessive allocations
    • have the *Details classes inherit from a common ancestor
  • GPG backend and associated new interfaces (bgo#652662)

Past breaks

This is non-exhaustive - see the NEWS file.

Projects/Folks/Roadmap (last edited 2013-12-04 18:46:47 by WilliamJonMcCann)