[FOSS-GPS] Re: Integrating osm-gps-map into FoxtrotGPS

John Stowers john.stowers.lists at gmail.com
Fri May 28 02:51:35 EDT 2010


On Fri, May 28, 2010 at 3:59 PM, Joshua Judson Rosen
<rozzin at geekspace.com> wrote:
> Sander van Grieken <sander at 3v8.net> writes:
>> On Tuesday 25 May 2010 15:49:16 Joshua Judson Rosen wrote:
>> > Sander van Grieken <sander at 3v8.net> writes:
>> > >
>> > > Everything is now integrated (so also the friends, POI and photo
>> > > icons), quite a number of pre-existing bugs are fixed too, and the
>> > > few things that are not yet possible with the current osm-gps-map
>> > > (like line-drawing in distance mode) are annotated with TODOs in the
>> > > code. The code has changed much, so any work based on trunk now will
>> > > be difficult to merge later.
>> >
>> > You actually have several orthogonal things going on in that branch,
>> > which makes it difficult to merge: the biggest one is that you've
>> > integrated osm-gps-map, but you've also done some redesign of the GUI,
>>
>> No I haven't actually changed the GUI. I have replaced one toolbutton with a
>> tooltogglebutton though..
>
> Is this a zen koan? When is a change not a change? :)
>
>> > renamed variables, renamed callbacks, moved functions to different
>> > files,
>>
>> Yes. Since the statements within those callbacks totally changed
>> anyway I went ahead and gave them more intuitive names, but AFAIR
>> *only* on the callbacks that were impacted anyway.
>
> What about the variables and struct-members? :)
>
>> Maybe that makes the changes a bit harder to follow as an observer,
>
> Indeed, it makes it harder for me to review the changes, which means
> that it's more difficult to merge them :\
>
> I just can't bring myself to merge a branch that I can't review;
> of course, yours isn't anywhere near *impossible* to review, but
> it may take a little longer than either of us would like.
>
> On the up side, however: before merging this into the trunk, I'd like
> to finish up the more mundane & low-risk work (like converting the GUI
> to GladeXML--which is *almost* done), and then get an initial *release*
> out that includes the improvements accumulated so far since we diverged
> from tangoGPS (support for different gpsd versions via  libgps,
> zoom-decoupling, updated translations, misc. bug-fixes, etc.) so that
> others can have something that's straightforward to package and distribute...,
> and I'm expecting to give that all about another week right now--hopefully
> not much more than that. So, if anyone has a regression to report, or
> another set of translation-updates to contribute, now would be a good time
> to do that :)
>
> The release-notes still need to be written, also; and, since I've been
> unfortunately lax about creating ChangeLog entries to go along with
> the changes themselves..., a ChangeLog needs to be produced.
> I'm debating just adding a Makefile rule that creates a ChangeLog
> from the `bzr log' output....
>
>> but it's more easily understandable by future contributors.
>
> Oh I didn't mean to outright reject the *content* of any of your
> changes; orthogonal issues just need to be handled separately--
> you'll find that I'm a stickler for `one thing at a time',
> one issue/feature per branch/merge.
>
> Of course, that's not to say that I *never* screw it up myself....
>
>> > and made other stylistic changes to unrelated segments of code.
>>
>> Yes and 99% of it is empty lines. There was lots of that. Maybe
>> Marcus uses a portrait flatpanel? :)
>
> I have no idea. There are some weird things in there, indeed--like the
> "vaild_fix" typo that's somehow absolutely consistent everywhere,
> all over the place. That's one fix I'd like to incorporate :)
>
> But it's really the other `1%' is that's more confounding:
>
>    Unrelated behavioural changes:
>
>        * `gconf store/restore show_pois and selected POI category'
>
>        * `don't reset input fields for routing! much nicer this way'
>
>        * `fix autocenter treshold and make autocenter a gconf setting'
>
>        * `make toolbar autocenter button a toggle button.'
>
>
>    Stylistic changes(?):
>
>        * `move parse_degrees to support.[ch]'
>
>        * `move string (un)escape functions to support.[ch]'
>
>        * Changing the datatype returned by parse_degrees().
>
>        * Renaming the variables and struct-members used to store angles
>          (dropping the "_deg" suffix from "lat_deg" and "lon_deg").
>
>        * Removing hard linebreaks in some places to make lines extremely
>          long (this I *am* actually going to just outright reject...),
>          adding hard linebreaks in other places. It's not immediately
>          obvious whether you actually made any functional changes
>          along with this....
>
>
> ... and probably some more, but a full review is going to take more time
> that I have available tonight--and this list is getting to the point where
> I might as well just do the cherry-picks. ;)

While this sounds like something you guys need to agree on amongst
yourselves, allow me to make a few observations, especially as they
relate to osm-gps-map, because AFAICT some of the directions you guys
have been working in have been a little orthogonal.

This is of course based on the assumption that your goal is to make
foxtrotGPS easier to maintain by removing the map drawing code, using
osm-gps-map and delegating that work to me.

Support for zoom decoupling does not exist in osm-gps-map-0.5/6.0, so
if the goal of supporting multiple libgps versions is making it easy
to package/build for all *currently released* distros then a
foxtrotGPS that uses osm-gps-map will lack this feature initially.
Note, when I say "not buildable on current distros" I mean "not
buildable against the version of library xyz shipped on current
distros".

What are the options
 * Release from Joshua branch. This can be packaged against current
distros, difference to tangoGPS is the zoom decouple stuff, libgps
compat, translations and bug fixes. The release following this will
move to osm-gps-map 1.0.0 and so will not be buildable on current
distros (but the zoom decoupling will need to be implemented in
osm-gps-map first).
 * Release/merge from Sander branch. This can be packaged against
current distros, difference to tangoGPS is libgps, translations, bug
fixes, and osm-gps-map. The release following this will move to
osm-gps-map 1.0.0 and not be buildable on current distros (but will
gain the zoom decoupling back once added to osm-gps-map).

AFAICT this gives three options, and you can only have 2 for the first release!

 osm-gps-map <---> buildable on current distros <---> zoom decoupling

>From my experience, don't be too eager in restricting yourself to
"must build on currently released distro versions of software". Things
like PPAs solve this for users, and a developer who is not comfortable
building against uninstalled libraries is not a useful developer
anyway!

Also, don't forget one motivation for this fork was because Marcus was
unwilling to release his draconian grip on the project, accept new
features from contributors, and interact with the larger community in
a mature way. If foxtrotGPS can't be daring and open with its first
release then I suggest that is all ready getting started on the wrong
foot!

Regards,

John


More information about the FOSS-GPS mailing list