[GRASS5] GRASS development model Was: A private conversation

Rich,

On Sun, Feb 18, 2001 at 06:46:54PM -0800, Rich Shepard wrote:

Markus,

  I'm not posting this to the list for several very good reasons. I want to
discuss the progress and status of GRASS-5 with you, and not have you feel
that I'm putting you on the spot or embarrassing you in front of the
development team. But, I have some very serious concerns, and I would like
to offer some suggestions to resolve them.

Well, I don't mind to discuss below in public. So I am putting myself into
the spot now. I would like to hear other opinions if we can continue as
we do or if the GRASS development model needs to be changed/modified.
Luckily there are software engineers in the team who have much experience
from other projects.

  First, GRASS-5 has become a fun toy for folks to hack on; fiddling with
the program is the purpose. However, there are many folks like me who need
it as a tool, a means to an end. And we're not being given equal
consideration. Here is what I think is the problem: the use of CVS.

I know your opinion on GRASS development. If you think that we all
just try to destroy GRASS, you are wrong. If you think we don't use
GRASS for our (payed) work, this is wrong as well.

  If a project is being developed in one shop (such as something you and
your students are working on together), then CVS is a good way to maintain
the code in one place while letting everyone work on his or her own piece.
However, there is still one, overall program manager who makes the
decisions. And, no code is placed in the working system until it has been
thoroughly tested to ensure that it doesn't break something else. For an
international project such as GRASS, CVS is not the right tool. My
experience this weekend with the beta-11.2 is a perfect example. Not all the
pieces were there, but some were in 10.

Please note: Beta means beta. And CVS means: Continuing development, so
it might become instable from time to time.

  My recommendation is this: take all the code out of the CVS system and
maintain it yourself.

Simple question: Will you pay me for this? I have maintained GRASS 4.2.1
for many month without CVS. Development was *much* slower and *much* more
(stupid) work for me. Maintaining 1.5 million lines of code manually is
not the best way. CVS was invented to maintain large projects.

No new code gets added to a working version until it's
been tested very hard.

Well, where are the testers? Could you provide testers? If you have,
please involve them as we need more. I definitly agree that GRASS
still needs more testers.

You may decide to assign sub-managers to coordinate
major chunks (e.g., testing on different platforms, compilation/install,
data translation, vector modules, and so on), but this anarchy is hurting
the whole GRASS image. You may not see this from your position in academia
and as project manager for the 5.0 release, but we see it out here in user
land. I'm not insulting you or suggesting that you are not qualified or
capable. At least, I do not intend to.

Probably I am not qualified. However, the overall acceptance of GRASS
is much better than in past. Even if you disagree, functionality is
getting back into GRASS. Simply try beta1..6 to see of what their quality
was. We are not forcing you to use beta11.

  I suggest that rather than working on a Mac or Win port simultaneously
with everything else, you direct all efforts to fixing the existing bugs for
linux. solaris and, perhaps, irix. Make sure that all files are there to be
properly installed and run. Ensure that the standard permissions are used so
I can define a group of users and have them all work on the same mapset (but
not simultaneously).

Please provide some money to do this... I am working hard (60..70 hours per
week). Note that there is the "Real life thing (tm)", GRASS is not what
I am payed for here.

  David tells me that v.in.mif got left out of beta-11 although it was in
10.

He will have his reasons to comment for beta11. A few minutes ago he
has been activating it again in CVS (you can watch that in CVS-commit
mailing list).

He just sent it to me. My installation didn't make a
/usr/local/grass5/dev/ directory and make the fifos, or even put in the
create_fifos.sh script. No, I have a shell script called
/usr/local/grass5/dev, and it doesn't do anything useful.

Of course such bugs are annoying. I don't enjoy them, I don't try to
destroy GRASS. However, it's impossible to supervised every change.
There have been > 3000 changes last year.

  This is what I mean about a broken product -- even for a beta version
that's almost ready for release. IMO, it's because anyone and everyone can
commit new (or changed) code to the CVS tree and they haven't bothered to
test it completely. Candidly, we should never see a Beta-11.2 unless we're
Microsoft. With centralized control, we would have had a stable 5.0
production relase after only a few beta versions.

