Splitting the repos...

Ethan Blanton elb at pidgin.im
Thu Apr 7 18:53:53 EDT 2016

David Woodhouse spake unto us the following wisdom:
> I'd note that Evolution has a similar split, between Evolution the GUI
> and Evolution-Data-Server the back end. It *theoretically* allows
> separate and parallel development. In practice it's a complete fiction.
> Evolution and EDS versions are released in lockstep and a given
> Evolution version will have a dependency on the *precisely* matching
> version of EDS, because no attempt is really made at maintaining a
> stable API/ABI and keeping track of when the dependencies needs to
> change.
> There's a lot more to a *meaningful* split than just separating
> different directories out into different repositories, and it hasn't
> been clear from the rest of the discussion that this is *really* going
> to happen. Which makes me suspect that the split isn't going to be
> stunningly productive.

Agreed.  However, I think we can and would actually allow this split;
we have developed a fairly consistent practice of following useful
versioning and compatibility practices, and I see no reason for that
to end just because we restructure things.

I suspect major releases would indeed continue to be in lockstep.

> If we really *are* talking about separating out libpurple and other
> bits and letting them develop at their own pace though, then that seems
> reasonable. Just don't underestimate the work involved. And let's have
> a proper discussion about library and symbol versioning, etc.

We already do this.  We follow the usual versioning rules that a minor
release may contain new functionality but may not change or break
existing functionality, etc.

> I'd *strongly* suggest that we finally come into the 21st century and
> allow C99 structure initialisers in the protocol plugins though, if
> they're going to be developed out-of-step with libpurple. That whole
> "count the NULLs" crap from the 1990s is a constant pain and it
> *already* leads to problems, which are only going to get worse.

We already allow this.  I believe it is used in quite a few places in
our sources.  We have not pushed them everywhere, though, and most of
the in-tree prpls predate good C99 support.

We allow (and even encourage) much of C99.  We do not allow declaring
variables in the middle of a block of code, // comments, and a few
other things.

There may be some things that are problematic for Windows users, as
Microsoft hasn't yet discovered 1999.  I don't personally care about
this, but it may cause some users angst.


More information about the Devel mailing list