Developer Guide
This section of the documentation is designed to assist MCCS developers. It is organized according to the Diataxis framework:
The “Tutorial” part covers simple step-by-step instructions to learn the basics of deploying, testing and contributing to the MCCS software.
The Explanations part provides in-depth information about various parts of the project. It is rather verbose, but the information provided is useful for understanding the project and its components.
The third part, “How-to Guides”, has a series of practical guides to accomplish various different tasks.
The Reference part provides more technical information. It currently contains a list of properties for Tango Devices in ska-low-mccs.
Prerequisites
There are a few specific prerequisites for developers to be able to contribute to the MCCS project.
Programming
Underlying the MCCS project is the Tango framework, which is integrated using the PyTango module .
Understanding concepts such as devices, attributes, commands will be very useful for new developers and the Tango documentation does an excellent job of covering them.
Tools
MCCS uses a variety of tools to help with development, testing and deployment.
The most important ones are:
Poetry for dependency management and packaging.
GitLab for version control and CI/CD.
Docker for containerization.
Helm for managing Kubernetes applications.
There are other tools used in this project (linters, formatters, etc.), but the ones listed above are the most important for developers to be familiar with.
Additionally, the team uses K9s for managing Kubernetes clusters, VSCode as a code editor (with dev containers), and Minikube for running a local Kubernetes cluster. These are not required, but they appear in the documentation.