Why does Ubuntu use Launchpad instead of GitHub or Bitbucket?

This list contains the reasons why it did not use back then and why it should not move now

  • Launchpad used Bazaar which was developed long back. GitHub did not exist that time (as Robin said) Launchpad was launched in 2004 and GitHub in 2008

  • GitHub is not open source. GitLab or Gitorious would be a better choice in this case. I know Launchpad was not FOSS initially, but it was released later

  • Initially GitHub did not have many features which Launchpad had, like teams. GitHub does not have a build system integrated with it, like PPA

  • Many projects in Launchpad heavily make use of the "Merge request" functionality which has very basic support in GitHub. It is called "Pull request" but Launchpad has better features and more detailed than GitHub

  • GitHub's Bug Tracker is next to useless (this may have changed by 2021). My pet project for a bug tracker might be more useful

  • Launchpad is owned by Canonical and they pay the developers. They have the complete control over their product. GitHub also is owned by GitHub/Microsoft.

  • GitHub uses Git for tracking releases using branches and tags. In Launchpad, which uses Bazaar also has this feature, but Launchpad explicitly enforces this outside the source control system. This would be a bit more easier for people who have to handle versions but don't want to dig inside the source code.


Just a small note: Github vs. Launchpad and git vs. bzr is sort of religious topic. I want to stay away from this endless discussion. I use which fits the use-case.


I guess the simple answer is that Launchpad does a lot of stuff that other systems don't (and this was even more true back when Ubuntu started using Launchpad).

Some examples:

  • A bug tracker that lets you track bugs in multiple contexts (e.g. a bug that affects multiple packages, or affects both a package and its upstream, or the same package in multiple distributions).
  • A web based translation tool.
  • A tool to manage the package archive and build binary packages for the various supported architectures.

While code hosting is an important feature of Launchpad, it is not the only one and it wasn't the first feature Ubuntu used.

As for upstream projects related to Ubuntu, there are benefits to using the same system as Ubuntu itself. Just one example is tracking bugs in both upstream and packaged contexts.


I actually think it's more like "why do they use bzr, and hence launchpad"? Canonical invested money and people into developing bzr and its precursor baz, long before GitHub existed, and they probably don't want to throw away all of that accumulated expertise and investment now. Indeed, baz was started before git existed.

Also, with Launchpad being controlled by them, they can more easily add features that make sense for them - whereas GitHub is not even open source, and certainly not under their control!


Zed Shaw covered this topic very well in a recent blog post, Launchpad vs. Github/SysAdmin vs. Coder.

I saw this blog post by lvh asking the simple question, "Why do people hate launchpad so much?" It was something I also wondered until I started tinkering with forking NetBSD pkgsrc and went to research various package managers. When I was going through all the various package managers I finally realized that the difference between Launchpad and Github is actually the difference between System Administrators and Software Developers.

I don't entirely agree with his assessments of Launchpad's features outside of code management. As a developer, I do prefer Github's repo view, but Launchpad's bug tracker is far, far superior to Github's.