New Developers Info

The easier way to make a contribution is through the Github web site. Either way will require a Github membership. If you are not experienced with Scala, you have found this site and want to experiment, you will need to install Java JDK11+ and sbt. more complete documentation. For getting started on Linux / Windows / Mac will come later. The basic build has been tested on Linux and Windows 7. Jdk 17 preferred.

System update
apt sudo update sudo apt upgrade

There are default values here that you can change as you work down the page. Although once you've used a value, stick with it or you will create an inconsistent system. Insert your own values below. the data is used for page generation locally and is not sent back to our servers.

Install Java. Currently suggesting Java 25 LTS. Note the jdk at the end of the version. sudo apt install openjdk-25-jdk -y Check the version java -version
openjdk version "25.0.3" 2026-04-21
OpenJDK Runtime Environment (build 25+36-Ubuntu-1)
OpenJDK 64-Bit Server VM (build 25+36-Ubuntu-1, mixed mode, sharing)
Open the all users environment configuration file
sudo nano /etc/environment Add line JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64

JVMs

So at least recent versions of Kubuntu the java command on the path, is at /usr/bin/java. It is a link to /etc/alternatives/java. This is also a link. To install a different java, install the JDK root folder in usr/lib/jvm. It doesn't have to be here, but it makes it easier to go with convention. Run sudo update-alternatives --config java In my example this gives
Selection Path Priority Status
0 /usr/lib/jvm/java-26-openjdk-amd64/bin/java 2611 auto mode
1 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 manual mode
* 2 /usr/lib/jvm/java-25-openjdk-amd64/bin/java 2511 manual mode
3 /usr/lib/jvm/java-26-openjdk-amd64/bin/java 2611 manual mode

So leave the number as it is, then add to alternatives. I put the number 3 at then end because in my case slots 0 to 2 are already taken. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 3 then repeat sudo update-alternatives --config java

Sbt install

echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list Curl is installed by default in Kubuntu 26.04 and 25.10, it is not in Kubuntu 24.04 so if curl is not installed you need sudo apt install curl curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo tee /etc/apt/trusted.gpg.d/sbt.asc sudo apt update sudo apt install sbt

Intellij IDEA

sudo tar -xzf idea-2026.1.4.tar.gz -C /opt
For IntelliJ useful options:
  • File => Editor => General -> Other -> tick Show quick documentation on mouse move.
  • File => 'Build, Execution, Deployment' => Compiler -> Build project automatically
  • Project-Pane => Options -> 'Flatten packages'

Git and Github

Set git user name git config --global user.name "MonaLisa" Check user name properly set git config --global user.name MonaLisa Set git email git config --global user.email "YourEmail" Check email properly set git config --global user.email YourEmail Store Github username and token and other useful git commands. git config --global credential.helper store git remote show origin git init --bare myrepo.git git push -u origin NewBranch

Git Commands

For transferring files from the master repository to your local machine and back again.

Sbt

A build utility. We also use Mill. Other well known build utilities are Ant, Maven and Make. It is for compiling and running the applications and other tasks.

Chrome / Chromium

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb If any errors appear about missing dependencies you may need to ‘force install. sudo apt -f install

Sublime Text 4

wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo tee /etc/apt/keyrings/sublimehq-pub.asc > /dev/null echo -e 'Types: deb\nURIs: https://download.sublimetext.com/\nSuites: apt/stable/\nSigned-By: /etc/apt/keyrings/sublimehq-pub.asc' | sudo tee /etc/apt/sources.list.d/sublime-text.sources sudo apt update sudo apt install sublime-text subl --version Sublime Text Build 4200 // These settings override both User and Default settings for the Scala syntax { "tab_size": 2, "translate_tabs_to_spaces": true, "rulers": [100, 160] }

SSH Server

This is normally installed on Linux VPSs, but for home machines
Sudo apt install openssh-server sudo systemctl enable --now ssh