Contributing to the code
The following pages will guide you through the steps required for developing the model.
Here are the key points:
Look through existing issues and merge requests before you start. Consider creating an issue of your own if you do not find any relevant existing issue.
Get involved with the relevant working group, e.g. ocean working group, atmospheric composition working group etc.
EC-Earth4 consists of the git repository ecearth4 and several submodules such as
oifs-48r1,nemo-4.2,oasis3-mct5.2which are their own git repositories. You may wish to develop both a submodule, e.g. OpenIFS, and the superproject EC-Earth.Development work shall be done on your own fork of EC-Earth4 and preferrably on a separate branch of that fork.
Start a merge request as soon as you have started working on your development branch.
You will notice that we use submodules to facilitate collaboration with projects like OpenIFS and Nemo. With submodules, the EC-Earth 4 repository encapsulates these components’ own repository. In that context, we refer to the EC-Earth 4 repository as a superproject.
We have also protected the EC-Earth 4 project on GitLab. You can read it and clone it but will not be able to write to it. We will show how to use forks (your own copies on GitLab) for sharing your work.
The required setup for contributors is presented in the Environment setup page and needs to be done only once. The steps to create and work with a branch that can eventually be merged into the reference repository are given in the Daily work page. When working on a feature that takes a significant amount of time, you will want to get the latest updates from the main line of development. The procedure is presented in Synchronizing your branch with main. The final merge of the developments is described in Merging your development work into the main branch.