It would be interesting if you could provide support. What I get from you
are always complaints about me, the development team, the code structure
etc. Baylor doesn't commit anything to GRASS 5 (they even have CVS access as
they never asked). Perhaps you or your company can provide a part/full time
programmer to help us. That would be a really good thing.

  Please, Markus, take control back. Last year, Bruce told me that the best
estimate is 40,000-45,000 GRASS users world-wide. That's too large a user
base to get upset. Take control away from those who apparently either get
paid to hack on GRASS or haven't a life outside of GRASS hacking. The
purpose of the development process is to produce a working version for the
end user. Quickly and efficiently. Then, other platforms and other tweaks or
features can be added (say, in 6 months) after the value of the new request
has been carefully considered.

Again, we need:

- money
- testers
- programmers

Can you help us here?

Example for current hacks: The XDRIVER update to sockets will (partly
already does) allow:

- speed up (finished)
- map scale on window's top
- automated redraw after resizing
- close monitor by clicking (finished)
- fixed backing store problem with overlapping windows (finished)
- real platform independence

Shall we really miss this? Implementing such complex issues will
take some days. However, why not.

Another example: Huidae Cho has been implementing my "reclass wish":
In all past GRASS versions you could delete the parent map of
a reclassed map. In that case the reclassed map is unusable as it
is simply a table. So such operations were dangerous. Now this
cannot happen any more. At least from my point of view a good improvement.

Another example: The non-intuitive control field in NVIZ has got a compass
now. This makes view control intuitive. Why miss that?

Another example: d.zoom auto-redraws maps after zooming. We could remove
the d.rast.zoom, d.vect.zoom as d.zoom does everything now. I like that.

Another example: I have added s.in.dbf to read in dBase tables. This doesn't
break anything else.

Another example: The HTMLMAP driver was fixed to produce maps being accepted
by MS-IE5 explorer. As IE5 doesn't meet the W3 recommendations it was
necessary. The new GRASS mirrors map is a result of that:
http://www.geog.uni-hannover.de/grass/

(btw: Baylor is tiring slow with their web updates. They still have the old
map).

See more improvements here:
http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass/NEWS.html

The improvements have been done because of our experience, users
recommendations, bugs being detected, users convenience etc.
Is there really any improvement which bothers the user? Please tell me about
that, then we can revert it (thanks to CVS to provide the revert function).

What I don't understand, Rich: Why don't you use GRASS 4.x? You
like 4.x, you think it's error free (it's not) etc.
Why do you take the hassle to use GRASS 5? This I simply don't
understand.

Thanks, and please feel free to continue the dialog,

It seems we are going in circles as we have a different opinions
on GRASS development. My wish to you is: Please send more than
comments: donate money, donate programmers and testers.

Regards

Markus Neteler

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

I have read Mr. Sherpard and Markus opinions, and I would like to share
some consideration.
Mr Sherpard looks at GRASS from a strict user view, it uses GRASS as
a product and of course he wants a stable one to make its daily work.
Markus looks at it both as a product and as a development project, and
of course he considers welcomed any new feature that might be of
interest. I agree with Markus that an open source project cannot be
treated like a commercial one, and that it is not advisable to make
only one person to manage changes, for two reasons:
* too many unpaid work for just one person;
* if that person stops coordinating, the project get stucked too.

My only advice for an engineering point of view is: release often,
release stable code, release few changes at a time. From a user
point of view, GRASS 5 needed too much time to get released, and
this is because it introduces too much changes from GRASS 4 ->
nviz, fp raster, new sites format, new xdriver approach, better
portability, etc, etc. I think most of GRASS users are using GRASS
5 beta because they need some new functionality. These users could
be kept on stable releases if GRASS would be released more often,
with minor changes, and maybe Mr. Sherpard had less to complain about.
I know that bug-fixing is not much exciting, but I think feature freeze
and one or two months of bug-fix could be useful. In parallel, the new
version of GRASS could be released, this can be done if the development
team uses cvs branches.

I know that an involvment in GRASS development team would be more
appreciated, but a single advice is what I can afford to give now.
Bye
Andrea Aime

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hello everybody,

