[[TOC]] Contributions to GRASS are most welcome. There are a number of ways that you can contribute to help make GRASS a better GIS system. Perhaps the most important way to contribute is to write high-quality code for solving old and new problems, and to make your code freely available for others to use. But not everybody is able to program. Still you can help! == (Power) Users == '''Documentation:''' If you see manual pages or other documents which are outdated, grammatically incorrect, too short, lacking examples, etc. please don't hesitate to send revised text segments (preferably in HTML) to one of the developers or the related mailing list. Please also contribute to the wiki, improving documentation, providing examples... '''GRASS Usage:''' Subscribe to the [http://lists.osgeo.org/mailman/listinfo/grass-dev mailing list] and answer questions where you have gained some knowledge (and everybody knows something!). == Developers == For inspiration, we have a wish-list of [report:1 projects and feature requests]. Just pick a task from the list. It may be a good idea to send a small posting to the [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list] to announce your activities (maybe someone will join you!). Please read [wiki:HowToProgram how to write source code]. We appreciate if you can fix [http://trac.osgeo.org/grass/query?status=%21closed&type=defect&order=id&desc=1 bugs] etc. Using the Ticket system is the best way to submit code contributions if you don't have write access to SVN. See for example #33. '''Code quality:''' Check your code according to GRASS "BestPractise" guide list. What else: see [http://grass.gdf-hannover.de/wiki/Development development collection] (to be moved here) === Procedure to request GRASS-SVN write access === To avoid security and code quality issues, a procedure has been established to control and grant GRASS-SVN write access. In general, write access must be requested and is not automatically assigned. Any code submission must be compliant with the GRASS submission rules. * Write access to the '''Main GRASS-SVN repository:''' * In general, the [http://grass.gdf-hannover.de/wiki/PSC GRASS Project Steering Committee] is responsible for granting SVN write access to contributors (as defined in [http://download.osgeo.org/grass/grass6_progman/rfc/rfc1_psc.html RFC1]). * The requester has to '''read and abide by''' the document [http://download.osgeo.org/grass/grass6_progman/rfc/rfc2_psc.html Legal aspects of code contributions] (RFC2). * The request has to be send to the GRASS-PSC [http://lists.osgeo.org/mailman/listinfo/grass-psc mailing list], stating that RFC2 was read and accepted. This requires [http://lists.osgeo.org/mailman/listinfo/grass-psc subscription] to the PSC mailing list. After a period of evaluation, SVN write access may be granted and is set up in the OSGeo authentication system (see below). * Write access to the '''GRASS-Addons-SVN repository:''' * [http://trac.osgeo.org/grass/browser/grass/trunk/AUTHORS GRASS developers] with write access can grant SVN write access to contributors (you may contact an active developer, see grass-dev mailing list archive). The selected developer is a sort of "sponsor/mentor" for the requester. Procedure: * The requester has to '''read and abide by''' the document [http://download.osgeo.org/grass/grass6_progman/rfc/rfc2_psc.html Legal aspects of code contributions] (RFC2). * The request has to be send to a GRASS developer or the GRASS-PSC chair, stating that RFC2 was read and accepted. After a period of evaluation, SVN write access may be granted and is set up in the OSGeo authentication system (see below). * New commands stored in the GRASS-Addons-SVN repository should be also added as link to the [http://grass.osgeo.org/wiki/GRASS_AddOns Wiki list of tools]. === Setting up the new SVN write access === Once SVN access is granted, the requester needs to obtain an "osgeo_id" at http://www.osgeo.org/osgeo_userid If s/he already have an "osgeo_id" but forgot it, it can be searched at http://www.osgeo.org/cgi-bin/ldap_web_search.py The GRASS-PSC chair (currently Markus Neteler) and other developers can add this "osgeo_id" to the list of enabled accounts in the OSGeo LDAP authentication system ([https://www.osgeo.org/cgi-bin/auth/ldap_group.py?group=grass here] for GRASS-SVN and [https://www.osgeo.org/cgi-bin/auth/ldap_group.py?group=grass_addons here] for GRASS-Addons-SVN; requires authentication). Contributions have to follow the [wiki:BestPractise] rules (see also SUBMITTING* files in the source code). === Then what? === [wiki:DownloadSource Get the source code] and Happy hacking :) The requester should subscribe to the [http://lists.osgeo.org/mailman/listinfo/grass-commit grass-commit] mailing list which distributes GRASS-SVN commit differences for real-time code review.