Why Launchpad Rocks: Working With Code Is Dead Simple

This article is part of a series of articles about why I feel Launchpad is a great home for your Open Source project. I am writing these articles not as an employee of Canonical, but instead as a happy Launchpad user who gets agitated that not enough people know how cool Launchpad is.

One of the things I love about Launchpad is that getting, hacking, sharing, merging in code is dead simple. Much of this is because of it’s tight integration with the Bazaar version control system. Together it provides a kid-in-candy-shop level of awesome if you like to run and hack on code.

One of the things I love about Bazaar is that it is focused on simplicity, and having used CVS and Subversion in the past, and a little bit of git recently, I find Bazaar by far the most naturally connected with my workflow. The reason for this is that I don’t want to care about version control. I am not interested in it, I don’t want to learn it, I don’t plan on sending it a Christmas card; I merely want to learn enough to get code from somewhere, upload it somewhere and rock with it. Bazaar is well suited to my needs because it’s simplicity means that it doesn’t feel like a pain to use.

Getting code is simple. I can click on the Code part of a Launchpad project and Launchpad tells me what command I need to run to grab a branch. As an example, if I want to download code from the Lernid project, I just run:

bzr branch lp:lernid

This gets me a branch easily, and I am ready to hack on it. when I have my feature or fix ready, I can then push it really easily with:

bzr push lp:~jonobacon/lernid/my-new-feature

…changing my-new-feature for whatever branch name I want to call it. At this point my branch will appear with the other branches in the Lernid project, so the other developers can download and try it. If I would like to ask the Lernid developers to merge it into their main trunk branch, I can Propose It For Merging in Launchpad which provides a user interface for the developers to review the branch, ask me comments, request changes and otherwise have a conversation about the proposed merge.

This all makes grabbing code, hacking on it, sharing it with others, and asking for it to be merged dead simple.

Not only this, but if you are interesting in contributing to Ubuntu, all source packages are held in Bazaar which means that the same tools and commands for working with code apply to working on one of the most popular Linux distributions too. You can read more about this here.

See a list of all of these Why Launchpad Rocks articles here.

  • Tom

    I don’t agree. bzr just continues to be compatible with the broken ways cvs and svn did things, that is why people think it is easy. I think it is just limited and does not really scale. Git was made by brighter people and is the far superior solution, no one in their right mind doubts that. Git is distributed version control done right. And git is very easy too, just look at the traction github has. If you don’t get it read: http://tom.preston-werner.com/2009/05/19/the-git-parable.html bzr might be OK for some opportunistic little scripts, but putting a whole distro into bzr is asking for trouble. Mark seems to have problems acknowledging that.

  • Barnaby

    Umm, Tom…. you do realize that bzr is distributed version control too, right?

    Bzr does everything git does, literally everything, plus it’s easier to use. Don’t think that just because git is harder to use that it’s better… no, it’s just harder to use.

    BZR FTW!

  • http://www.flamingspork.com/blog/ Stewart Smith

    BZR is pretty heavily distributed revision control. The BIG thing it has over git is usability. You can get people up and running and being functional with bzr very quickly. Git is getting better at it though.

    Disk usage of BZR used to be not nearly as good as git – but with the 2a format (default in bzr 2.0), it’s a lot better. One repo went from 942MB down to only 290MB…

    Now just memory usage needs to be solved :)

  • Gary van der Merwe

    I think the second commad should be: bzr push lp:~jonobacon/lernid/my-new-feature (bzr => lp)

  • http://www.thetechandcents.com Alex Lourie

    Tom: you’re not completely correct. Bzr was initially modeled after CVS and SVN, but nowadays it supports completely distributed development, similar to what git does.

    In addition, the whole Ubuntu distro is being developed based on bzr for few years now, so if there are any serious issues with this flow I bet they would already be found.

  • Zac

    Off topic butwant to say..

    Why Ubuntu 10.04 rocks? It just does. The more I use it the more I like it, the best so far. Thanks everyone.

  • Zeeshan Ali

    “One of the things I love about Bazaar is that it is focused on simplicity, and having used CVS and Subversion in the past, and a little bit of git recently, I find Bazaar by far the most naturally connected with my workflow”

    Just because we were forced to learn brain-dead tools and our brains got used to their brain-dead workflow doesn’t mean we should ask the new tools to provide the same workflow.

    Bazaar is only and only easier than git IF you have previous experience of other VCSs. For a newbie bazaar is at least as hard to learn as git.

    I’m happy for you that Launchpad gives you what you want but you are really wasting your time telling GNOME hackers that Bazaar is awesome as only a few of the GNOME hackers I know like Bazaar. Most of them hate it and I seriously doubt the chances of you being able to persuade them to change their mind about it.

  • jono

    Oops! Fixed. :-)

  • jono

    I’m happy for you that Launchpad gives you what you want but you are really wasting your time telling GNOME hackers that Bazaar is awesome as only a few of the GNOME hackers I know like Bazaar. Most of them hate it and I seriously doubt the chances of you being able to persuade them to change their mind about it.

    I disagree that most of them hate it – just because some people on Planet GNOME don’t like it, doesn’t mean it is representative of GNOME. There are many projects using GNOME technology that are using Bazaar and Launchpad.

    Also, just because my post appears on Planet GNOME doesn’t mean it is directed at GNOME people. These articles are aimed at anyone who wants to work on an Open Source project.

  • Rodney Dawes

    “Just because we were forced to learn brain-dead tools and our brains got used to their brain-dead workflow doesn’t mean we should ask the new tools to provide the same workflow.”

    And just because Linus made up a workflow for the kernel that fits the kernel’s needs, doesn’t mean it is the right workflow for everyone. :)

    Just because GNOME is trying to wedge git into it’s workflow, doesn’t mean it fits. Frankly, requiring a developer to use any specific version control system to be an ‘official’ part of your distribution is just bad business. It’s like going to a tire shop, and having them say “Sorry, we only sell and install tires for Messerschmidt.”

    If your argument is that git is only hard for people who have used any other VCS in their life, then the obvious answer is that nobody should be using git, because it’s too hard for all the developers in the world. But it’s great for people who don’t do development. :)

    Frankly, every time I have tried to use git, to do even menial tasks, it has totally failed me and caused something to break. The only time I have used git without it breaking, was when I simply put files in, committed and pushed, and never had to deal with conflicts, branches, or any other mess. If I’ve been doing developing and using VCSes for 10+ years, NO VCS should give me so much trouble. For the parts of git that have actually worked reliably for me, RCS works just as reliably and is just as fast.