Like it!

Join us on Facebook!

Development: GIT setup

Our development version is hosted and mantained on GitHub. The official page can be found at and the repository with the master branch at

Please refer to the GitHub documentation on how to fork, pull, push and so on. If you're new to GitHub, we would suggest a very nice tutorial for beginners.

Our branching model

We put the most experimental code in a feature branch. When the new feature is completed, we merge/rebase the feature branch into master and we drop the feature branch. However the master branch does not necessarily point to the latest release. For that, we use tags, whenever a new release is ready. For example, if you do git tag --list you will see the full tag list:


Do you want the release v0.11.2? Just git checkout v0.11.2 and you're done.

TDD and continuous integration

Our development style strives to be test-driven as best it can. There is a daily growing test suite under src/tests that you can compile and run as described in chapter Compiling from source. A subset of those tests are crafted for Travis CI and they rely upon travis.yml script, which takes care of some "dependencies" (wave files, midimaps, VST plugins and so on). The script basically downloads the needed files, for example:

# Download midimaps package for testing purposes

- wget -O
- unzip
- mkdir -p $HOME/.giada/midimaps
- cp giada-midimaps-master/midimaps/* $HOME/.giada/midimaps		

You can however run the tests locally thanks to our smart configure script: it's instructed to guess whether those dependencies are present. If not, all test cases that require external files will adjust themselves accordingly.

Compiling the source in the local repository

The source in the repository follows the same rules of the .tar package you download from this website. In the chapter Compiling from source you will find all the informations needed.

In addition to that, you may need to run the included script (available only in the repository) in order to prepare the build environment:

configure [...]

The first time you clone the git repository you have to initialize it, because Giada contains a couple of external dependencies configured as Git submodules. Go into the project folder, root level and do:

git submodule init
git submodule update	

Use the official Docker image for Giada

Instead of cluttering up your environment with dependencies, scripts and compilers you may try our Docker image, designed to ease the compilation and testing processes. Take a look at the GitHub repository to know more.