Loading...

Building Your Own Bazaar Playground

Mark Shuttleworth announced at OSCON 2008 that Launchpad will be open source within 12 months. This is good news. A lot of people have whinged about Launchpad's lack of open source status as the reason they don't use Launchpad for their project hosting (although it does seem that they are quite alright posting projects to Google Code). What people don't realize is that many of Launchpad's elements are already open source.

Recently, Canonical helped the Gnome community set up a "Bazaar Playground," a server which contains Bazaar branches created from the trunk and branches of Gnome's various Subversion repositories. This allows all the Gnome hackers to give Bazaar a test run and find out how wonderful their workflow can become using Bazaar. Everything from this project is available as open source software. I thought I'd post about the software used in the playground, as well as other software that can be used tho achieve similar functionality of Launchpad.

Bazaar and Friends (Plugins)

Obviously, Bazaar is the big part of this mix. If you're setting up a bazaar playground, it makes sense to that you'd need Bazaar. However, one of the great strengths of Bazaar is in its plugins. In this case, the bzr-svn plugin that will allow you to create bzr branches from an svn repository and push and pull from it just like you would any bzr parent branch. It's an excellent starting point for getting comfortable with bazaar without completely dumping subversion. It was a good transition for me as well, because I wasn't quite willing to commit (no pun intended) to bazaar when I first tried it out. Without bzr-svn, I wouldn't have been able to give bazaar a fair chance in working with my stable projects.

Loggerhead

I've never liked the Loggerhead name, but it's a great little piece of software. Loggerhead is a web viewer for bzr branches. A good example of what loggerhead looks like can be found here. It's always helpful to be able post a url for a specific revision, a diff between revisions, etc. The Gnome theme for Loggerhead took more work than expected, and so work is planned for making Loggerhead more easily themable in the future.

Patch Queue Manager

PQM has seriously changed the way that I feel about merge management. Just like Ian Clatworthy points out in his paper "Community-Agile Software Guidance", trunk should be release quality all the time. PQM makes it IMPOSSIBLE to break trunk, so trunk is always reliable. The basic idea of PQM is to take the whole queue of approved branches and merge them automatically if they pass all the tests. This leaves out the human error of merging, and keeps the quality of trunk up, so that development time isn't wasted trying to figure out who broke trunk, why, and how to fix it.

Bundle Buggy

The more I see and use Bundle Buggy, the more impressed I am with it. The code review voting is a new feature in Launchpad, but the Bazaar developers have been tracking code reviews and votes on the mailing list for quite some time. Bundle Buggy detects emails prefixed with [MERGE] (usually sent from bzr send), and tracks the comments made about the patch, until it has received the right amount of votes from the right people. All of this can be managed from the mailing list, so it doesn't require too much interaction for the review and merge process.

The last thing that I would like to point out is that, while you can still build an infrastructure close to that of Launchpad, you still can't just up and build a community around your project. While I've blogged about this before, Launchpad is about building communities of people around open source. So sure, you can use tools that work together similar to Launchpad, but do you really want to put your project in a corner of the internet where not many people will find it?

Call For Your Launchpad and Bazaar Stories

July 13, 2008 1 Comment Tagged as: bazaar launchpad

At Bazcamp this weekend, I had many interesting conversations with a few Bazcampers about Launchpad and Bazaar. The original reason was that I was brainstorming stories for next month's NCLUG talk about Launchpad and Bazaar. As I talked about workflows and processes, I started wondering how many other Launchpad and/or Bazaar success stories there were from the community, and how many utter fails have you had (and how can they be fixed).

So, lazyweb, send me your success stories, your gripes, your flames and other adventures with Launchpad and Bazaar. If the stories are too long to leave in comments, send me your emails at paul at eventuallyanyway dot com.

How Launchpad Helped Entertainer Leave the Atmosphere

Entertainer Releases Today!

Today, Entertainer makes our first (rather crude) release. There are lots of known problems with the codebase, but we thought that releasing early would give us the flexibility and users that would file bugs and help us get the ball rolling faster. The 0.1 release of Entertainer can be downloaded here.

A special thanks goes to Lauri Taimila for starting the project, Joshua Scotton and Matt Layman for sticking with me through the quiet issues, and Michael Charclo and Jamie Bennett for jumping onto the team and hitting the ground running. Without them, there never would have been a release today.

Six months ago, when I joined the project, I never realized it would take as much work as it finally ended up taking. It required concentrated efforts, good tools, better developers, and great alpha users. It feels now as though the stars aligned, the tides were at bay, and a squirrel somewhere in Saskatchewan, Canada farted in just the right way for everything to fall into place in just a short amount of time.

Launchpad was the catalyst

After all of this reflection, I realized something quite important. Launchpad is THE reason for this release. It couldn't have come together as well as it did if we had still been using Google Code. Google code was great, but we encountered lots of problems making LARGE changes, and causing headaches for everyone else. Using bazaar, the headaches were fairly localized.

About three weeks ago, I went through all the bugs on Launchpad, and prioritized them all, adding a few to the milestone 0.1 release, and sending an email out to the mailing list stating that the bugs marked needed to be fixed by the 14th of June, so we can release on that date. I'm proud to say that only one bug will slip, and it's a bug that we can do after the release in support of 0.1, instead of as part of 0.1.

As we migrated to Launchpad, I saw a great community seem to pop up around Entertainer at that time. It could be because of pre-release reviews that were being done, but as I looked more into it, I realized that by adopting Launchpad as our development tool hosting platform, we were adding our project into an area that was FILLED with people ready and willing to try out alpha software, file bugs, and be responsible for following up with those bugs. We had users we'd never heard of (with seasoned Launchpad accounts) show up to ask for help, file bugs, or just flat out say "Thanks for the software."

What Launchpad is to me

Many critics will complain that Launchpad isn't open source, and so it shouldn't really be an open source software hub as it is. I disagree. I think that all the neat features of Launchpad (code hosting, bugs, translations, blueprints...) play second fiddle to something greater: Community. The community is absolutely open. Want to see how Launchpad's existence helps bring the best Ubuntu releases possible? Head over to #ubuntu-bugs on Freenode two weeks before Intrepid (the next Ubuntu version) is released, and see the coordination between users that Launchpad provides.

So sure, (old and busted) Sourceforge, Google Code, Github, and the like may provide code hosting services, and some even provide bug tracking services, but shoot, how many of them can provide you with users? Better yet, how many of them can provide you with users who are patient with alpha software, willingly file bug reports without the use of expletives/flames, and follow up with you to see if they can help any other way? That's what Launchpad is to me. That's WHY Launchpad is to me.