DRAFT (SO 15/2 2012)

Info for developers


Using the git repository

The version control system in use to manage the Framework is git. Anonymous read-only access using the git protocol allows anyone to clone the repository using the following commands:

git clone git://

To access the repository through ssh, if you've been given read/write access (see below), simply replace the git url like this

git clone

Write access is managed with gitosis. Changes are pushed to the central repository over a ssh connection. In order to get write access, you need a ssh public key (which you'll use to connect to the server). Send your key and the name of the module you'll want to contribute to by email to me (matias.guijarro at esrf dot fr). For more detailed information see Git write access.

There is one central repository for the Framework, but each brick and control object lies in its own repository.

If you cloned the Framework using git, and later got write access, you'll have some more commands to issue before you can push your changes.

In the Framework directory:

git remote set-url --push origin
git config branch.master.remote origin
git config branch.master.merge refs/heads/master

For some older versions of git the set-url subcommand of the remote command is not available so you may have to do that instead:

git remote rm origin
git remote add origin
git config branch.master.remote origin
git config branch.master.merge refs/heads/master

Git will now use the ssh url for all its operations on the Framework.

You may also want to configure your user name and email, as it will appear in git logs:

git config --global your@email
git config --global "Your Name" 

Drop the global option if you want to use these settings for the Framework only.

Available Bricks

Once you checked out, please look into


Writing components for the Framework

You should first get familiar with the concept of signals and slots used by the framework.

Writing a Brick

See how to write a Brick

Writing a Control Object

See how to write a Control Object.