[vtk-developers] Developer guidlines required

David Gobbi dgobbi at irus.rri.on.ca
Tue Apr 10 07:14:02 EDT 2001


On Wed, 11 Apr 2001, Prabhu Ramachandran wrote:

> hi,
> 
> As you are aware before I make any changes to the CVS tree I send in a
> message to the devel list.  However, before I start doing anything I
> need some information:

I can only give my own opinions here.  Since VTK has no 'benevolent
dictator' (it seems to be pretty much laissez faire) I'm guessing
that 'correct' behaviour must be judged through consensus and 
common sense.

>   (1) Not everyone reports what they do or what changes they make or
>   want to make.  So is this a good thing that I am doing or am I just
>   wasting everyone's bandwidth?

Please do.  That's what vtk-developers is for, isn't it?  This
mailing list is used much less than it should be, IMHO.

There is also the FAQ, http://public.kitware.com/cgi-bin/vtkfaq,
which VTK developers can make additions to.

>   (2) I dont know how verbose I should make the log entry.  Do you
>   have any rules of thumb?  Also, I see logs like

I would say anywhere from one to seven lines.
 
>   ENH: Objective C subclass of NSWindow to act as a ...
>   or
>   ERR: division by zero fixed in calculation of mean and ...
> 
>   Now what are the 'ENH' and 'ERR' supposed to mean and when does one
>   use them.  Are there other tags like this?

I use them, because I saw them in other people's entries and thought
they were a good idea.  There don't appear to be any guidelines, though.

ENH   enhancement
ERR   bug fix (sometimes also BUG)
NEW   new class or method

>   I am aware of the Coding Standards
>   http://www.kitware.com/vtkhtml/vtkdata/CodeStyle.html and also the
>   copyright issues etc.  Are there others?  I did look around quite a
>   bit.

The basic coding standard, as far as I can tell, is
1) match your code style to what already exists in VTK 
2) your code should not generate any warnings (check dashboard)
3) your code should pass the Style tests (check dashboard)

>   (3) How do developers actually maintain and run their code.  I mean
>   how exactly do you actually build the CVS tree?  Do you build it
>   right on the checked out CVS tree and use appropriate .cvisignore
>   files?  Or do you usually use a separate build dir?  If you build it
>   on the checked out CVS tree how do you handle a modified user.make
>   (and not accidentally check it in)?  

When I do a cvs commit, I always provide the paths/names of each of the
files I want to commit.  I never to a raw 'cvs commit'.  I haven't ever 
used .cvsignore.  I have several copies of the CVS tree on different
computers, and each is substantially different from the repository.
I've made a couple mistakes, but my CVS access hasn't been revoked :)
 
>   (4) How long(approximately) do the regression tests take to run on a
>   machine equivalent to a P III 450 with about 128MB RAM?

No idea, I have only been successful in running though all the test
scripts under IRIX (though I only tried linux once, long ago).
The tests should take about three to eight hours, I'm guessing.
I do full regression test very seldom (about 4 times in 2 years).

>   (5) Do you all run regression tests before you check in _anything_?
>   Or do you make the change and then track the nightly and continuous
>   build pages and then change things appropriately?

Heavens, no.  I run individual regression tests for the classes that I
think might be affected (though sometimes this does mean _all_ classes).
But checking the dashboard the next day is important.  Remember that
the nightly build starts at 20:00 New York time, so you should commit
before 16:00 or 17:00 so that the continuous build has enough time to
test your changes.

>   (6) How do you handle multiple versions of VTK.  Right now I have
>   vtk-3.2 installed (system wide).  When you build the CVS tree and
>   run the tests etc., do you simply set LD_LIBRARY_PATH (or something
>   else under windows) and test?  What do you folks think is the best
>   way to all this.

Whatever way you want.  I use a LD_LIBRARY_PATH, PYTHONPATH, and 
VTK_TK_WIDGET_PATH set up in my .cshrc.

>   (7) Currently VTK doesnt version the libraries.  Why is this?  Cant
>   we add a library version or something?



More information about the vtk-developers mailing list