On Wed, May 6, 2015 at 7:48 AM, Jonathan Maw <jonathan.maw@codethink.co.uk> wrote:
On Wed, Apr 15, 2015 at 07:51:10AM -0700, Kevron Rees wrote:
> On Apr 15, 2015 6:44 AM, "Jonathan Maw" <jonathan.maw@codethink.co.uk>
> wrote:
> >
> > Hi all,
> >
> > In my experiences from adding the Automotive Message Broker to Baserock, I
> > have noticed a few things:
> >
> > * It does not build with newer versions of json-c because json-c changed
> its
> >   name (i.e. it used to be included via <json/json.h>, and it's now
> included
> >   via <json-c/json.h>).
> > * ambctl has dependencies that prevent it running, but are not mentioned
> during
> >   build-time.
> >   - pygobject-2.0
> >   - dbus-python
> > * Also, as mentioned previously, pygobject-2.0 is not compatible with
> later
> >   versions of pygobject (instead of 'import gobject', you need to do
> >   'from gi.repository import gobject').
> >
> > I am aware that https://github.com/tripzero/automotive-message-broker/ has
> > a branch that makes it work with later versions of pygobject.
> >
> > Would there be objections to me submitting patches that:
> > * Make it work with newer versions of json-c
> >   - Would there be objections to this making it not work with older
> versions
> >     of json-c?
> Iirc, json-c is only still used in a few plugins.  A patch to change these
> plugins to use picojson would be preferable.  Short of that I would accept
> a patch to 0.14 and master to update to the latest version of json-c.
> > * Make the build fail if the system does not have pygobject and
> dbus-python?
> >
> There is already a patch on 0.13 to use the new gi.repository.  We could
> make the build fail if this requirement and dbus-python are not met.
> Regards,
> Kevron

Hi Kevron,

Sorry for the long delay between mails, I've been side-tracked by various
other things.

I'm a bit confused by the branches "0.14" and "master", since my usual
expectation of "master" being for new features and bugfixes, while "0.14"
is a stable branch that only gets bugfixes appears to be incorrect.

I am also uncertain which branch would be "recommended" as a branch to follow
for all the new features as they appear - "master" appears to lack certain
new features (using latest pygobject, for example), while "0.14" will
eventually be replaced with a "0.15" branch.

Master is what you should track for new features.  It does look like master is missing the new GObject patch.  I probably forgot to submit the patch to master.  I will add this patch to my latest pull request (#58)  Are there any other features/fixes you expect on master that are missing?

Can you explain to me the philosophy behind these branches?

Master is the development branch and is considered unstable.  Topic branches, like 0.14 are created when the version is considered "beta"-quality ie, features are completed but there may be some bugs.  Within the topic branches, take into account the project version number (ambd -v).  The version numbering scheme is roughly this:

0.xx.8yy - Alpha quality.  Features still in development. ie 0.15.801
0.xx.9yy - Beta quality.  Feature generally complete.  Only bug fixes allowed with possibly some exceptions for features. Example: 0.14.902
0.xx.0 - Final release.  ie 0.13.0
0.xx.z - Bug fix release.  Major bugs or security flaws may be back-ported to released versions -often by request. ie 0.13.2

Hope that helps!