This document describes the evelopment procedures for Nuvolaris.
Before starting you need a computer with enough memory. Since we use extensively Docker and create a local development environemnt, you need to install docker either on Windows, OSX or Linux and assign to Docker at least 8 gb of memory.
Given the high memory footprinr required, it is pretty unlikely you can work productively on any machine with less than 12G of memory.
either:
-
Use VSCode and the prebuilt Devcontainer that is the easiest and faster way to work, but you need to use VSCode and work in a Linux-based environment in a container with
bash
. -
Build your own development environment so you can use your IDE and tools, but the setup is up to you and we provide only generic instructions.
Using this option you can directly work and develop each subproject in a development containers with all the dependencies already installed.
Before starting development, you need to:
- Install VSCode
- Install the Remote Containers extension.
- Now you can clone all the source code with
git clone --recurse-submodules https://github.com/nuvolaris/nuvolaris
- Open the folder with VSCode and then say YES when it asks to "reopen in container"
- Finally, open one of the workspace file (the file
workspace.code-workspace
) present in every subproject in the foldersnuvolaris-*
Note that accessing to code stored in your local filesystem can be slow. In alternative you can put code in a docker volume with this alternative procedure:
- Fork a repository in your account
- Start VSCode
- Open the repository in a volume with
F1
|Remote-Containers: Clone Repositories in a Container Volume
- Log in GitHub and select your fork.
- Open your workspace.
If you do not want to use VSCode and our development container, you can setup your own development environment. Here we provide generic instructions, your mileage may vary.
Developent happens in modern Unix-like environments. So you need either Mac OSX, a Linux distribution or Windows with WSL. Working with non-unix environment (like Windows PowerShell) can be possible but it can turn out to be difficult. We do not support it, you are on your own.
Before starting you need to preinstall:
- System Development tools
- Java JDK v11 or later
Then clone everything with:
git clone --recurse-submodules https://github.com/nuvolaris/nuvolaris
Once you have all of this you can start development with
cd nuvolaris
./init.sh # once
./start.sh # every time
Note that it will take a long time only the first time to dowloand and install the used tools. It will also create a local Kubernetes cluster using Kind.
For Java, we test with Amazon Corretto.
You should be able however to use other Java distribution.
Procedures to install Unix development tools (also valid in the various Windows WSL distributions):
- OSX:
xcode-select --install
- Debian or Ubuntu:
sudo apt-get install build-essential procps curl file git
- Fedora, CentOS, or Red Hat:
sudo yum groupinstall 'Development Tools' && sudo yum install procps-ng curl file git