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.

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.

The configure and/or the make scripts may complain about something, especially if you alter, add or remove the files in the repository. In that case use the included script (available only in the repository):

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