GRASS 5.1 Development in 2001:
[$Date$]
This page describes the draft proposal for developing GRASS 5.1.
New version number scheme:
The new GRASS version number scheme is adopted from the Linux kernel
(even minor number is stable, odd minor number is development):
- GRASS 5.even.x: stable versions
- GRASS 5.odd.x: development versions
After fully implementing the new vector environment, the next
stable release based on GRASS 5.1.x may become version GRASS 6.0.0.
Two "phases" are planned with individual "milestones". This proposal
is not going into details, but tries to describe the general route to follow.
Please send your opinion/suggestions to the GRASS
5 developers list.
Note:
PHASE 1 differs from PHASE 2 as the new directory layout and other
core definitions have to be set up first. Therefore no other changes
should be done to avoid conflicts during PHASE 1. All developers are invited
to contribute.
- Status restricted: only proposed actions allowed
to avoid conflicts and to achieve stable 5.1 environment quickly
- Status open: Proposal is "minimum" to be done, open to other
improvements
Milestone 1 - Status: restricted
-
new directory layout as discussed
-
implement common Makefile
system (replacement for GRASS Gmakefiles)
-
build shared libraries
-
implement new environment variables management
-
separate GRASS database I/O routines from GISLIB and add Frank Warmerdam's
libgrassio into separate
directory, release libgrassio under LGPL
to allow implementation of I/O routines (but nothing else) into proprietary software
Milestone 2 - Status: restricted
-
implement new GRASS vector library: 2.5D (3D optionally), DBMS
support, 64bit compliance
-
implement GRASS-builtin DBMS for multiple vector attributes management (which DBMS?)
-
implement vector segmentation to speed up topology build
processes on large vector files
Milestone 3 - Status: restricted
-
update all vector modules
-
implement basic raster/sites/... modules
-
restrictions: polish code before adding to 5.1
-
check algorithms for copyright violations
-
check for numerical optimization, especially with gmath library,
-
merge modules if possible to reduce number,
-
merge back html documentation to individual module [?]
-
implement new (auto-)help system based on XML-descriptions/HTML
- implement XML-based packaging scheme (module classifications) to allow
GRASS packaging into components (core-GRASS, hydro-GRASS, image-GRASS etc),
while GRASS source code remains unsplitted
At this time GRASS 5.1 should become usable.
Milestone 1 - Status: open
-
implement full graphical startup with session manager,
-
allow to build locations on the fly from imported maps,
-
allow location enlargement on the fly
-
continue with module addition (those missing from PHASE 1, Milestone 3)
-
implement sites management through DBMS (update sites API)
-
update all site modules accordingly
-
implement NULL support in multiple attribute sites lists
Milestone 2 - Status: open
-
implement 3D vector support into vector library
-
update relevant vector modules
Milestone 3 - Status: open
-
improve XDRIVER to multiple layers, implement better color support
-
Auto-redraw after resizing the monitor
-
improve locking system for monitor lock files
-
improve legend support
-
implement FreeType font engine
to support any font
Milestone 4 - Status: open
-
improve DBMS management: GUI support
-
implement better chart support (histograms etc)
Milestone 5 - Status: open
-
implement internationalization (multiple languages) using gettext
Future/add to "open" Milestones (unsorted):
-
fix further bugs, improve NVIZ (G3D etc.)
-
improve the G3D format: timestamps, dynamic capabilities etc.
-
implement Python interface/wrapper (ongoing with OSSIM bridge)
-
write a nice auto-generated GUI (see Mac OSX example)
-
add v.[in|out].ogr module supporting OGR Simple Features
Library (vector data)
-
support OpenSource Vector
Database (OSVecDB)
-
implement vector network analysis (ongoing)
-
implement TIN support
-
implement better Metadata support
-
eventually distribute simulation models etc. in extra package
-
implement more intuitive high-res driver (replace CELL driver), add to
NVIZ
-
implement spatial web engine for "webGRASS" (JAVA ?)
This proposal is open to ideas/corrections/suggestions.
Markus Neteler
GRASS Development Team
$Id$