为什么Ubuntu使用Launchpad而不是GitHub或Bitbucket?

我一直在想为什么大多数Ubuntu项目使用Launchpad.net而不是GitHub作为版本控制和bug跟踪系统。Ubuntu为什么使用launchpad(因此使用)?是否有特定的原因?
4个回答

这个列表包含了过去为什么没有使用以及现在为什么不应该迁移的原因。
  • Launchpad使用了很久以前开发的Bazaar。那时候GitHub还不存在(正如Robin所说)Launchpad在2004年推出,而GitHub在2008年推出。

  • GitHub不是开源的。在这种情况下,GitLab或Gitorious可能是更好的选择。我知道Launchpad最初不是自由开源软件,但后来发布了。

  • 最初GitHub没有Launchpad拥有的许多功能,比如团队。GitHub没有与之集成的构建系统,像PPA一样。

  • Launchpad中的许多项目都广泛使用“合并请求”功能,在GitHub中只有基本支持。它被称为“拉取请求”,但Launchpad具有比GitHub更好的功能和更详细的功能。

  • GitHub的Bug跟踪器几乎没有用(这可能在2021年已经改变)。我的个人项目的Bug跟踪器可能更有用。

  • Launchpad归Canonical所有,并支付开发人员的工资。他们对产品拥有完全控制权。GitHub也归GitHub/Microsoft所有。

  • GitHub使用Git来跟踪使用分支和标签的发布。在使用Bazaar的Launchpad中也有这个功能,但Launchpad明确要求在源代码控制系统之外执行此操作。这对于那些需要处理版本但不想深入源代码的人来说会更容易一些。


只是一个小提示:Github vs. Launchpad和git vs. bzr是一种宗教性的话题。我想远离这个无休止的讨论。我会根据具体情况选择适合的工具。

我想简单的回答是 Launchpad 做了很多其他系统没有做的事情(在 Ubuntu 开始使用 Launchpad 的时候,更是如此)。
一些例子包括:
- 缺陷跟踪器,可以让你在多个上下文中跟踪缺陷(例如影响多个软件包的缺陷,或者同时影响软件包和其上游,或者在多个发行版中使用相同的软件包)。 - 基于 Web 的翻译工具。 - 用于管理软件包存档并为不同的支持架构构建二进制软件包的工具。
虽然代码托管是 Launchpad 的一个重要功能,但它不是唯一的功能,也不是 Ubuntu 使用的第一个功能。
至于与 Ubuntu 相关的上游项目,使用与 Ubuntu 相同的系统有好处。其中一个例子是在上游和打包环境中跟踪缺陷。

我实际上认为更像是"为什么他们使用bzr以及launchpad"?Canonical 在GitHub存在之前就投入了资金和人力资源来开发bzr及其前身baz,他们可能不想现在抛弃所有积累的专业知识和投资。事实上,baz在git出现之前就已经启动了。
而且,由于他们控制着Launchpad,他们可以更容易地添加对他们有意义的功能 - 而GitHub甚至不是开源的,肯定也不在他们的控制下!

Zed Shaw在最近的博客文章中非常好地涵盖了这个话题,Launchpad vs. Github/SysAdmin vs. Coder

我看到了lvh的这篇博客文章,他提出了一个简单的问题:“为什么人们如此讨厌Launchpad?”直到我开始尝试分叉NetBSD pkgsrc并进行各种软件包管理器的研究,我也一直在思考这个问题。当我浏览所有不同的软件包管理器时,我终于意识到Launchpad和Github之间的区别实际上是系统管理员和软件开发人员之间的区别。

对于Launchpad在代码管理以外的功能,我并不完全同意他的评估。作为一个开发者,我更喜欢Github的存储库视图,但是Launchpad的错误跟踪器远远优于Github的。