Skip to main content

Opening up to the community

 

Tulip is open source software, but the development process is not really open.

Most of the development happens at the LaBRI (Laboratoire Bordealais de Recherche en Informatique; something that would translate roughly to "Computer Science Research Lab of Bordeaux"), and there has not been a patch submitted since I arrived in the team a year ago.

Thankfully we have bug reports from users, but too many are from people having trouble building Tulip. (Actually, these result from a miscommunication from us, as we did not state clearly that the autotools are deprecated since the 3.4.1 release)

We have begun an effort to open up and try to create a community around Tulip. In order to do this, we need to lower the entry level, and ease the process to accept patch on our end.

Lowering the entry level

We have to admit that contributing to a project such as Tulip is not as easy as it could be. First, it's C++, everybody is not familiar with this language, and setting up an environment can be time consuming and sometimes a bit frustrating.

We already started to improve this, by distributing "SDK" archives for windows, which regroup all the required dependencies, and we wrote tutorials on how to setup a Windows environment fo MinGW and Visual Studio (from 2008 on), for which we are adding support in Tulip 3.5.

We are going through re-writing most of the documentation, as a good part is out of date, and some parts need proofreading.

We also have the plug-in of the week, to try and provide tutorials on how to develop every kind of Tulip plug-in, but also how to perform some tasks with Tulip.

Communication channels

Using sourceforge is godd, but not good enough. Creating an account is something that everybody may not be willing to do when wondering how to do something on Tulip. So we created the #tulip irc channel on freenode. There is always someone there, and more of us drop by during our work hours (approximately 9am to 6pm UTC+2).

We enabled commenting on the news, tutorials and images.

Continuous Integration

In order to ease the development process in general, we (finally) put a Jenkins server into place. For now it is only building Tulip nightly on Ubuntu VMs, but soon it will build on Mac OS and Windows too, and create nightly builds installers for everyone to try the latest tulip-svn.

In the future, this Jenkins server should also generate the plug-ins server, to provide the latest and greatest version of the plug-ins as they become available.

 

Our Goal

Let me describe our goal with this little story of what happened to me yesterday:

As I was setting up the Jenkins server, I ran into a showstopping bug: the VirtualBox plugin could not connect via SSH to VMs who were turned off. The first SSH connection happenned before the VM had fully booted, and the VirtualBox plugin was not detecting the error, thus considering everything went fine.

I found an existing bug that was 9 months old describing this exact situation, and decided to take a stab at it rather than throwing my whole day of work out the window.

After getting the code and following the stack trace, it became clear that the SSH plugin was catching an exception the VirtualBox plugin was expecting.

After writing the fix (throwing a new exception), dropping in the IRC channel, and on the advice of some Jenkins community members, trying it out (maven made evertything pretty easy for me); I forked the plugin on github and created a pull request for my fix.

One hour earlier I had no idea how to do this, but a bit of research and the help of the community members was enough to get me to commit this patch. I could ahev gone an easier way and just sent the patch over irc, but I wanted to try out the harder way of doing things a bit. Turns out it's still pretty easy once you know how to do it.

This story sums up what we hope will happen with Tulip in the future: if you have a bug, the will and skills to fix it, we can help you do it without too much trouble.

Google Summer of Code

To try and develop this community, we are applying for GSOC this year !

Our ideas page is here, if you have ideas of things you would want, add them in the coments :)

Other news

In somewhat related news, the Game of Life tutorial got updated with some interesting content, finally entering the thick of things.