User Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Contributor Documentation

Getting Started
Learn More
Explore in Detail
Get Inspired

Quick Links

Software Manual
API Reference

Documentation Versions


Technical Documents

ISIS Documentation

Learn More About Contributing Code

ISIS is a large package with many places to contribute and improve the code base; however, the size and history of ISIS can be intimidating. On this page you will find resources to learn more about ISIS development and help with your first code contribution.


Programming Exercises

These self-guided exercises will have you explore the ISIS code base and learn about the ISIS API.

Basic ISIS Programming An exercise introduces you to the ISIS API by examining and altering an existing ISIS application.
Advanced ISIS Programming An exercise grows your understanding of the ISIS API by building on and refining the work you did in the previous exercise.

Contributing Guides

The previous exercises showed you how to write code in ISIS. These guides will show you how to contribute your code change back into the ISIS code base.

Adding a New Feature A guide to the requirements when adding a new feature to ISIS.
Modifying an Existing Feature A guide to the requirements when modifying an existing feature in ISIS.

Testing Guides

Testing is a crucial component of creating sustainable software and a requirement for all code contributions to ISIS.

As of version 3.6, ISIS uses googletest and CTest for new tests. A majority of existing tests have been converted to this new framework, however, some tests are still using the legacy Makefile framework.

These guides will help you create, run, and modify ISIS tests within both frameworks.

googletest and CTest

Contributors are required to use the googletest system for new tests and convert legacy Makefile tests wherever possible.

Writing Tests Using googletest and CTest A how-to guide for writing new tests and converting ISIS applications to the new callable format required by the googletest framework.


There are rare situations where existing legacy Makefile tests have not yet been converted and need to be updated. These legacy Makefile tests use an input and truth data to confirm applications produce the proper output under the testing conditions. The following guides describe how to work within the legacy testing system and with the legacy testing data.

Legacy Makefile Tests Guide This document describes how legacy Makefile tests work.
ISIS Test Data This page explains how to download the test input/truth data required to run the legacy ISIS test suite.