Wie reiche ich einen Patch für ein Launchpad-Projekt ein?

19

Mit einem Git / GitHub-Hintergrund und wenig Wissen über Bazaar VCS möchte ich gelegentlich einen Fehler bei Projekten melden, die auf Launchpad gehostet werden, und sogar einen Patch senden. Ich würde es gerne "richtig" machen, damit es zum Zusammenführen oder Verbessern bereit ist, ohne in die Quere zu kommen.

Ich kann anscheinend kein anständiges einfaches How-to finden, das meinen Bedürfnissen entspricht.

Was ich bisher gemacht habe:

  1. Ich habe ein Launchpad-Konto erstellt.

  2. meldete den Fehler,

  3. Bazaar installiert und SSH-Schlüssel etc. eingerichtet

Wenn es GitHub wäre, würde ich

  1. gabeln sie das repo,

  2. klonen sie das gegabelte repo,

  3. Erstelle einen Zweig mit dem richtigen Namen und erledige die Arbeit.

  4. Commit + Push,

  5. Erstellen Sie eine Pull-Anfrage mit GitHub WUI.

Es ist jedoch kein GitHub, und sowohl die Launchpad- als auch die Bazaar-Architektur unterscheiden sich deutlich von ihren GitHub / Git-Gegenstücken.

Könnte eine freundliche Seele mich also davor bewahren, in Tonnen von Dokumenten zu ertrinken, und einen einfachen Schritt zusammenstellen, hauptsächlich den zweiten Teil? Möglicherweise relevante CLI-Befehle einbeziehen, wenn sie benötigt werden?


Bearbeiten: Es scheint, dass ich klären sollte, ob ich speziell nach Ubuntu-Paketen (was auch immer es bedeutet) oder Launchpad-Projekten frage.

Die Unterscheidung zwischen Ubuntu-Paketen und Nicht-Ubuntu-Paketen ist mir eigentlich egal. Jede Software könnte heute in Ubuntu und morgen in Ubuntu sein oder umgekehrt. Auf die Entwicklung kommt es viel mehr an als auf die Distribution.

Also habe ich das angenommen

  • Nicht jedes in Ubuntu verteilte Paket wird auf Launchpad gehostet.

  • Es gibt einen "offiziellen" oder "Standard" -Workflow für Launchpad.

Also frage ich nach dem Launchpad-Weg, nicht nach dem Ubuntu-Weg. Und ich habe mich für AU entschieden, da die Schnittmenge sehr groß ist, denke ich, dass es hier ziemlich thematisch ist.

Alois Mahdal
quelle
Hilft dieses kurze Dokument? In diesem Fall können
Sie

Antworten:

14

Ist es ein Launchpad-Projekt?

(Wenn Sie bereits wissen, dass es sich um ein Launchpad-Projekt handelt, können Sie dies überspringen.)

Nicht alle auf Launchpad gefundenen Projekte werden dort gehostet und entwickelt - einige sind Spiegel des an anderer Stelle gehosteten Codes (GitHub / Gitorious / etc), andere stammen von Debian. Diese ursprünglichen Quellen werden als "Upstream" -Projekte bezeichnet. In der Regel empfiehlt es sich, Patches an der Quelle einzureichen und die Änderungen in Ubuntu "Downstream" (in der Regel in der nächsten Version) zuzulassen.

Auf der Projektseite sollte deutlich angegeben sein, ob sie an einer anderen Stelle oder auf dem Launchpad gehostet wird. Wenn nicht, fragen Sie einfach die Projektbetreuer, wie sie Änderungen erhalten möchten. Einige vorgelagerte Projekte bevorzugen einfache Patch-Dateien, andere bevorzugen Übermittlungen / Pushs über ihre jeweiligen Hosts.

Als besondere Anmerkung haben offizielle Ubuntu-Pakete (Software, die in den offiziellen Ubuntu-Repositories gespeichert ist, die Sie über das Software-Center installieren können) verschiedene Möglichkeiten, um Patches einzureichen, da viele dieser Pakete direkt von Debian stammen und idealerweise dort repariert werden sollten eher als nur in Ubuntu. (Dies ist eine ganz andere Frage.)

So reichen Sie einen Patch ein

Die allgemeine Methode zum Einreichen eines Patches besteht darin, dass Sie Ihren Zweig erstellen, ihn lokal festlegen und ihn zurück an Launchpad senden:

