Highlander architecture
Multiple components and mechanisms are used to create and run the environment. Let's list them and see how they work together.
Module building
Modules are created using EasyBuild. They are based on configurations that you will find in the highlander-easyconfigs repository.
In the module-builder repository, you will find the recipe for a container image that will be ready to use to build your modules. Of course a pre-built image is available.
Module management
This tool allows you to easily manage modules in your shared libraries: you can launch local builds, or directly fetch pre-built modules from repositories. You can also choose which module you want to show to your users, and which ones you want to promote.
Two repositories are available for this tool: module-manager-backend and module-manager-frontend.
JupyterLab extension
The jupyterlab-extension extension provides a new menu in JupyterLab to easily browse available modules, load/unload them, or create your collections for easy environment setup.
JupyterLab
In the jupyterlab-highlander repository, you will find the recipe to create a JupyterLab container image that will include the necessary components and configuration to dynamically load modules from the shared library. Of course a pre-built image is available.