[GRASS5] What's holding 5.3.0 release?

... the subject says all:

What's holding the 5.3.0 release?

The last month I received several comments telling that the current
situation of GRASS development for new programmers is confusing.
They see "5.0.3 stable" while most recommendations are "please use
5.3, it's much better and more widely tested".

In my opinion a 5.3.0 release is urgently needed.
And it should not be called "unstable" according to the
odd minor release number as it would be too discouraging to
stimulate new development.

Markus

On Fri, 30 Jan 2004, Markus Neteler wrote:

... the subject says all:

What's holding the 5.3.0 release?

The last month I received several comments telling that the current
situation of GRASS development for new programmers is confusing.
They see "5.0.3 stable" while most recommendations are "please use
5.3, it's much better and more widely tested".

In my opinion a 5.3.0 release is urgently needed.
And it should not be called "unstable" according to the
odd minor release number as it would be too discouraging to
stimulate new development.

Those two paragraphs may be a question for Bernhard as I recall he
promoted this separate stable / unstable branch arrangement. I posted my
thoughts on it before:
http://grass.itc.it/pipermail/grass5/2003-January/007012.html and also
agree with Markus' comments above except that 5.3 should still be called
unstable. Well not stable anyway. Maybe 'semi-stable'?

I will try and answer the first question: Off the top of my head here are
some things that should be fixed:

1) Remove gdalbridge code from r.in.gdal

2) Update internal GRASS PROJ library to remotesensing.org proj apart from
the local bugfixes (in this case disable the --with-proj option so we have
to use the internal fixed version) *and/or* change modules that convert
projected co-ordinates to lat/long to use pj_latlong_from_proj() function
(to workaround PROJ bug number 368
http://bugzilla.remotesensing.org/show_bug.cgi?id=368 )

3) Fix up glX dependencies in NVIZ (really I'm not too sure about the
status of this; probably good to release and let the bug reports flow in)

4) Fix conditional compilation of g3d modules for glX dependencies and
other variable OpenGL stuff

5) Various updates for v.in.dxf and v.in.dxf3d: an option to write to
category labels to dig_cats instead of dig_atts. Also some fixes people
have sent in should be merged (e.g. I remember something 8-bit character
encoding)

6) r.terraflow should only be compiled if g++ is detected; it won't work
with any other C++ compiler

7) Make --enable-gmake=no the default and use the alternate build
mechanism for shared libraries---this needs a few changes for Cygwin.
Maybe dig2 and vect libraries merged into one big library? Or else
compiled as static library. Also driverlib compiled statically.

But yes of course we can release now and put off these fixes until 5.3.1.
And I can probably do the release though it would take me a while. I would
need some instructions on how to sign the source code tarball (and
possibly the binaries).

Paul

What about "testing", as in the intermediate level used by Debian?
(also referred to in the posting that Paul responded to back last January)

i.e. in the current situation, it could be that 5.0.x=stable, 5.3.x=testing, 5.3.7=unstable

It would also follow Debian's example in that the "stable" release tends to be a little "behind the times" (critical bug fixes only), and I for one have usually found the "testing" branch of Debian to be the most useful... along the same lines, I tend to concentrate on GRASS 5.3.x (although the vector/raster concentrations play a larger role there).

I agree with an earlier post that developers that have been following the traffic shouldn't be too confused given the work that Markus et al have put in to the "road maps"... but that users coming along can also be confused. Maybe the above labels would be more illustrative.

My "off the top of my head" impressions....

Scott

On Jan 30, 2004, at 19:09, Paul Kelly wrote:

In my opinion a 5.3.0 release is urgently needed.
And it should not be called "unstable" according to the
odd minor release number as it would be too discouraging to
stimulate new development.

Those two paragraphs may be a question for Bernhard as I recall he
promoted this separate stable / unstable branch arrangement. I posted my
thoughts on it before:
http://grass.itc.it/pipermail/grass5/2003-January/007012.html and also
agree with Markus' comments above except that 5.3 should still be called
unstable. Well not stable anyway. Maybe 'semi-stable'?

----
Scott Mitchell, Assistant Professor, Carleton University
Department of Geography & Environmental Studies, Loeb A209
Mailing: Loeb B349, 1125 Colonel By Dr., Ottawa, ON K1S 5B6 Canada
1-613-520-2600 x2695 Fax: 613-520-4301 Scott_Mitchell@carleton.ca

Paul Kelly wrote:

I will try and answer the first question: Off the top of my head here are
some things that should be fixed:

1) Remove gdalbridge code from r.in.gdal

Agree.

2) Update internal GRASS PROJ library to remotesensing.org proj apart from
the local bugfixes (in this case disable the --with-proj option so we have
to use the internal fixed version) *and/or* change modules that convert
projected co-ordinates to lat/long to use pj_latlong_from_proj() function
(to workaround PROJ bug number 368
http://bugzilla.remotesensing.org/show_bug.cgi?id=368 )

No opinion.

3) Fix up glX dependencies in NVIZ

Agree.

(really I'm not too sure about the
status of this; probably good to release and let the bug reports flow in)

Disagree. The problems are known; either fix the code or revert to a
previous version.

4) Fix conditional compilation of g3d modules for glX dependencies and
other variable OpenGL stuff

Agree. AFAICT, this just requires that r3.showdspf.openGL is removed
from src.contrib/GMSL/g3d/src3d/raster/Gmakefile and added as a
separate module via LOC_OPTIONAL in configure.in.

