You're viewing a "classic" blog entry.

Navigation

2008‎ > ‎06‎ > ‎23‎ > ‎

Launchpad vs. GitHub

There's a lot of excitment right now around git and GitHub. I have to admit GitHub is pretty cool, but I've seen the future and it is Launchpad.

Launchpad has milestones, bug tracking, blueprints (basically ideas for improvements), questions and answers, and translations. Launchpad will track project forks just like GitHub does, but it also allows you to attach a branch to any of the above.

<EXAMPLE>
I post a bug for my project to launchpad. Some Random Jerk comes along, fixes it, and registers his branch with that bug report. I see Mr. Jerk's branch, I merge it with mine, test it, and push the changes to the "official" branch. No need for Mr. Jerk to get my approval to fix the bug. No need for him to e-mail me. No need for me to find out where his branch is, etc., etc. Launchpad handles it all for me. Nice.
</EXAMPLE>

The same is true for ["milestone", "blueprint", "translation"].each {|x| EXAMPLE.gsub!("bug", x) }.

Additionally, Launchpad will let you self host your branch, but still register it with the site. So I can still know about your fork even though it is not hosted by Launchpad. Nice.

Thirdly, Launchpad has integration with bazaar, so that I (or Random Jerk) can do something like bzr commit -fixes lp:12345 and Launchpad will automatically register that changeset with the bug and mark the bug as Fixed. Multiple people could commit fixes and I could pick the one I like and merge it into the "official" branch. Nice.

Fourthly, You can target blueprints, bugs, translations, etc. to a milestone, so it helps with planning releases. Nice.

<SUMMARY>
While GitHub has support for "community" and "social connections," those connections amount to tracking forks, and watching repos. GitHub has post-commit hooks, etc. to integrate with external services, but it doesn't allow the kind of branch registering and tracking that Launchpad provides, which really smooths the whole distributed development thing.
</SUMMARY>

Now the bad part. Launchpad does not provide private repos. Bummer.

Launchpad does not provide slick integration with Pledgie badges. Bummer.

Both Launchpad and GitHub fail to embrace distributed development. Huh?! The fact is that by using GitHub or Launchpad you are locked in to a single vendor. When GitHub or Launchpad is down, you're screwed (to a certain extent; you can still commit to branched repos, but you can branch new repos, or do any bug tracking, etc.) until they come back up.

What would be really sweet would be to have some kind of standardized way of having Launchpad, GitHub, Gittorious, and sites like them communicate. If you post a bug for a project to Launchpad, then it should notify GitHub, and you should be able to track the progress of the project as a whole in a distributed fashion. I'm not talking about GitHub mirroring the bug from Launchpad, or necessarily having the data redundantly stored at both GitHub and Launchpad, but in the same way that you can register branches for a project, you should be able create a bug at some remote location and register its existence with GitHub/Launchpad.

Or how about this...store the bugs, blueprints, etc. in a standard format in the git/bzr repo. Then GitHub and/or Launchpad could read the data from the repo. And if any respective site was down, then you could still mark bugs as fixed, etc.

What is the chance that someone will design some kind of project metadata format that everyone can adopt?

Originally published on June 23, 2008 at 12:49 pm

Comments

  1. Chris Says:
    July 11, 2008 at 10:33 pm

    Thanks for the post. It’s cool to see how Launchpad’s ticketing (and other similar) systems integrate with Bazaar. I think you overlooked GitHub’s “pull request” feature, though — it’s exactly as you describe, minus the hooks into a ticketing system. People can easily tell others they have changes on a certain branch, and you can choose to pull them or ignore it.

    So while GitHub doesn’t have the ticketing integration, and Launchpad really shines there, it does have something very similar (as well as ties to existing ticketing systems - FogBugz, Lighthouse, you name it).

  2. Phil Says:
    July 22, 2008 at 5:40 pm

    > Or how about this… store the bugs, blueprints, etc. in a standard format in the git/bzr repo.

    This is really the only thing that makes sense to me. I’ve been meaning to try out Ditz, which does this for issue tracking, but in the mean time simply keeping a TODO file (and exporting it to the web regularly) and scattering TODO comments throughout the code works really well for the projects I’m on. I’m naturally skeptical of any bug tracking system that assumes an issue has only one state.

  3. leethal Says:
    July 23, 2008 at 2:35 am

    More features doesn’t mean better. Github has all I needz.