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

我一直在想为什么大多数Ubuntu项目使用Launchpad.net而不是GitHub来进行版本控制和错误跟踪系统。 是否有一个特定的原因,为什么Ubuntu使用启动板(因此bzr )?

此列表包含当时没有使用的原因以及为什么它现在不应该移动

  • Lauchpad使用了很久以前开发的集市。 Github当时并不存在(正如Robin所说)Launchpad于2004年推出,Github于2008年推出

  • Github不是开源的。 在这种情况下,Gitorious将是更好的选择。 我知道Launchpad最初不是FOSS,但后来发布了

  • 最初Github并没有很多像Launchpad那样的function。 Github没有与它集成的构建系统,如PPA

  • Launchpad中的许多项目都大量使用“合并请求”function,该function在Github中具有非常基本的支持。 它被称为“拉请求”,但Launchpad具有比Github更好的function和更详细的function

  • Github的Bug Tracker几乎没用。 我的bug跟踪器宠物项目可能更有用

  • Launchpad由Canonical拥有,他们向开发者付款。 他们可以完全控制他们的产品。

  • Github使用Git来跟踪使用分支和标签的版本。 在Launchpad中,使用bzr也具有此function,但Launchpad在源控制系统外明确强制执行此function。 对于那些必须处理版本但又不想深入挖掘源代码的人来说,这会更容易一些。


只是一个小小的注释:Github vs. Launchpad和git vs. bzr是一种宗教话题。 我想远离这种无休止的讨论。 我使用哪个适合用例。

我想简单的答案是Launchpad做了很多其他系统没有的东西(当Ubuntu开始使用Launchpad时,这更是如此)。

一些例子:

  • 一个错误跟踪器,可以让您跟踪多个上下文中的错误(例如,影响多个包的错误,或影响包及其上游或多个发行版中的相同包的错误)。
  • 基于Web的翻译工具。
  • 一种管理包归档并为各种支持的体系结构构建二进制包的工具。

虽然代码托管是Launchpad的一个重要function,但它不是唯一的,它不是Ubuntu使用的第一个function。

至于与Ubuntu相关的上游项目,使用与Ubuntu本身相同的系统是有好处的。 只有一个例子是跟踪上游和打包上下文中的错误。

我实际上认为它更像是“为什么他们使用bzr,因此启动板”? 在GitHub存在之前很久,Canonical投入资金和人才开发bzr及其前身baz,他们可能不想抛弃所有积累的专业知识和投资。 事实上,baz是在git存在之前开始的。

此外,由于Launchpad由他们控制,他们可以更轻松地添加对他们有意义的function – 而GitHub甚至不是开源的,当然也不受他们的控制!

Zed Shaw在最近的一篇博文“ Launchpad vs. Github / SysAdmin vs. Coder”中详细介绍了这个话题。

我看到这篇博文由lvh提出一个简单的问题:“人们为什么这么讨厌发射台呢?” 在我开始摆弄分支NetBSD pkgsrc并开始研究各种包管理器之前,我也想知道这件事。 当我经历所有各种包管理器时,我终于意识到Launchpad和Github之间的区别实际上是系统管理员和软件开发人员之间的区别。

我并不完全同意他对代码管理之外的Launchpadfunction的评估。 作为开发人员,我更喜欢Github的repo视图,但Launchpad的bug跟踪器远远优于Github。