Wednesday, January 21, 2009

Choosing a FLOSS Project Host

Tune in next week to hear Mrs Piggy say - oh wait a minute, this is next week, kinda.

So, the next step in building the GREATEST APPLICATION EVER (or at least another misc software thingy) is picking a place to host the code. (Those of you not paying attention can find out why we need a that already here.)

What are my choices?
Let's take those in order. (Good thing they are in the right order already, huh?)

Self hosting is out. As I said before, I want to work on the project, not the website, as much as possible. Mediawiki and bugtracker would likely be all I need, but I'd rather someone else do the plumbing on this.

Google Code is easy to say no to as well. Two big knocks here are unreliable downloads (I mirror a Google Code project on a cheap webhosting plan, because the Google Code repository barfs on people regularly...) and typical Google lack of support. I know I'll need hand-holding, and with Google I'm not going to get it.

Sourceforge is the biggest one of the bunch obviously. Fairly full featured from the public exposure side, and it obviously works for many people. From using sourceforge casually (i.e. as a user not a programmer) the experience has been ok, but annoying. I don't like their default web page setup, it seems quite unintuitive to me and that's likely why everyone puts their own web pages up in front of it. Their bug reporting and built in FAQ stuff is clumsy looking too - it often seems to be poorly handled by smaller projects. And again as an enduser, their registration process for many things I've had issues with in the past. I've also heard reliability issues, although not so much lately.

To sum up, lots of little niggly negatives that I might be exaggerating. It works for so many it must be a real alternative. If there wasn't a better alternative I'm sure I could make it work.

Savannah is the GNU project host. My comments here can be summed up pretty easily. GNU projects on average don't seem to be very attractively presented - and Savannah is no exception. I dunno how well it works, but it looks pretty GNUish :-) Knowing the GNU guys, it's likely reliable and has some cool features once you grok it. Savannah seems to have some sort of approval process where they make sure you are the kind of project they want to host. Since both the projects I've been thinking about may have some dependencies that aren't 100% GNU (I'm thinking out loud here, I could be wrong) that might be an issue, and I'm not sure my plans are firmed up enough to waste some body's time reviewing them at this point. Without worrying too much about what they provide, I don't think this is a good fit.

Github is a cool looking newer alternative. Git seems to be one of the current stylish new tools right now, and github jumps right in there with both feet. Free software projects host free, and proprietary pays, which is a logical enough way of approaching things. They've got some stuff you don't see elsewhere, leveraging (I assume) the power of git, like graphing code changes and other geeky good stuff. They've got training video, which shows you have new wavish they are, and a good vibe about the place. When I threw out a twitter query last week about potential project hosts, Github got two thumbs up from the responders. On the other hand, it's all very developer centric, rather than end user centric. As a regular ole 'how do I use this thing user, it's not very friendly. There are related hubs Campfire and Lighthouse that round out their offerings, but they seem to be a little more profit looking than Github itself. I doubt my project would ever hit the point of requiring one of their for pay services, but hey I can dream can't I ? The last thing I noticed, and probably the biggest negative is how Ruby centric the whole thing appears, at least on the surface. Ruby on Rails is the biggest project they have, and I bet it's presence there is why so many other related projects ended up there. I've nothing against Ruby, it's just another language I don't know (yet?) but it shows the emphasis of the place.

Again, like Sourceforge I think I could make this work, but I don't think it's the best choice.

Trac is pretty easy for me to rule out too. First up, it's subversion, which would be yet another CVS to learn. Second up is the web interface. I don't think I've ever used a Trac based site (again as an end user) that's made a lot of sense to me. These sights seem a confused mix of wiki, faq and bug tracker, with a real blurred line between end-user and developer, and no clear indication of what you can change and what you can't. A good admin could likely herd it into line, but I don't want to get into that.

Tux Family actually looked good for a couple of minutes. There are some neat projects there, and the atmosphere seems great too. It's a moderated sign up process like Savannah. The multilingual FAQ was nice touch I thought, and the European heritage seems to shine through in places, in a good way. What took them out of contention were these little tidbits - "Tux Family is not a test platform", We will not accept "student projects that will die in a month or two" due to lack of resources. Fair enough, but that might just describe these efforts pretty well, so let's go our own ways before we even start :-)

Which brings us to Launchpad. Those of you paying attention already knew my choice since they were on the bottom of the list, so there you have it.... Oh, ok I'll explain why too.

Launchpad looks too complicated, frankly, ala Trac. On the other hand, the emphasis seems to be in all the right places. They want to promote cross project communication and support, and my projects are going to lean heavily on other the efforts of already established software. Their philosophy seem to fit into my objectives pretty well. I'm especially intrigued by the mention of translation services. Multilanguage support was high on my list of things I wanted, and I'm hopelessly unilingual, so maybe I can get some real wins there. Just wandering through the tour made me feel like it's got the right approach. I'm already an Ubuntero, and Launchpad has always performed well for me. As I've started to work my way through the Launchpad documentation, I'm finding it helpful, because it talks alot about 'why' you do things rather than 'how'. That's valuable to me, since I've got zero exposure to software project management prior to this. Launchpad itself seems to have a lot of Python bits to it, so a Python project isn't going to be out of place. Sign up was simple and straightforward, with no moderation steps.

It's not perfect - they use bazaar rather than git, and don't provide any wiki services, or even a home page past the generic one, but I think I can deal with that when I get there.

Posts like this help make Launchpad seem to be the best choice
, let's try 'er out!

(Note to self - enough with the brackets already!)

1 comment:

  1. Oh for goodness sakes - Launchpad didn't appear on the original point form list of options - I'll fix.

    Also of note, I tripped over these comments about github since I created this blog entry - interesting reading if you are intriguied by githost