Contributor getting started

The main intended way of contributing to CHAP-Core is by contributing with models, for which we have a modularized system that makes it easy to contribute. For this, we have guides/tutorials that explain how to make models compatible with CHAP.

We are also working on adding similar guides for contributing with custom code for evaluating models and visualizing results. The code for evaluating and visualizing results is currently tightly integrated into the chap-core code base, but the plan is to make this more modularized and easier to contribute to.

This document describes how to get started for contributing to the chap-core code base itself.

Getting started working with the chap-core codebase

If you’re new to CHAP Core, it can be useful to see the code overview guide for a brief overview of the code base.

Windows users

Windows users who wish to contribute to CHAP Core should start by reading this important note.

Development setup

In order to make changes and contribute back to the chap-core Python codebase, you will need to set up a development environment.

CHAP Core versions

Most of the time, contributors should work with the latest code in the dev branch. However, in some cases it may be relevant to work with and test specific stable versions of CHAP Core. Versions are stored as git tags, so to see which versions of CHAP Core are available, you can write:

git tag

Then you can switch to a desired version using, for instance:

git switch tags/v1.0.3

Testing

The CHAP Core codebase relies heavily on testing to ensure that the code works properly. See more about our guidelines for testing in the testing guide.

Contributing code

Code contributions should mainly happen by creating a pull request in the chap-core repository. In order to do this, you will have to have a clone of the chap-core repository on github (which is possible for anyone with a github account).

Some internal developers can also push directly to the main chap-core repository.