gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] ✘INCOMPATIBLE API change -- add gnssid:svid


From: Gary E. Miller
Subject: Re: [gpsd-dev] ✘INCOMPATIBLE API change -- add gnssid:svid
Date: Thu, 20 Sep 2018 13:31:57 -0700

Yo Michael!

On Thu, 20 Sep 2018 21:05:18 +0100
"Michael J. Tubby B.Sc. MIET" <address@hidden> wrote:

> If we're doing a major version number bump,

Not at this time, already did one this dev cycle.

> have we sorted out the 
> differences in the GPSD version number and the JSON API version
> number issues that I reported about 7-8 months ago?

You make it sound simple.  But we have at least 4 versions.

The gpsd version only bumps on release.

gpsd only bumps binary (C) API versions once between releases.  It has
already been bumped this dev cycle.

I don't think there is a need to bump thhe JSON version.  Everything is
upwardly compatble that I know of.

Then there is the python library version.  never been checked.

>  From recollection there was confusion between which version number
> was being placed where and this meant that a program could not be
> compiled against an API version (for example in C with #defines for
> the API major/minor number)

I'm unaware of any issues  with compiling and the C API versions.
If you compeil with the current headers you are good to go.

> and check the version of the API in the
> JSON library.

Which one?  The C JSON or the Python JSON?  I think the C JSON
is good, as long as you compile with the current headers.

AFAIK there is no checking of the python lib versions.  That has
been a real problem.

> The issue here is that we need to be able to:
> 
>      1. check compiled code against stated versions in (a) the API 
> headers for the language and (b) the version info in the API messages

Compiling handles that just fine.  Use the right headers and you are
good.

>      2. check the version of GPSD on the other side of the API

Not required since the JSON API is upward compatible.  When a client
connects the gpsd versions is in the first JSON message:

{"class":"VERSION","release":"3.18~dev","rev":"release-3.17-249-gb02f5de3","proto_major":3,"proto_minor":12}

> Hence, the API needs to pass two distinct sets of version info:
> 
>      1. API version (enumerated value)
>      2. GPSD version number sourcing the API

Already does that.  See above.

Since the JSON is upwardly compatible all the client sees is loss
of some features.  Maybe nice to warn the user of a mismatch, but
mismatches are very common and not really errors.

> I've been out of the loop for a while so not sure if this has been 
> sorted.... if not then pelase can we wort it while doing a major API
> bump?

The part I'd really like to get added is a python runtime library check.

Better runtime C library checking would also be nice.  Seems common that
people often end up with multiple and incompatible libgps.so.

Otherwise, if you got an itch to send patches, please do.

RGDS
GARY
---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97703
        address@hidden  Tel:+1 541 382 8588

            Veritas liberabit vos. -- Quid est veritas?
    "If you can’t measure it, you can’t improve it." - Lord Kelvin

Attachment: pgpMn258NEqSr.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]