=============== 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.