Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
A Guide to Developing in Rosetta
Kristian Kaufmann

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

Using subversion the version control system

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 Several svn clients have been developed including some very easy to use graphical user interfaces see The RosettaWiki contains an extensive page on using subversion with several examples for many subversion commands.

Navigating the Rosetta library structure

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.

Writing a simple application and documenting the code using Doxygen.

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.

Documenting with Doxygen

Rosetta uses Doxygen to produce documentation. Tips for writing doxygen documentation provides useful information for making the most of Doxygen

Compiling the Rosetta library and application using SCons

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.

Running and Writing Unit, Integration, Performance, and Scientific Tests

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.

Procedures for successfully checkin in your code without breaking the build or Unit and Integration tests.

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.