[GRASS5] New GRASS Quality Control System online

Markus Neteler neteler at itc.it
Tue Apr 18 12:19:36 EDT 2006

Dear all,

I would like to suggest again the running quality control system. Developers
can receive personalized emails in quasi real time which indicate potential
problems or a big "OK". In my/our/ opinion an immediate notification is
good since memories are still fresh. Like this the ongoing introduction of
cloned code could be minimized. Also other features are available as
indicated below.

Please a few volunteers may subscribe to make it a useful system.
It only makes sense if GRASS developers use it and suggestion improvements.
I am sure that quality control will save us time later...


Markus Neteler wrote:

>Dear GRASS developers and interested users,
>as you know, GRASS is a huge system with thousands of files and
>hundreds of thousands of lines of code. You are contributing to the
>development - but do you sometimes wonder how quality is ensured in
>such a big project? Sure, there is the commit mailing list which shows
>changes in real time. But probably more could be done.
>Today we want to propose a new system to you:
>At Ecole Polytechnique de Montreal a new software quality control
>system has been developed which checks the CVS changes as distributed
>by the GRASS commit mailing list for potential problems. We would like
>to invite you to try this new GRASS source code quality monitoring
>service. We, that are Giulio Antoniol, Ettore Merlo, Salah Bouktif and
>Markus Neteler. Based on Free Software tools and the software
>engineering knowledge of the people of Ecole Polytechnique de
>Montreal, this quality assessment system was realized as combined
>email notifier and Web dashboard.
>So, what do you and the GRASS project gain from that? Three principal
>services are provided to you and the community:
>- The first service analyzes and controls the complexity increase and
>  potential quality declining;
>- The second supports distributed developers to perform safe evolution
>  by sending them a feedback report after each contribution in order to
>  avoid abnormal actions;
>- The third allows developers to learn about the big picture of the
>  whole software by providing them with a dashboard of the project
>  evolution.
>What could go wrong? The *first service* checks if new functions or
>modifications are getting too complex which renders them
>unmaintainable. The service also checks if a modified function,
>probably written by someone else, is already too complex and should
>better broken into pieces. Finally it checks if functions are cloned,
>i.e. that several code pieces are identical or nearly identical. In
>this case such clones should be removed (e.g. by moving the function
>to the related GRASS library).
>As *second service* this report is sent to the developer shortly after
>each CVS modification. Memory is still fresh and the developer is
>invited to act upon a newly introduced problem or invited to attack an
>old outstanding problem with legacy code in GRASS.
>The *third service* is a Web site which provides easy code navigation
>to better study clones or complex functions (we call them "baby
>monsters" or "monsters" and put them into the "monster garage" there
>for inspection). Also detailed graphs will be generated to better
>illustrate the problems identified.
>It is our goal to make the services a help and understandable even to
>the "hobby" programmer. And of course, to help to improve the code
>quality. Better code is easier to maintain - so please give the system
>a try.
>To receive the code monitoring messages of your contributions, please
>just send a mail to Markus that you are interested. To take a look at
>the dashboard, check here:
>To log into the GRASS restricted, enter:
>User: grass  (pw: "grass6")
>Our plan in the long term is to develop personalized services and
>different views for different developers. This is a beta test and we
>need your help to identify weaknesses and possible enhancements.
>For example, as suggested by Ettore, we could easily implement a
>service to check files/functions for quality indexes before performing
>the actual CVS commit, kind of preventive verification.
>We are happy to give more feedback! Let us know or simply try the
>new system out.
>Best regards
> Markus
>in collaboration with and grateful to:
>  Giulio Antoniol <antoniol AT ieee.org>
>  Salah Bouktif <salah.bouktif AT polymtl.ca>
>  Ettore Merlo <ettore.merlo AT polymtl.ca>
>grass5 mailing list
>grass5 at grass.itc.it

More information about the grass-dev mailing list