Difference between revisions of "GRASS Provenance Review"

From OSGeo
Jump to navigation Jump to search
(added)
 
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
This review is based on [[Code Provenance Review]].
 +
 
== Committers ==
 
== Committers ==
  
Current:
+
'''Current:'''
  
See AUTHORS file and ChangeLog
+
See AUTHORS file and ChangeLog, additionally:
 
+
* [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/contributors.csv contributors with write access]
List of [http://grass.itc.it/devel/grassreleases.html GRASS Versions] (1984-today)
+
* [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/contributors_extra.csv contributors without write access]
 +
* [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/translators.csv translators]
  
 
Historical and Current contributors (incomplete):
 
Historical and Current contributors (incomplete):
Line 13: Line 16:
 
* [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/AUTHORS GRASS 6 Core Team] , see also [http://www.grass.itc.it/grass61/source/snapshot/ChangeLog.gz ChangeLog file]
 
* [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/AUTHORS GRASS 6 Core Team] , see also [http://www.grass.itc.it/grass61/source/snapshot/ChangeLog.gz ChangeLog file]
  
 +
* [http://web.soccerlab.polymtl.ca/grass-evolution/cvs-stat/overall/index.html CVS statistics for GRASS 6]
 +
* [http://www.ohloh.net/projects/3666 Ohloh GRASS CVS statistics]
 +
List of [http://grass.itc.it/devel/grassreleases.html GRASS Versions] (1984-today)
 +
 +
== Issues and vetting process ==
 +
 +
* Completed code vetting:
 +
** completely vetted for GPL'ization in 1999: http://mpa.itc.it/radim/g50history/ and
 +
** vetted again for DebianGIS inclusion: http://packages.qa.debian.org/g/grass.html
 +
 +
* Ongoing: Missing copyright statement addition are continuously added
 +
** To simplify to trace down code contributors, there is a PERL script (tools/copywrite.pl) in the source code which automatically searches all main.c files which are lacking a Copyright statement. It also automatically extracts the known contributors from the local ChangeLog file (which is created on the fly from CVS) and generates a standard header within such main.c file. Manual review is obviously still needed before submitting the updated file to CVS.
  
== Issues ==
+
* Source code browsing:
 +
** [http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html GRASS-QA source code navigator]
 +
** [http://www.koders.com/info.aspx?c=ProjectInfo&pid=43B43LPYNXCC4K8PGELQYTZR5A Koders.com/GRASS]
  
 
== Included Libraries ==
 
== Included Libraries ==
Line 24: Line 41:
 
== Non-free Libraries ==
 
== Non-free Libraries ==
  
Should not be included.
+
There are no non-free libraries included. Vetted during GPL'ization, DebianGIS'ization and ongoing.
  
 
== Code Reviewed ==
 
== Code Reviewed ==
 +
 +
=== Code provenance review procedure ===
 +
 +
It was a manual, interactive procedure with some scripted help. The automated part included:
 +
* search of main.c files without copyright statement (those with GPL statement have been vetted already 1-2 times earlier, see grass-dev archive)
 +
* extraction of ChangeLog for the actual main.c file from CVS
 +
* extraction of authors from Changelog file and draft insertion into actual main.c
 +
* open of text editor with following files:
 +
** main.c in process
 +
** related description.html (which contains authors at page bottom; in order to check for unmentioned authors from the pre-CVS times)
 +
** local Changelog file
 +
 +
Then the reviewer browsed main.c for offensive code (essentially incompliant copyright notices and such), added missing authors to the copyright header from description.html and polished the layout of the copyright header. Then submission to CVS (now [http://trac.osgeo.org/grass/ OSGeo GRASS SVN]).
 +
 +
Kudos to Schuyler Erle for writing the PERL script which quite helped (tools/copywrite.pl). The expansion of CVS names was done by reading in contributors.csv. M Neteler feel that this is a valid level of automatisation.
 +
 +
'''Reminder:''' the GRASS Development Team has already done rigorous code vetting when GRASS was made GPL'ed software (1999).
 +
 +
'''Note 1:''' All contributors with SVN access have agreed to RFC2: http://download.osgeo.org/grass/grass6_progman/rfc/rfc2_psc.html (RFC 2: Legal aspects of code contributions)
 +
 +
'''Note 2:''' All added copyright statements are documented in ChangeLog (now also in trac): http://grass.osgeo.org/grass63/source/snapshot/ChangeLog.gz
  
 
=== db ===
 
=== db ===
Line 55: Line 93:
  
 
d.m and gis.m commands
 
d.m and gis.m commands
 +
* d.m is based on tcltkgrass which was contributed to the public domain ([http://lists.osgeo.org/pipermail/grass-user/1994-July/021521.html announcement])
 +
* gis.m is based on d.m
  
 
=== imagery ===
 
=== imagery ===
Line 66: Line 106:
 
=== lib ===
 
=== lib ===
  
around 45 libraries of the GRASS system + 2 external libraries as integrated into GRASS
+
around 45 libraries of the GRASS system + 2 external libraries as integrated into GRASS:
 +
==== - bitmap ====
 +
 
 +
==== - btree ====
 +
 
 +
==== - cdhc ====
 +
 
 +
==== - D ====
 +
 
 +
==== - datetime ====
 +
 
 +
==== - db ====
 +
 
 +
==== - display ====
 +
 
 +
==== - dspf ====
 +
 
 +
==== - edit ====
 +
 
 +
==== - external ====
 +
 
 +
===== -- bwidget =====
 +
 
 +
===== -- shapelib =====
 +
 
 +
==== - fonts ====
 +
 
 +
==== - form ====
 +
 
 +
==== - front.end ====
 +
 
 +
==== - g3d ====
 +
 
 +
==== - gis ====
 +
 
 +
==== - gmath ====
 +
 
 +
==== - gtcltk ====
 +
 
 +
==== - image ====
 +
 
 +
==== - imagery ====
 +
 
 +
==== - init ====
 +
 
 +
==== - linkm ====
 +
 
 +
==== - ogsf ====
 +
 
 +
==== - proj ====
 +
 
 +
==== - raster ====
 +
 
 +
==== - rowio ====
 +
 
 +
==== - rst ====
 +
 
 +
==== - segment ====
 +
 
 +
==== - sites ====
 +
 
 +
==== - symbol ====
 +
 
 +
==== - vask ====
 +
 
 +
==== - vector ====
  
 
=== locale ===
 
=== locale ===
Line 128: Line 233:
 
nviz and xganim commands
 
nviz and xganim commands
  
=== TODO ===
 
  
* add copyright statement to MANY files (>2500); script approach, script under development
+
[[Category:Incubation]]

Latest revision as of 12:18, 29 March 2008

This review is based on Code Provenance Review.

Committers

Current:

See AUTHORS file and ChangeLog, additionally:

Historical and Current contributors (incomplete):

List of GRASS Versions (1984-today)

Issues and vetting process

  • Ongoing: Missing copyright statement addition are continuously added
    • To simplify to trace down code contributors, there is a PERL script (tools/copywrite.pl) in the source code which automatically searches all main.c files which are lacking a Copyright statement. It also automatically extracts the known contributors from the local ChangeLog file (which is created on the fly from CVS) and generates a standard header within such main.c file. Manual review is obviously still needed before submitting the updated file to CVS.

Included Libraries

see lib/external/

Non-free Libraries

There are no non-free libraries included. Vetted during GPL'ization, DebianGIS'ization and ongoing.

Code Reviewed

Code provenance review procedure

It was a manual, interactive procedure with some scripted help. The automated part included:

  • search of main.c files without copyright statement (those with GPL statement have been vetted already 1-2 times earlier, see grass-dev archive)
  • extraction of ChangeLog for the actual main.c file from CVS
  • extraction of authors from Changelog file and draft insertion into actual main.c
  • open of text editor with following files:
    • main.c in process
    • related description.html (which contains authors at page bottom; in order to check for unmentioned authors from the pre-CVS times)
    • local Changelog file

Then the reviewer browsed main.c for offensive code (essentially incompliant copyright notices and such), added missing authors to the copyright header from description.html and polished the layout of the copyright header. Then submission to CVS (now OSGeo GRASS SVN).

Kudos to Schuyler Erle for writing the PERL script which quite helped (tools/copywrite.pl). The expansion of CVS names was done by reading in contributors.csv. M Neteler feel that this is a valid level of automatisation.

Reminder: the GRASS Development Team has already done rigorous code vetting when GRASS was made GPL'ed software (1999).

Note 1: All contributors with SVN access have agreed to RFC2: http://download.osgeo.org/grass/grass6_progman/rfc/rfc2_psc.html (RFC 2: Legal aspects of code contributions)

Note 2: All added copyright statements are documented in ChangeLog (now also in trac): http://grass.osgeo.org/grass63/source/snapshot/ChangeLog.gz

db

db.* commands

debian

debian control directory

demolocation

contains a small latlong test dataset

display

d.* commands

doc

some docs + example modules

general

g.* commands

gui

d.m and gis.m commands

  • d.m is based on tcltkgrass which was contributed to the public domain (announcement)
  • gis.m is based on d.m

imagery

i.* commands

include

include files

lib

around 45 libraries of the GRASS system + 2 external libraries as integrated into GRASS:

- bitmap

- btree

- cdhc

- D

- datetime

- db

- display

- dspf

- edit

- external

-- bwidget
-- shapelib

- fonts

- form

- front.end

- g3d

- gis

- gmath

- gtcltk

- image

- imagery

- init

- linkm

- ogsf

- proj

- raster

- rowio

- rst

- segment

- sites

- symbol

- vask

- vector

locale

includes various external contributors without CVS write access

man

populated during make, MAN is generated from HTML which is generated from description.html files during compilation

misc

m.* commands

paint

p.* commands

ps

ps.* commands

raster

r.* commands

raster3d

r3.* commands

rpm

some SPEC files

scripts

various scripts, integrated identically to commands during compilation

sites

s.* commands (legacy, not used)

swig

swig interface prototype

testsuite

test scripts for smoke tests

tools

documentation build script and other minor stuff

vector

v.* commands

visualization

nviz and xganim commands