Received: by 10.90.184.5 with SMTP id h5mr1437349agf.9.1291923920119;
        Thu, 09 Dec 2010 11:45:20 -0800 (PST)
X-BeenThere: qgroundcontrol@googlegroups.com
Received: by 10.90.17.22 with SMTP id 22ls516193agq.2.p; Thu, 09 Dec 2010
 11:45:19 -0800 (PST)
MIME-Version: 1.0
Received: by 10.90.68.15 with SMTP id q15mr666582aga.37.1291923919411; Thu, 09
 Dec 2010 11:45:19 -0800 (PST)
Received: by p26g2000pra.googlegroups.com with HTTP; Thu, 9 Dec 2010 11:45:19
 -0800 (PST)
Date: Thu, 9 Dec 2010 11:45:19 -0800 (PST)
X-IP: 129.132.245.29
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de)
 AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5,gzip(gfe)
Message-ID: <1df98a4b-5395-4795-b649-2588b1f298a8@p26g2000pra.googlegroups.com>
Subject: QGroundControl is growing - new guidelines needed to avoid permanent
 software crisis
From: qgroundcontrol <pix...@switched.com>
To: QGroundControl <qground...@googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1

Hi all,

we're getting more and more code commits and more APs and projects
contribute. This is great news, but makes it harder to maintain the
application and the support of all three platforms (Windows, Linux,
MacOS). Code stability decreased lately and I'm sorry for any
inconvenience caused.

The current very open contribution model seems to hit a limit here.
Initially I thought it was my fault being not swift enough to include
all changes, reviewing code and porting to multiple platforms. I
however realized after several occasions where compilation broke, that
this is a more general challenge and that it needs a change of the
collaboration model instead of just investing more effort.

We're not the first project to encounter this: http://en.wikipedia.org/wiki/Software_crisis,
but it is the first time we have to deal with it.

As QGC is part of Unmanned Air Systems, stability is probably the main
feature. I was struggling throughout the last two weeks with new
libraries, but have finally figured out that there is no way to
support all of them at the same time on all platforms. I have compiled
a list of improvements I'd like to make over the weekend to ensure a
better long-term stability:

Stability Improvements on the maintainer side (further suggestions
welcome):

- New 3-branch architecture: master, dev and experimental. No non-
maintainer commits to master, only flight-proven commits in dev,
everything else in experimental

- 3D View back to pure OpenGL, no GLUT, no OSG. Everything else is
just not cross-platform. Could also lead to a short-term of the whole
widget until it is sorted out cleanly.

- 3D Plus View (OSG, Kinect, etc) OPTIONAL, does not compile per
default (e.g. well supported on Linux, kind of acceptable on Mac,
horrible on Windows)
- osgEarth view OPTIONAL, does not compile per default (same as
before)
- Google Earth Plugin OPTIONAL, compiled but not activated per default
(works only on Mac anyway at this point)

- Waypoint interface as-it, but NO CHANGES without mailing list
discussion and validation

- Better management of widgets and autopilots, persistent window
layout (ideas needed!)


Stability improvements asked on the developer (your) side:

- Always sync to master (bugfixes), WARNING: Currently master is not
very stable, will resolve over the weekend
- Keep also synced at least twice per week while developing yourself
to dev
- Experimental branch is for the brave, no guarantees, but edgy
features
- Strict policy for commits to dev: Only reviewed changes and
hotfixes, changes to protocol (e.g. waypoints) require previous
announcement and discussion on mailing list.
- Users with direct push access: Please do not commit to master or dev
directly, just for known-to-work-for-all-platforms-hotfixes. Push to
experimental first and check with other core developers.

Please feel free to comment or complain, the same way I'm excited
about all the new features I'm concerned as you are about stability.

-Lorenz

Copyright 2010 https://groups.google.com/forum/#!forum/qgroundcontrol