Adding to Dervish

If you are just starting to code in Dervish (adding code or fixing bugs), the following information is supplied in order to help you become knowledgeable about the Dervish environment.

One of the first things you should do is send mail to sdss-bugs@sdss.fnal.gov, asking to be added to the sdss-dervish mailing list so you can be notified of important Dervish events (pig roasts, etc.). If you have done this already, you are probably on the list and need not repeat this step. If after you are done adding things to Dervish you wish to be removed from the list, send mail to the same address requesting this.


Dervish is coded in strict ANSI C and follows many other coding rules. This was done (partly) to enable a diverse group of people to work on it and be able to integrate each other's pieces together in a logical fashion without making a non-portable hodgepodge. These rules are spelled out in detail in the Standards Document or see the summary inSoftware Standards Distillation.

Many of the coding conventions adopted for Dervish and knowledge gained through experience are not written down but are contained as folklore within the heads of people who have been working on Dervish for awhile. In order for you to have access to this information, you need to have access to the people. Just before starting work on Dervish, talk to Eileen Berman (Fermilab, berman@sdss.fnal.gov) and she will tell you (based on what you are doing, who is free and how much you bribe her) which Dervish expert you should talk to whenever you have questions or need help. (If Eileen is not available ;-}, please contact Gary Sergey at sergey@sdss.fnal.gov.) This person then becomes your sempai. This person will be most useful when you plan on making a large modification/addition to Dervish. When fixing minor bugs or doing maintenance work, you probably will not need a sempai but are welcome to one if you want.


Dervish source code is stored in a CVS repository and divided into several modules to allow checkout of the desired files only. These separate modules are as follows -

You should checkout whichever module best contains the files that you will be working on. Most likely, this would be dervish_no_int. You may want to familiarize yourself with the CVS summary to learn the most useful CVS commands.

If you want to make a major change/addition to Dervish, you will need to work on a CVS branch. This allows you to develop your code without impacting anyone else who might be working on Dervish. Similarly, other people making changes to Dervish will not be interfering with your modifications. Once your addition is complete, your sempai can help you merge your changes back in to Dervish on the main line of descent. Once you have done this a few times, you probably will become more familiar with all the ins and outs of Dervish and CVS and will feel comfortable working on your own (then you can become someone's sempai ;-) ).

If you fix/add something that is not on the bug/wish list, also send a description to sdss-bugs@sdss.fnal.gov so it can be included in the release notes for the next version of Dervish.