GRASS GIS (Geographic Resources Analysis Support System)

GRASS: Development

Advanced search
Intro Docs Download Community Applications Development Sponsors
Development

Get involved!

Roadmap

Translations (i18N)

Mailing lists | IRC

SVN Server

SVN tags

SVN commit ML

Platform notes

Bug/Feature trackers

History

GRASS Development

Mailing list - Trac System - Download/SVN - Help wanted! - Compiling GRASS - Programmer's Manual - Code submission - Quality Control - Related software
GRASS - Geographic Resources Analysis Support System has been under continual development since 1982 and has involved a large number of federal US agencies, universities, and private companies. The core components of GRASS and the management of the integration of the efforts into GRASS releases were accomplished by the Construction Engineering Resesarch Laboratory (CERL) in Champaign, Illinois. It has been estimated that several million dollars of GRASS software development efforts across the government have been completed since the 4.1 release. Since 1997 a worldwide network of developers continue to release new GRASS versions (see GRASS history).

The strength and success of GRASS relies on the user community. This in mind, the philosophy of the GRASS Development Team is to encourage users to develop their own unique tools and applications for GRASS. If you develop tools and techniques that you feel would benefit other GRASS users, let us know! We strongly recommend to follow the coding style described in SUBMITTING file (which you find in the main directory of GRASS source code or also below). GRASS GIS is developed and supported by a worldwide developers team. As GRASS is growing, we have plenty of opportunities to join the GRASS development team and improve the powerful GRASS GIS under terms of GNU General Public License.

Many people have contributed to the GRASS GIS. Without any one of them, GRASS would not exist in its current form. The authors of the individual programs are listed at the end of their manual page in GRASS users manual, however, numerous authors of bug fixes and enhancements as well as people who have been working on coordination, integration, documentation and testing are not mentioned. Therefore, this page is an attempt to acknowledge those who contributed to GRASS development. Please allow us to extend our most cordial thanks to all of you. If you contributed to GRASS at any point during its existence, please let us know your name and e-mail address so we can add your name here.

Developers Mailing List

Please join our mailing list, which will help and coordinate ongoing development in GRASS GIS development. Join the list if you are a programmer and/or want to follow the development discussion. If you have questions concerning compilation of the SVN-GRASS, please ask here.

Integrated development tracker

Development planning is all done on the developers' mailing list. The execution of those plans are tracked by GRASS's integrated Trac system.

How you can help

See the list at Get involved!

Roadmap

See the GRASS Development roadmap

Download the latest GRASS software

To follow GRASS development, get the latest code from SVN server:

Compiling GRASS

Compiling GRASS is only recommended to people with experience (that's why we also offer precompiled binaries).
The configuration requires a set of installed libraries which are described in the file REQUIREMENTS.html file (which you also find in the main directory of the source code tarball). The compilation is desribed in the INSTALL file (which you also find in the main directory of the source code tarball). Dear Newbie, please be so kind to search the developers mailing list archive before asking developers - most questions have been already answered several times :-)

Compiling GRASS natively on MS-Windows integrated with QGIS: see Building Windows Binary On Linux (Cross compilation with MinGW).

GRASS Programmer's Manual

Please cite GRASS when using it as we have invested a lot of time and effort in creating GRASS.
Citation:
GRASS Development Team (<year>). Geographic Resources Analysis Support System (GRASS), GNU General Public License. http://grass.osgeo.org
  • GRASS Programmer's Manual: The manual has been integrated into the source code (doxygen format) and can be extracted with 'make pdfdocs' or downloaded from the download page.
    • GRASS 6 Programmer's Manual (generate locally with 'make htmldocs-single' from source code):
      HTML -
    • GRASS 7 Programmer's Manual (generate locally with 'make htmldocs-single' from source code):
      HTML (updated weekly every Saturday)
    • Search GRASS 6 Programmer's Manual
    • r.example: example C code for GRASS raster programming
    • v.example: example C code for GRASS 6 vector programming
    • A small GRASS-PHP demo displaying a dynamically rendered earthquakes world map.
    NOTE: r.example and v.example modules are included in doc directory of grass source. If you downloaded GRASS source code already, check grass_trunk/doc/ directory for these modules.
  • GRASS 5.0/5.3/5.4 (old!):
    • GRASS 5.0/5.3 Programmer's Manual [ PDF, 2.3 MB ]

Debugging: hints are collected in doc/debugging.txt in the source code package.

Code submission

When developing GRASS software, you may want to share your development with the GRASS community. There are several ways to probably get your code into the standard GRASS release. Another option is to host the software on your own web page - in this case we can add a link to our "GRASS Add-ons" section. We strongly recommend you follow the coding style described in SUBMITTING files (which you find in the GRASS source code). Optionally, for group based development we can offer access to the GRASS AddOns-SVN repository which we grant to trustable people who agree to the GRASS rules of code contributions (see below):
  • Legal aspects of code contributions (RFC2): these rules have to be accepted to gain SVN write access
  • C language coding standards: Check your code against the rules defined in the 'SUBMITTING' file (find it in the main directory of the GRASS source code and also SUBMITTING). This ensures a smooth integration into the standard GRASS code base.
  • Shell script coding standards: Check your code against the rules defined in the 'SUBMITTING_SCRIPTS' file (find it in the main directory of the GRASS source code and also SUBMITTING_SCRIPTS). This ensures a smooth integration into the standard GRASS code base and avoids portability problems.
  • Tcl/Tk script coding standards: Check your code against the rules defined in the 'SUBMITTING_TCLTK' file (find it in the main directory of the GRASS source code and also SUBMITTING_TCLTK).
  • Python coding standards: Check your code against the rules defined in the 'SUBMITTING_PYTHON' file (currently developed here).
  • Code submission: Please contact a member of the GRASS Development Team or write to the development mailing list (see above).
    In general, please generate differences to the current SVN instead of sending full files:
    svn diff -x -u [file.c] > grass.diff
    Please submit the patch to GRASS-trac.
  • GRASS Add-on Wiki submission: go here (Add-on code is hosted on your server)
  • GRASS Add-on SVN repository: We maintain a SVN repository for group-wide code development. You can ask the developers for write access, but you have to agree to the Legal aspects of code contributions (RFC2) and the code SUBMITTING standards (see in the SVN repository).
  • Already submitted code which is not (yet) integrated: OUTGOING directory - maybe you can work on this?

GRASS Quality Control

The development team invests time and efforts to verify the quality of GRASS, be the coding style, be the functionality of the commands:

GRASS related projects/libraries

Last change: $Date: 2010-10-17 23:23:33 -0700 (Sun, 17 Oct 2010) $
$Author: hamish $

© 1999-2011 GRASS Development Team
Imprint | Comments about this page