External Developer Guide

Note

Before you start – if you are Chaste User, and never want to contribute back to the source code, you might want to consider just downloading one of the release versions of Chaste.

This page is intended to assist those external to the core Chaste team who still want to develop with the “bleeding edge” latest development code, rather than merely the last official release.

Since some parts of the Chaste code-base are not released (e.g. those relating specifically to papers in preparation), some of the developer resources, such as results from the automated tests and full documentation for the latest revision, are not made publicly available. We have now created some additional resources to improve this situation.

The most recent “good revision”

Occasionally broken code is committed to branches on the Chaste repository, or some unexpected tests fail. This can be frustrating if users do not know if it’s something they’ve broken, or if the fault lies with the repository code. We now offer a range of git branches to help developers choose how stable they want their code to be:

BranchWhat it’s for
developBleeding-edge development code, new feature (issue) branches should branch off here to minimise conflicts
Release TagsReleased code for past Chaste versions (e.g. 2024.1), also accessible from GitHub with nice instructions and zip/tar files

You can get these revisions by cloning the repository and then doing

git checkout <branch>

e.g.

git checkout develop

Contributing Code Back to Chaste

Before you start

If you intend to submit code back to the main Chaste repository, please see the Best Practice Guide.

Coding Standards

To understand why Chaste variables, methods and classes are named like they are please see our Coding Standards Strategy.

We also lay out and document our code in a particular way – see our Code Structure Strategy.

You may also want to read through the other Chaste Strategies that we use to keep things consistent and well tested.

Creating an Issue

First create a new issue on GitHub and describe the problem you are trying to solve.

Working in a new branch

Please see the Pull Request Strategy for how to work in a new branch – you should branch off develop if you want to contribute code back to the main Chaste repository.

Make sure you merge in the latest develop branch into your issue branch regularly to keep up to date and avoid lots of changes before merging back into our main repo.

Ideally, write a comment on your issue about any commits that you have done and pushed to your branch.

Testing

GitHub actions will automatically run tests (Continuous, Nightly, Parallel, coverage, memtest) on a pull request. All tests should pass before merging into develop. Tests can be run locally as per the CMake Build Guide.