cwidget/ documentation/ Contributing to cwidget
  1. Getting the development tree
  2. Sending patches
  3. Compiling the development tree

Getting the development tree

While you can always work from the distributed source (see getting cwidget), I recommend that you use the active development tree to ensure that your changes are compatible with the current state of cwidget.

The cwidget development tree is managed using the git version control system. You can install git using your operating system's utilities or by following the instructions on its web page. Once it is installed, issuing the command

git clone git:// cwidget

will retrieve the latest version of the source and store it in a directory named cwidget. You can update this directory to the latest source version by changing to it and issuing the folowing command:

git pull

git is a fully distributed version control system. This means that once you have made some changes to your copy of the source code, you can commit them by running

git add <file>

for each <file> that you have modified, then running

git commit

and typing a commit message. In order to make it easier for us to review your patches, I recommend making small, logically distinct commits rather than checking in 50 changes at once. If this means that you have dead-ends in your change history, that's fine.

For more information on using git, see the git documentation.

Sending patches

Once you have committed some changes, you can automatically generate emails containing your patches:

git pull && git format-patch origin

This command will generate one or more patches represnting your changes relative to the upstream tree, writing the names of the files to standard output:

daniel@alpaca:/tmp/cwidget$ git format-patch origin

Patches should be sent to You can use patches as email templates, for instance via

mutt -H 0001-A-simple-test-commit-to-try-bundling.patch

, or you can just attach the patches themselves to your email. Using the patch as a template is preferred, but may not be easy or possible in all mail readers.

Compiling the development tree

In addition to cwidget's normal prerequisites, you will need the following additional pieces of software:

Important: it appears that automake-1.10 may be incompatible with cwidget. You should use 1.9 until this is resolved.

These tools allow you to generate the build system of cwidget. The build system can be generated by running

sh ./

, which will create and run a configure script to build the Makefiles. Once autogen is finished, you can just run


as usual to build the library.