There are many ways you can help, not all of which involve programming. Simply using the application and reporting any problems you find is extremely helpful. Translations and documentation are also enthusiastically welcomed. Also very welcome are suggestions for an improved user interface, especially if you have experience with user interaction design.

Bottom line: If you want to help out, there are many options, and we'd be glad to have you.


Agave is written in C++ and uses the excellent gtkmm toolkit. If you'd like to help develop this application, please join the devel mailing list and introduce yourself. Agave is registered as a project at Gna!, which provides most of the resources for developing the application. Visit the Project page for more information. The project page contains a bug tracker, a patch manager, and several other things, including the ability to apply to become a project member.

NOTE: Up until recently, Agave used subversion for source code management. As of February, 2006, however, we now use git, which makes maintaining and merging between branches much easier. In theory this should make it easier for potential contributors to start hacking on it without needing to get commit access to the subversion repository. Well, that's the theory anyway. See below for the gory details. But the important thing to note is that the subversion repository mentioned in the gna project page is not up to date.

Using git

Unfortunately, git is not officially supported by my hosting provider, so I've not yet found a perfect solution for hosting the repository and allowing anonymous access. If you're interested in hacking on Agave, the following procedure should work for now (note that you'll almost certainly want to use git version 1.2.0 or newer). Most distributions don't package this version yet, but it's fairly easy to build (at least if you're using linux). I've also successfully built and used git on Windows (with cygwin) without much trouble.

My main git repository is located on my main development computer. Periodically I push it to the gna download area, so the repository hosted there should be fairly up-to-date with my main development branch. Issuing the following command should create a local branch on your machine that you can start hacking on and committing to right away:

git clone agave

This should create a new directory named agave on your computer which contains the full history of the Agave repository. It will also check out the master branch by default. You can create branches for particular features that you want to work on, or you can hack directly on your master branch if you prefer. Periodically, you may want to update from the official repository. You can do that by issuing the following command:

git pull origin

When you've finished a feature or bugfix and committed it to your local repository and want to incorporate it into the master repository, you can do one of two things. If you've published your repository online where I can access it, you can just send me an email telling me to pull from your repository (including the branch name) and I can merge things into the official repository without requiring you to send any patches. If your repository isn't publicly accessible, you'll need to create a patch and send it to me. To generate a patch against the official repository, issue the following command:

git format-patch origin

I'm still learning a lot about git myself, so hopefully this setup will improve over time. In the meantime, reading this git tutorial should give you a good overview.

Contact Information

Have a question about using the application? Building the application? Want to help with development? Contact me here:

jonathon AT quotidian DOT org
jonner AT jabber DOT org

If you simply want to make a suggestion or complaint about the application, you should probably file a ticket in the bug tracker so that I don't lose track of it.

You can also sometimes find me in the #c++ channel on with a nickname of jonner.