[Telepathy] One big repository

Jonny Lamb jonnylamb at jonnylamb.com
Mon Dec 12 02:06:28 PST 2011

On Thu, 2011-12-01 at 18:44 +0000, Jonny Lamb wrote:
> Basically, the idea is to throw the following Telepathy components into
> one repository (to rule them all):

Sjoerd, Simon, and myself had another chat about this on Friday. (We
were hoping Robert would also be present, given he was the big advocate
of the one big repository, but he was not.) Given the huge differing of
opinions, including core Telepathy contributors, I wanted to clear
things up and have more consensus on a decision for the road ahead. The
tl;dr version is: add "next" branches and break API & ABI there.

The longer version is:

→ In telepathy-glib, telepathy-spec and maybe some core connection
managers, a "next" branch will be added. (The name is by analogy to many
projects with a similar idea, such as git itself.) This branch will
contain the API and ABI breaks and during development of this branch,
API and ABI stability is not guaranteed. We'll just do said components
initially, but tp-qt and other CMs should follow suit at some point
(before next merges to master). GStreamer is reportedly doing fine with
two development branches in a similar manner.

→ In this next branch we will do some Telepathy 1.0 breakages. To start

  · telepathy-glib: Split the high and low-level libraries, as discussed
before. The low-level library will not be exposed through the high-level
one, but the high-level will (obviously) depend on the low-level one.
Enums and errors (constants) will need to be in the high-level library.
Symbols generated from the spec in the low-level library will be

  · telepathy-spec: Finally fix a lot of the low-hanging fruit and
remove deprecated interfaces. All interfaces are to be versioned.

  · Connection managers: Follow telepathy-glib and telepathy-spec
changes and drop unused or deprecated code.

→ The spec and the ABI of telepathy-glib's low-level library will break
every so often, probably after each stable branch. At these breaks,
deprecated interfaces will be removed. Old interfaces will remain
present in the spec until this point but be hidden from, say, the HTML
output, to make it cleaner. Making interfaces mandatory (as we did with,
say, Messages) is included in this break.

→ telepathy-glib will be ported to GDBus, but not immediately. As an
intial idea, the split of the library and cleanup of the spec is
targeted for GNOME 3.4 and GDBus porting is targeted at GNOME 3.6. This
means breaking high-level API and ABI will have to happen twice but I
reckon we can live with that.

That was slightly more concise than I thought it would be.

Jonny Lamb

More information about the telepathy mailing list