last modified: 11/08/2008
This guide is under construction. Some of the pages are pretty useful others still need a lot of work.
This guide is written to introduce a new developer to useful tools and expected practices while developing Rosetta. This guide does not provide instruction on programming in C++. See other sources for guidance in learning C++. This guide walks the reader through
A Guide to Using Subversion on the Command Line included in this manual contains a subset of these commands introduced in an order which might be needed for a new developer. Subversion is a widely used easy to leard version control system. For an in depth view into subversion see the subversion manual online at http://svnbook.red-bean.com. Several svn clients have been developed including some very easy to use graphical user interfaces see http://subversion.tigris.org/links.html#clients. The RosettaWiki https://wiki.rosettacommons.org/index.php/Tools:Subversion contains an extensive page on using subversion with several examples for many subversion commands.
The rosetta library contains five top level directories of which every developer should be aware. More detailed descriptions of each of these directories can be found on A Guide to the Structure of the Rosetta Library and subsequently links.
One of the main design goals of Rosetta is that writing new applications and extension of existing protocols be easy. This section is intended to show a developer how to write new application with a new protocol. The reader will be taken through the process
After reading the page Writing a Rosetta Application the reader should be able to write their own Rosetta application.
Rosetta uses Doxygen to produce documentation. Tips for writing doxygen documentation provides useful information for making the most of Doxygen
A Guide to Using SCons to Build Rosetta demonstrates some simple features of the build system followed by a more detailed discussion of the build system structure and how it can be extended. Rosetta uses a custom SCons builder. The builder allows multiple build configurations.
A Guide to Running and Writing Tests for Rosetta takes the reader through the running each of these test sets and writing of a test in each of these categories. Rosetta has 4 sets of tests. Unit tests check particular functions of the Rosetta library. Integration tests track behavior of applications one individual cases. Performance tests monitor speed of Rosetta applications. Scientific tests monitor the behavior of Rosetta applications on a larger scale than Integration tests and with scientifically defined objectives.
The linked page is very terse but basically accurate. It will be expanded overtime. List of things you should check in your code before committing it in to svn is intended to show the reader steps that minimize the chance of a commit breaking the build or tests. Commiting your code to the trunk of Rosetta can be a perilous process almost every Rosetta developer that I know has commited code that broke Rosetta at one time or another.