as you probably know I am with Intevation GmbH
the company providing the CVS Server for GRASS development.
Since about 18 month ago we help Markus to organise
the GRASS development process better. This is a continuing success story.

GRASS as it presented itself to me in mid 1999 was a mess, not even
having clarified license terms. The release and development process
was almost stalled due to Markus being completly overloaded with
GRASS code maintance work and the low number of contributors.

Since then we have made nice progress towards a stable GRASS 5
release and a stable development model. Much code cleanup was done.
The license clarified to be free software, non-compliant code
removed. The development process is open and attracted qualified
developers from all over the world. Release frequencies of beta code
has gone up, so has the overal stability and code quality.
All this is unthinkable without the free software development
process we have now. And the best is, it is also a lot more fun for
everybody to participate.

I am happy to have these discussions about the development model,
because we are open to any suggestion and I think most developers
are proud about how it is working right now.

Of course there is a room for improvement:

  We need a more formalised procedure for testing GRASS
  releases. (And we need more testers!)
  Without testers there is no chance for a fast release
  of a version which can be called stable.

  We would need another release manager for the stable
  code branch, which assists Markus in verifing that only
  critical bugs are fixed and go in the tarball.

  We need more alpha testers.

Of course I agree with most of Markus comments in his last mail.
Anybody who thinks he can help us with GRASS development or can do
better is free to try, so only constructive critism is helpful.

On Mon, Feb 19, 2001 at 12:20:16PM +0100, Andrea Aime wrote:

Mr Sherpard looks at GRASS from a strict user view, it uses GRASS as
a product and of course he wants a stable one to make its daily work.

My only advice for an engineering point of view is: release often,
release stable code, release few changes at a time.

True, but CVS does that for you already.
We just need somebody to actually recheck all changes.
Most developers are willing to work hard to fix bugs, but sometimes
they still introduce another, fixing three others.

From a user point of view, GRASS 5 needed too much time to get
released, and this is because it introduces too much changes from
GRASS 4 -> nviz, fp raster, new sites format, new xdriver
approach, better portability, etc, etc.

True.
Right now Markus cannot handle the load to maintain a development
and stable version of GRASS 5. If we do not keep developers
motivated we will miss very important bug fixes and additional
features.

  Bernhard
--
Professional Service around Free Software (intevation.net)
The FreeGIS Project (freegis.org)
Association for a Free Informational Infrastructure (ffii.org)
FSF Europe (fsfeurope.org)

List,

I'm speaking (briefly, I hope) primarily from a user's point of view. I
have to agree with Rich on several points. At the same time I recognize
the difficulty of focusing a volunteer effort to meet a goal. I think
Markus is doing a great job and the work of other developers is wholly
appreciated. The Grass effort needs only more and more contributers.

That said, I think we need Grass5.0-stable. A lot of the changes that
are being committed to Grass5.0 right now are needed improvements, but
they *don't* go toward stabilizing Grass 5 or to fixing the installation
process. They delay the impending release of Grass 5.0-stable.

If source needs to be changed to stabilize the existing capabilites of
Grass 5.0 then it needs to be done now so the stable version can be
released. If source is being changed to improve on the existing
capabilites, it needs to be done for 5.1 and left out of 5.0.

In the mean time, you have a mature beta on the internet that still
doesn't install correctly. Potential users are going to download the
beta, then abandon Grass because they can't even get it to install and
initialize correctly. Once they've tried it and it's failed they may
never come back.

Roger Miller
Lee Wilson and Associates

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Greetings,

I just wanted to take a moment to thank the GRASS5 development team for their excellent work.

I have GRASS5 running on 7 machines, 7 days a week, 24 hours a day performing _real_ work.

I would not be able to start my new 3dTopos.com business without GRASS5.

Oh, and it's running on Mac OS X, one of the platforms that was suggested not to support anymore.

KEEP UP THE WORLD-CLASS WORK!! I MEAN IT! YOU GUYS ROCK!!!

THANKS,
Jeshua Lacock
Cartographer/Owner
http://SierraMaps.com
http://3dTopoMaps.com
Telephone: (760) 935-4481

---------------------------------------- If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'