Development: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
(→‎Code: svn section added)
(indent rules)
Line 24: Line 24:
* [[GRASS Debugging]]
* [[GRASS Debugging]]
* [[Large File Support]] (LFS) implementation
* [[Large File Support]] (LFS) implementation
* '''Code submission standards''':
** [http://grass.itc.it/grass63/source/snapshot/SUBMITTING C language coding standards]
** [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_SCRIPTS Shell script coding standards]
** [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_TCLTK Tcl/Tk script coding standards]


=== Code ===
=== Code ===
* [[Tracking]] bugs, patches and feature requests
* [[Tracking]] bugs, patches and feature requests
* [[GRASS AddOns]] - User code contributions (custom scripts, modules, icons, etc)
* [[GRASS AddOns]] - User code contributions (custom scripts, modules, icons, etc)
* [[Compile and Install]] hints
* [[Compile and Install]] hints
==== Code submission standards ====
* [http://grass.itc.it/grass63/source/snapshot/SUBMITTING C language coding standards]
* [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_SCRIPTS Shell script coding standards]
* [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_TCLTK Tcl/Tk script coding standards]
===== Explanation of C indentation rules =====
(''see [http://grass.itc.it/grass63/source/snapshot/SUBMITTING C language coding standards]'')
:{| class="wikitable" border="1"
| -bap||Force blank lines after procedure bodies.
|-
| -bbb||Force blank lines before block comments.
|-
| -bli1||Indent braces 1 space.
|-
| -bls||Put braces on the line after struct declaration lines.
|-
| -br||Put braces on line with if, etc.
|-
| -cbi0||Indent braces after a case label 0 spaces.
|-
| -ci4||Continuation indent of 4 spaces.
|-
| -cli0||Case label indent of 0 spaces.
|-
| -d0||Set indentation of comments not to the right of code to 0 spaces.
|-
| -di0||Put variables in column 0.
|-
| -fc1||Format comments in the first column.
|-
| -hnl||Prefer to break long lines at the position of newlines in the input.
|-
| -i4||Set indentation level to 4 spaces.
|-
| -ip4||Indent parameter types in old-style function definitions by 4 spaces.
|-
| -l80||Set maximum line length for non-comment lines to 80.
|-
| -lc80||Set maximum line length for comment formatting to 80.
|-
| -lp||Line up continued lines at parentheses.
|-
| -nbad||Do not force blank lines after declarations.
|-
| -nbbo||Do not prefer to break long lines before boolean operators.
|-
| -nbc||Do not force newlines after commas in declarations.
|-
| -ncdb||Do not put comment delimiters on blank lines.
|-
| -nce||Do not cuddle } and else.
|-
| -ncs||Do not put a space after cast operators.
|-
| -nfca||Do not format any comments.
|-
| -npcs||Do not put space after the function in function calls.
|-
| -nprs||Do not put a space after every '(' and before every ')'.
|-
| -npsl||Put the type of a procedure on the same line as its name.
|-
| -nsob||Do not swallow optional blank lines.
|-
| -pi4||Specify the extra indentation per open parentheses '(' when a statement is broken.
|-
| -sbi0||Indent braces of a struct, union or enum 0 spaces.
|-
| -sc||Put the `*' character at the left of comments.
|-
| -ss||On one-line for and while statments, force a blank before the semicolon.
|-
| -ts8||Set tab size to 8 spaces.
|}


==== CVS ====
==== CVS ====

Revision as of 08:16, 10 July 2007

GRASS License

The GRASS GIS project is developed under the terms of the GNU General Public License (the GPL) in the open by volunteers the world over.

Resources for Developers

Communication

Documentation

GRASS libraries are self-documenting using Doxygen header comments.

Code

Code submission standards

Explanation of C indentation rules

(see C language coding standards)

-bap Force blank lines after procedure bodies.
-bbb Force blank lines before block comments.
-bli1 Indent braces 1 space.
-bls Put braces on the line after struct declaration lines.
-br Put braces on line with if, etc.
-cbi0 Indent braces after a case label 0 spaces.
-ci4 Continuation indent of 4 spaces.
-cli0 Case label indent of 0 spaces.
-d0 Set indentation of comments not to the right of code to 0 spaces.
-di0 Put variables in column 0.
-fc1 Format comments in the first column.
-hnl Prefer to break long lines at the position of newlines in the input.
-i4 Set indentation level to 4 spaces.
-ip4 Indent parameter types in old-style function definitions by 4 spaces.
-l80 Set maximum line length for non-comment lines to 80.
-lc80 Set maximum line length for comment formatting to 80.
-lp Line up continued lines at parentheses.
-nbad Do not force blank lines after declarations.
-nbbo Do not prefer to break long lines before boolean operators.
-nbc Do not force newlines after commas in declarations.
-ncdb Do not put comment delimiters on blank lines.
-nce Do not cuddle } and else.
-ncs Do not put a space after cast operators.
-nfca Do not format any comments.
-npcs Do not put space after the function in function calls.
-nprs Do not put a space after every '(' and before every ')'.
-npsl Put the type of a procedure on the same line as its name.
-nsob Do not swallow optional blank lines.
-pi4 Specify the extra indentation per open parentheses '(' when a statement is broken.
-sbi0 Indent braces of a struct, union or enum 0 spaces.
-sc Put the `*' character at the left of comments.
-ss On one-line for and while statments, force a blank before the semicolon.
-ts8 Set tab size to 8 spaces.


CVS

SVN

QA

  • Internal GRASS test suite (scripts collection in "testsuite/")

Code Search and Metrics

Ongoing and Plans

Overview

Works in Progress

Sandbox (ideas section)

Linking GRASS to external languages

GRASS and QGIS

Commercial development for GRASS

This is an unsorted (and most probably incomplete) list of paid development for GRASS GIS

Related projects

With connections to GRASS

  • JGrass - Java based frontend for GRASS incuding extended hydrological modelling tools
  • KerGIS - BSD-like licensed fork of GRASS 4.1.5
  • GAL - Project to reimplement a GRASS-like GIS using a modern object oriented approach
  • pyWPS - Python Web Processing Service (GRASS on the web)
  • PROJ.4 - Cartographic Projections Library
  • GDAL - Geospatial Data Abstraction Library
  • QGIS - Quantum GIS
  • OSGeo- The Open Source Geospatial Foundation
  • FreeGIS.org - Interactive information base for the GIS Free Software world
  • DebianGIS - Project coordinating geospatial software for Debian GNU/Linux
  • R statistics - High powered geostatistical analysis engine
  • gstat - Multivariable geostatistical modelling, prediction and simulation

Not connected to GRASS

  • GMT - The Generic Mapping Tools advanced cartography package
  • SAGA GIS - A modern programming method GIS for the geosciences
  • uDig - User-friendly Desktop Internet GIS (uDig) web portal
  • gvSIG - Similar in nature to QGIS, but written in Java
  • JUMP - For viewing and manipulating spatial data-sets, using Java
  • Starspan - Mixed raster and vector spatial analysis
  • OpenEV - Raster and vector GIS with good support for image analysis