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.
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.
sudo apt install openjdk-25-jdk -yjava -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
Save and exit (Ctrl-X and then Y)
sudo reboot
After reboot or logging in again for remote server
echo $JAVA_HOME
/usr/lib/jvm/java-25-openjdk-amd64
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
sudo tar -xzf idea-2026.1.3.tar.gz -C /opt
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 clone https://github.com/Rich2/openstrat.git clone Used when you want to copy all the files locally (for the 1st time or
when you've deleted the project directory) to grab your own copy of openstrat from github https://github.com/Richtype/openstrat to your local folder.cd openstrat The change to the newly created openstrat project folder.git pull origin master Bring your local copy up to date with Github.git add -A Staging: tell git you've made new files to add to the project.git commit -m "A description of this commit." Describe the changes.git push origin master Now push your local changes to master up to Github.git commit -a -m "A description of this commit." Staging without adding new files## push alternative method (you've only
made |changes to existing files shorthand version of the above but will not take into account any new files you may have created.git status To check the status of your copy of master.git config --global credential.helper "cache --timeout=3600" Cache user name / password store username/password for a set
number", |of seconds, the next time you pushclean Gets rid of the cacheUtil/clean To clean an individual modulewget 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
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]
}