Skip to content

Latest commit

 

History

History
97 lines (67 loc) · 4.36 KB

DEVEL.md

File metadata and controls

97 lines (67 loc) · 4.36 KB

Developer Guide

This document describes the evelopment procedures for Nuvolaris.

Prerequisites

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

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 folders nuvolaris-*

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.

Build your own development environment

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:

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.

Java JDK

For Java, we test with Amazon Corretto.

You should be able however to use other Java distribution.

System Development Tools

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