bzr push lp:~user/project/branch-name

Sie können dann vorschlagen, dass Ihr Zweig mit dem übergeordneten Zweig zusammengeführt wird, von dem Sie verzweigt sind, entweder über die Website oder mithilfe des bzr lp-proposeBefehls.

Wenn Sie 000000einen Fehler gemeldet haben und Ihr Zweig dies behebt, gehen Sie beim Festschreiben folgendermaßen vor, wobei der Fehler durch Ihre Fehlernummer ersetzt wird, vorausgesetzt, es handelt sich um einen auf Launchpad gemeldeten Fehler, und nicht anderswo.

bzr commit --fixes=lp:000000

Ein Hinweis zum "Standard" -Workflow

Dies ist so ziemlich der typische moderne Workflow, den Sie mit GitHub vergleichen können. Launchpad gibt es allerdings schon ein bisschen länger, daher hat sich dieser Workflow nach und nach weiterentwickelt, anstatt von Anfang an in das System integriert zu werden. Daher sind einige ältere Projekte möglicherweise auf andere Methoden angewiesen, um Patches zu akzeptieren. Die meisten neueren Projekte verlassen sich jedoch auf diesen Workflow, bei dem auf GitHub die "Pull-Requests" immer vorhanden waren, und die Leute verwenden sie standardmäßig, weil es auf GitHub nie ein Mittel gab, etwas anderes zu tun.

dobey
quelle
7

Die erste Antwort basiert auf der Antwort von Dobey hier und der Antwort von Jorge Castro auf eine projektspezifische Frage. Änderungen / Korrekturen / Vorschläge sind willkommen.

  1. Erstellen Sie ein Launchpad-Konto. Dies beinhaltet einen Launchpad-Benutzernamen ( LP-USER)

  2. Fügen Sie Ihren SSH-Schlüssel zum Launchpad unter hinzu https://launchpad.net/~LP-USER/+editsshkeys

  3. Notieren Sie sich auf dem Launchpad den Projektnamen ( PROJECT-NAME).

  4. Melden Sie das Problem gegen das Projekt. Dem Problem wird eine Fehlernummer ( 000000) zugewiesen .

  5. Stellen Sie sicher, dass Bazaar installiert ist dpkg-query -l bzr. Vielleicht möchten Sie sich über die Bazaar / Launchpad-Integration informieren .

  6. Konfigurieren Sie bzr mit bzr whoami "Your Name <[email protected]>"undbzr launchpad-login LP-USER

  7. Überprüfen Sie auf Ihrem Computer einen lokalen Zweig des Projekts

    bzr branch lp:PROJECT-NAME
    

    (Dadurch wird ein Ordner PROJECT-NAMEmit dem Namen erstellt , der den neuesten Projektcode enthält.)

  8. Bringen Sie das Projekt zum Laufen. Nehmen Sie Änderungen vor. Testen Sie Ihre Änderungen. (Diese Schritte sind projekt- und problemspezifisch.)

  9. Übernehmen Sie Ihre Änderungen, einschließlich der Fehlernummer ( 000000).

    bzr commit --fixes=lp:000000
    
  10. Daraufhin wird ein Festschreibungsdialogfeld geöffnet, in dem Sie einen Änderungsprotokolleintrag hinzufügen können, in dem Ihre Änderungen erläutert werden.

  11. Übertragen Sie Ihre Änderungen an Launchpad. (Dadurch wird eine neue Zweigstelle für Ihr Konto erstellt.)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    ( NEW-BRANCH-NAMEsollte ein kurzer beschreibender Name des Problems sein, der behoben / hinzugefügt wurde)

  12. Öffnen Sie die Filiale in Ihrem Browser mit bzr lp-openoder überhttps://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. Schlagen Sie bzr lp-proposeim letzten Schritt eine Zusammenführung mit oder von der URL vor, indem Sie "Zum Zusammenführen vorschlagen" auswählen, eine Beschreibung hinzufügen, lp:PROJECT-NAMEfür den Zweig einfügen, in den Sie die Zusammenführung vorschlagen möchten, und klicken Submit.

david.libremone
quelle
Frage: Wenn mein "Projektname" ist, ubuntu/saucy/msttcorefontsmache ich das bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameoder nurbzr push lp:~amandabee/msttcorefonts/actualbranchname
Amanda
Ersterer: bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnamegearbeitet
Amanda