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> 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> 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
|