Best of Breed

At work I’m involved with setting up some new infrastructure, and I thought I’d write up what I am finding as well as solicit advice from others. We need what most development shops need, all of it company-wide and cross-platform (Mac, Windows):

Source Control — Git

This is pretty straightforward. We were using Subversion and are moving to Git.
There are other distributed source systems around like
Mercurial,
Darcs,
etc. but git is the clear winner in terms of power, extensibility, space and speed.

Source Hosting — Gitorious / GitHub

A little less straightforward. I honestly thought Github was a good choice, but an almost-as-good choice if you want to keep your code inside the company firewall is Gitorious, which is kind of an open-sourced Github that you can deploy for free.

Unfortunately, Gitorious is a beast to set up, with its many dependencies, some at specific versions.

Fortunately, TurnKeyLinux is on the verge of releasing a Gitorious VM appliancet. I’ve gotten a server running using some pre-release patches (you can see progress on the TurnKey Linux forums).

Bug Database

No clear winner here.

  • Bugzilla is a mainstay, but can be a beast to administer.
  • Trac has great integration with source and wiki, but is a bit limited.
  • Redmine seems ok, but has a very busy interface (all those fields!).
  • Mantis isn’t bad.

Build Machine

Every time someone checks code in, a build should kick off.
Additionally, some testing should be done.
If checkins are frequent enough, simple unit test are enough,
with full regression tests saved for the nightly builds.

Code Review

Ideally, code checked in must be reviewed before it is accepted into the tree.

  • Gerrit is often mentioned, but it runs on Java.
  • CodeCollab is really good, but commercial.
  • Gitorious has a method involving checking code into a temporary branch, which is reviewed and then merged with the trunk/current branch if it passes muster. Haven’t tried this much though.

Wiki

Having a central wiki, editable by all the developers is essential to a good dev community, even within a company.

  • MediaWiki, the heavy hitter.
  • Twiki, a popular, light-weight wiki.
  • Gitorious has a built-in wiki.
  • Redmine has a wiki.
  • Trac has a wiki with good source integration

Published by

rae

Mac developer

One thought on “Best of Breed”

  1. I really liked the list of items you have gathered but would suggest an addition and a removal if I could…

    The removal is for Tinderbox3 as I don't think it (or really any of the Mozilla Tinderbox clones) is active right now.

    The main addition would be for Jenkins (aka Hudson) as it is a wonderful CI server but I would also give http://sifterapp.com/ an entry in your bugtracker list if you don't mind hosted apps.

    I would also give Gitorious another look – a friend of mine installed it on the server we use for xmppnews.com and he didn't report any major grief.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

This site uses Akismet to reduce spam. Learn how your comment data is processed.