5) Various updates for v.in.dxf and v.in.dxf3d: an option to write to
category labels to dig_cats instead of dig_atts. Also some fixes people
have sent in should be merged (e.g. I remember something 8-bit character
encoding)

No opinion.

6) r.terraflow should only be compiled if g++ is detected; it won't work
with any other C++ compiler

Unsure.

The gratuitous gcc-isms should be removed from the Gmakefile; it
should also be fixed to work with the alternate build system (note
that this probably precludes building both short and float versions).

Apart from that, many of the incompatibilities seem to arise from
requiring near-complete ANSI C++ conformance. Particularly regarding
templates, which were one of the later features to be standardised by
ANSI, and were the main source of non-conformance for gcc 2.9x.

Unless we can identify problems which are definitely due to gcc-isms,
and we can't easily fix them, we should probably leave it up to the
user to decide whether to attempt to build C++ modules (i.e.
r.terraflow; I hope that anyone else who was considering using C++ has
come to their senses by now).

The only was that we will find out if other C++ compilers work is if
people can actually try using them. Forcibly disabling C++ programs if
!$(GCC) will make that rather difficult.

7) Make --enable-gmake=no the default and use the alternate build
mechanism for shared libraries---this needs a few changes for Cygwin.
Maybe dig2 and vect libraries merged into one big library? Or else
compiled as static library. Also driverlib compiled statically.

Unsure.

It seems a bit risky at this stage, given how little testing it has
received (AFAIK).

I suspect that Cygwin will require more than a few changes. Windows
DLLs are very different from shared libraries.

But yes of course we can release now and put off these fixes until 5.3.1.
And I can probably do the release though it would take me a while. I would
need some instructions on how to sign the source code tarball (and
possibly the binaries).

I suggest omitting some of the more problematic changes. The "flash"
feature in d.what.* springs immediately to mind.

More generally, I suggest that someone posts a full summary of changes
since 5.0.3 for comments. For most of those changes, testing won't
have extended beyond two (probably quite similar) Linux/x86 systems.

--
Glynn Clements <glynn.clements@virgin.net>

On Sat, 31 Jan 2004, Glynn Clements wrote:

I suggest omitting some of the more problematic changes. The "flash"
feature in d.what.* springs immediately to mind.

It is quite useful sometimes though. I added a flag to disable it if
necessary; is this not sufficient?

On Sat, Jan 31, 2004 at 12:13:44PM +0000, Paul Kelly wrote:

On Sat, 31 Jan 2004, Glynn Clements wrote:

> I suggest omitting some of the more problematic changes. The "flash"
> feature in d.what.* springs immediately to mind.

It is quite useful sometimes though. I added a flag to disable it if
necessary; is this not sufficient?

Would you mind to update 5.7 as well?

Markus

Paul Kelly wrote:

> I suggest omitting some of the more problematic changes. The "flash"
> feature in d.what.* springs immediately to mind.

It is quite useful sometimes though. I added a flag to disable it if
necessary; is this not sufficient?

Having a flag to enable it would be OK. Or an environment variable, so
that users with a slow link don't have to remember to type the flag
every time.

For a 640x480 window on a 24-bpp display, R_panel_save() and
R_panel_restore() will transfer around a megabyte of data each. If
you're on a 56Kb link (that's an extreme case, but it does happen),
the flash operation will take around 5 minutes. IOW, you're probably
just going to kill XDRIVER and start again.

Isn't there a better way to implement it? E.g. just overdraw the line
rather than using a full-screen panel. Changing the panel code to use
a Pixmap rather than a temporary file would solve that problem,
although I'm concerned about the possibility of exhausting video RAM.

--
Glynn Clements <glynn.clements@virgin.net>

On Sat, Jan 31, 2004 at 02:28:18PM +0100, Markus Neteler wrote:

On Sat, Jan 31, 2004 at 12:13:44PM +0000, Paul Kelly wrote:
> On Sat, 31 Jan 2004, Glynn Clements wrote:
>
> > I suggest omitting some of the more problematic changes. The "flash"
> > feature in d.what.* springs immediately to mind.
>
> It is quite useful sometimes though. I added a flag to disable it if
> necessary; is this not sufficient?
>

Would you mind to update 5.7 as well?

OK, have done it: made d.what.vect flashing optional in 5.7.

Markus

On Tue, 3 Feb 2004, Markus Neteler wrote:

On Sat, Jan 31, 2004 at 02:28:18PM +0100, Markus Neteler wrote:
> On Sat, Jan 31, 2004 at 12:13:44PM +0000, Paul Kelly wrote:
> > On Sat, 31 Jan 2004, Glynn Clements wrote:
> >
> > > I suggest omitting some of the more problematic changes. The "flash"
> > > feature in d.what.* springs immediately to mind.
> >
> > It is quite useful sometimes though. I added a flag to disable it if
> > necessary; is this not sufficient?
> >
>
> Would you mind to update 5.7 as well?

OK, have done it: made d.what.vect flashing optional in 5.7.

Well OK but I didn't go ahead with that because Glynn was doubting whether
a flag to disable it was a good idea. But there's no question that it's
better than when it flashed unconditionally I suppose. I was actually
starting to think we could get rid of it until somebody has the time to
implement a more elegant solution instead of redrawing the whole display.
But I have no idea if that would be hard to do or not. Maybe we can just
leave it now.