Getting Started¶
Welcome to the Development section of our documentation. This section provides comprehensive guides, references, and best practices to help with the development of CTA.
How to Contribute¶
For our version control management practice we use trunk-based development. This means we have a single main
branch where we frequently merge small features, bug fixes and maintenance updates. It is important that changes are kept small and focussed.
The branch main
is protected. It is therefore not possible to directly push new commits. The only way to add changes is with a Merge Request (MR).
- Request access to work on the CTA repository (contact us)
- Set up a development environment
- Choose or create an issue to work on
- Create a branch on the CTA repository
- Make your changes on this branch (see Coding Conventions)
- Open a merge request from your branch into
main
- Ensure all necessary checks pass and assign/request a reviewer
- Wait for your work to be reviewed and eventually merged
CTA Technologies¶
CTA is written primarily in C++. It uses CMake or the build system in combination with a SPEC file to generate the binaries/RPMs.
For testing/development purposes, a combination of Kubernetes and Helm is used for spawning CTA in containers. Many of the Continuous Integration (CI) scripts are written in Bash or Python.
- To learn more about the Continuous Integration setup used for CTA, see the
Continuous Integration
section. - To read more about architecture of CTA, see the
Architecture
section.