[GRASS-dev] suggested temporary feature freeze for wxGUI
Michael Barton
michael.barton at asu.edu
Sat Sep 6 16:47:41 EDT 2008
Seeing all the recent bug reports coming in for the new wxPython GUI
is frustrating...not because of the testing or reports, which are very
good to have, but because almost all of these features worked
previously.
This is a function of the complexity of the GUI. Unlike command
modules, it involves a very large amount of code that is very tightly
interlinked in sometimes not very obvious ways--even to those of us
who are writing it. A feature or even a bug fix added in one place can
cause a cascade of effects elsewhere and break something that seems
completely unrelated.
At the moment, the GUI is pretty complete in giving a user interface
to all of GRASS. So I suggest that this is a good time to stop adding
new things and try to make sure all the things we already have work
well. Obviously we should keep accumulating ideas for enhancements and
new features, but simply try to resist the temptation to try to
implement them.
It seems to me that we need to focus especially on 3 areas at the
moment:
1) basic bug fixing. These are things that throw an error or do not
work as designed.
2) increasing robusticity. This is trickier, but I'm thinking of
situations where a feature works fine under normal circumstances, but
can fail or give an error under abnormal circumstances like repeated
mouse clicking, odd combinations of actions, etc. These are harder to
find and fix. But we need to make the GUI as unbreakable as possible.
Some of this is adding more error traps so that abnormal circumstances
may break something, but will do so gracefully.
3) multi-platform support. Somethings worked (and still work) fine on
my Mac or Martin's Linux flavor, but don't work so well on other
systems. Some important pieces like the digitizer and new nviz modules
do not even compile on Mac and Windows. It's been an amazing piece of
work to get to the point where we have advanced capabilities like
these functional at all. But we now need to make them available to all
GRASS users.
Doing these things will give us a dependable and very usable UI for
GRASS. This is very important if we want to make this a viable
alternative GUI for GRASS 6.4 and the only one for GRASS 7.
After this work, I suggest that we take a look at some of the
underlying algorithms for getting maps rendered and displayed, given
the rewrite of the display architecture going on now for GRASS 7. Some
of this has already been started and it may turn out that only tweaks
are needed. But we should take a hard look at this before going on to
make sure that this is a solid system down the line.
Then we can start in on the backlog of enhancement and feature
requests. But we should implement them very carefully and with a lot
of testing from now on to avoid breaking this increasingly complex code.
With a busy academic year already starting, I'm finding much less time
to work on the GUI and I suspect that Martin's term is nearing
beginning too. So the less developer time available, also makes this a
good time for getting caught up with where we are now.
I'd like to appeal for some help from you folks especially for the
cross-platform implementation issues. Most of these are C, C++, or
compilation related. These are areas where I do not have expertise to
do much. Martin has done a fantastic job of adding some sophisticated
new modules--especially for digitizing and multi-dimensional
visualization. It would be great if someone(s) could help get the
cross-platform issues of these modules worked out.
Cheers
Michael
More information about the grass-dev
mailing list