NewsWorksSoftwareTextBioContact
background image

Jamoma workshop: Moving to GIT

August 28, 2009

Picture_5

For the last week, in the aftermath of ICMC2009, we have been doing a Jamoma development workshop in Montreal.

The Jamoma project has grown increasingly large and complex. In Albi last winter we discussed how to think of the project, and conceptually reorganized Jamoma to be a framework for a number of efforts or sub-projects, the common factor being that they all are be catering for and contributing to research for and in the arts.

The Jamoma web site was redone last spring, as we were moving away from Zope:

  • The main web site currently consists of a number of static html pages. Eventually there are plans to turn this into a Ruby on Rails application. That should not be to much work, as we will be able to pull code from my web site as well as the website of Electrotap, and combine the best of both, while keeping it as slim as possible.
  • Development is now coordinated using Redmine. Redmine serves the project really well. One indication of that is the number of issues that has been tracked over the last months, many of which has been solved.
  • The wikiserver software shipping with Mac OSX Server 10.5 is used for tutorials and a blog.

The structure of the main web site and Redmine now reflects the various sub-projects we are dealing with. GDIF and SpatDIF are two additional independent projects, their association with Jamoma being that Jamoma is used as a development environment for prototyping the specifications.

We expect the new structure to be flexible enough to be able to cater for management of additional sub-projects in the foreseeable future.

One of the major outcomes of the workshop this week has been a total overhaul of how the source code of Jamoma is maintained. SVN has served us well for a long time, but the project has grown to consist of four separate repositories distributed between SourceForge and Google-code. Also there has been a growing need for being able to work with parallel branches. For some of us, it has also been a shortcoming that SVN requires you to be online in order to be able to push commits to the repository.

Earlier this summer, I set up GIT locally to work with SVN. This enabled me to keep working on Jamoma during my “summer vacation”, although I could be without internet for days. Tim has also checked out GIT over the last month, and found it attractive enough to start porting the repositories.

In spite of a bit of growing pains, the new git stuff now seems to start coming together, and I guess we’ll all gradually get used to it. Theo has done a great job over the last week getting the Windows externals to compile again after reorganizing, but the windows externals remains to be tested thoroughly in Max. Pascal has done his best to make life simpler for the ones of us using OSX by implementing a "git client in Max (see screenshot above). It is pretty impressive. As for myself, I have spent a lot of the workshop documenting the GIT work flow on Redmine.

The new repository can be found here. Info on how to get going with Jamoma and GIT can be found here. There’s a lot of documentation at GitHib as well that is much recommended. Pascals Gitter client can be downloaded here.

Spending this much time on project administration can feel a bit tedious, but I am convinced that it will pay of in the long term. Hopefully we will get much better at keeping a fairly stable master branch in the future, even at times when we are in the middle of major revamps of core code of the project.