Contribution Checklist

This is a step-by-step guide for Tudat developers. Since Tudat is an open-source project, a developer is someone who wants to add or improve something within the Tudat ecosystem. This includes for instance software development and documentation. In this guide, we make no difference between a developer who is part of the core tudat team and a developer outside of it. In addition, in this guide we assume that a developer is extending functionalities directly from tudat source code (in C++), which then requires to expose code to tudatpy (in Python) and write associated documentation. If a developer is not following exactly these steps, they may skip some of the elements in the checklist.

The DevOps checklist is separated in two. One checklist is made for the developer that will for instance add features or documentation. The second checklist is made for the reviewer to approve and distribute the changes made by te developed.

Checklist for developer

  1. Preliminary operations:

    1. Fork original tudat repo and set original repo as upstream.

    2. Branch out from the develop branch and open a feature/FEATURE_NAME branch (in tudat-multidoc for documentation, tudatpy for code exposition to Python, etc…).

  2. Develop:

    1. Write code for new functionalities.

    2. Write new unit tests (in C++ and/or Python depending on the nature of the functionalities).

    3. Run tests and experiment with the local build.

  3. Expose and document:

    1. Expose the new C++ code in tudatpy (to do so, follow the same steps in 1 and 2).

    2. Write docstrings for the associated API reference in tudat-multidoc (to do so, follow the same steps in 1 and 2).

    3. [Optional] Add further documentation on tudat-space and examples of new functionality in tudatpy-examples.

  4. Final operations:

    1. Open a Pull Request (PR) into the develop branch of each of the relevant repositories (for code, documentation, examples, etc…).

    2. Interact with a reviewer and, if necessary, implement the requested modifications.

Checklist for reviewer

Once the PR has been approved, the reviewer (or a member of the core tudat team) will:

  1. Build and test new conda packages on all operating systems.

  2. If a release is needed:

    1. Open release branch.

    2. Release new version with bumpversion.

    3. Release new version on Github.

    4. Trigger build of new conda packages.

    5. Trigger new build of documentation and release new version.

Tip

For documentation, it is possible to merge the feature branch directly into master to speed up the process.

Note

The steps for the reviewer will be soon automated. A beta version of such system is already in place, the current status and guide can be retrieved here.

DevOps resources

Below, you can find specific guides for DevOps in tudat.

See also

There are also detailed guides about Software Development and Software Documentation.