Ich habe mich gefragt, warum die meisten Ubuntu-Projekte Launchpad.net anstelle von GitHub für das Versionskontroll- und Fehlerverfolgungssystem verwenden. Gibt es einen bestimmten Grund, warum Ubuntu das Launchpad (und damit bzr
) verwendet?
Ich habe mich gefragt, warum die meisten Ubuntu-Projekte Launchpad.net anstelle von GitHub für das Versionskontroll- und Fehlerverfolgungssystem verwenden. Gibt es einen bestimmten Grund, warum Ubuntu das Launchpad (und damit bzr
) verwendet?
Antworten:
Diese Liste enthält die Gründe, warum es damals nicht verwendet wurde und warum es jetzt nicht verschoben werden sollte
Lauchpad verwendete Basar, der vor langer Zeit entwickelt wurde. Github gab es damals nicht (wie Robin sagte) Launchpad wurde 2004 und Github 2008 gestartet
Github ist kein Open Source. In diesem Fall wäre Gitorious die bessere Wahl. Ich weiß, dass Launchpad ursprünglich nicht FOSS war, aber später veröffentlicht wurde
Anfangs hatte Github nicht viele Funktionen, die Launchpad hatte, wie Teams. In Github ist kein Build-System wie in PPA integriert
Viele Projekte in Launchpad verwenden in hohem Maße die "Merge Request" -Funktionalität, die in Github sehr grundlegende Unterstützung bietet. Es heißt "Pull Request", aber Launchpad bietet bessere Funktionen und detailliertere Informationen als Github
Githubs Bug Tracker ist so gut wie nutzlos. Mein Lieblingsprojekt für einen Bug-Tracker könnte nützlicher sein
Launchpad gehört Canonical und wird von den Entwicklern bezahlt. Sie haben die vollständige Kontrolle über ihr Produkt.
Github verwendet Git zum Verfolgen von Veröffentlichungen mithilfe von Zweigen und Tags. In Launchpad, das bzr verwendet, ist diese Funktion ebenfalls verfügbar, aber Launchpad erzwingt dies ausdrücklich außerhalb des Versionsverwaltungssystems. Dies wäre ein bisschen einfacher für Leute, die mit Versionen umgehen müssen, aber nicht im Quellcode stöbern wollen.
Nur eine kleine Anmerkung: Github vs. Launchpad und git vs. bzr sind eine Art religiöses Thema. Ich möchte mich von dieser endlosen Diskussion fernhalten. Ich benutze was zum Anwendungsfall passt.
Ich denke, die einfache Antwort ist, dass Launchpad eine Menge Dinge macht, die andere Systeme nicht tun (und dies war umso wahrer, als Ubuntu anfing, Launchpad zu verwenden).
Einige Beispiele:
Während Code-Hosting eine wichtige Funktion von Launchpad ist, ist es nicht die einzige und es war nicht die erste von Ubuntu verwendete Funktion.
Bei vorgelagerten Projekten im Zusammenhang mit Ubuntu bietet die Verwendung des gleichen Systems wie Ubuntu selbst Vorteile. Ein Beispiel ist die Verfolgung von Fehlern sowohl im Upstream- als auch im Paketkontext.
Ich denke eigentlich, es ist eher wie "Warum verwenden sie bzr und damit Launchpad"? Canonical investierte Geld und Leute in die Entwicklung von bzr und seinem Vorgänger baz, lange bevor GitHub existierte, und sie möchten wahrscheinlich nicht all das gesammelte Fachwissen und die angesammelten Investitionen jetzt wegwerfen. In der Tat wurde baz gestartet, bevor es git gab.
Da Launchpad von ihnen gesteuert wird, können sie leichter Funktionen hinzufügen, die für sie sinnvoll sind - während GitHub nicht einmal Open Source ist und sicherlich nicht unter ihrer Kontrolle steht!
Zed Shaw hat dieses Thema in einem kürzlich erschienenen Blog-Beitrag, Launchpad vs. Github / SysAdmin vs. Coder, sehr gut behandelt .
Ich habe diesen Blog-Beitrag von lvh gesehen, in dem ich die einfache Frage gestellt habe: "Warum hassen die Leute Launchpad so sehr?" Es war etwas, das ich mich auch fragte, bis ich anfing, NetBSD pkgsrc zu fälschen und nach verschiedenen Paketmanagern zu suchen. Als ich all die verschiedenen Paketmanager durchgesehen habe, wurde mir schließlich klar, dass der Unterschied zwischen Launchpad und Github tatsächlich der Unterschied zwischen Systemadministratoren und Softwareentwicklern ist.
Ich stimme seiner Einschätzung der Funktionen von Launchpad außerhalb der Codeverwaltung nicht ganz zu. Als Entwickler bevorzuge ich die Repo-Ansicht von Github, aber der Bug-Tracker von Launchpad ist Github weit überlegen.