Contributing

Magasin follows an open community approach towards accepting contributions.

In this section you have access to specific documentation useful for developers who would wish to dive into the internals of magasin as well as the approach we are following regarding the processes and the documentation.

Our main repo is Github-hosted at the site github.com/unicef/magasin. It hosts the main components, setup and admin scripts plus documentation.

We are following an adapted mono-repo approach for the larger trunk of the platform’s codebase. Below are the sub-projects of the core repository:

  1. Helm chart repository. Magasin, similarly to a GNU/Linux distribution is basically a collection of independent open source projects that are setup to work together in a common environment.

In general, our approach is get a copy of the officially maintained helm chart. However, there may be projects that do not have an official helm chart. In such cases we develop ours.

  1. magasin installer. This is a shell script that allows us to install all the requirements (such as helm, kubectl, pip, mc) and the helm charts using one single command.

  2. mag CLI. This stands for Magasin command line interface. It provides a consistent interface for some common tasks leveraging the common approach and conventions of deploying magasin. It is a python utility based on click, a library for creating CLIs in a compostable way.

  3. Project documentation: Documentation is a key pillar for the platform. Magasin has a diverse audience of users with varying needs. In addition, magasin website is based on Quarto, a publishing platform which allows us to write markdown and generate an static website. It allows us to focus on the content.

In addition to these, we have other libraries and tools that are in other repositories.