Verwenden und Aktualisieren von Submodulen mit Git und Odoo.sh

Aus dem Nähkästchen geplaudert: Hier gibt es aktuelle News und Insights der ERP-Implementierung. Zusätzlich findet man hilfreiche Tipps zu den Themen Projektmanagement, Prozessoptimierung und Digitalisierung.

Einleitung

Dieser Artikel befasst sich mit Git-Submodulen und deren Verwendung mit Odoo.sh in Kombination mit der Git-GUI "Tortoise Git".

Für die Zwecke dieses Artikels ist es wichtig, zwischen 3 Definitionen zu unterscheiden:

  • Original Submodul-Repository: Das Repository, das zum Speichern des Codes eines bestimmten Submoduls verwendet wird. Die Funktionalität des Moduls wird kodiert und in dieses Repository übertragen

  • Odoo.sh-verknüpftes Repository: Das Repository, das mit dem Odoo.sh-Account verknüpft ist. Es wird das "Original Submodul-Repository" als Submodul enthalten

  • Submodul-Ordner in Odoo.sh-verknüpftem Repository: Ordner, der den Code aus dem "Original Submodule-Repository" enthält und im "Odoo.sh-linked Repository" gespeichert ist

Was sind Submodule

Dieser Abschnitt gibt eine kurze Einführung in Submodule - eine detaillierte Beschreibung finden Sie in der Git-Dokumentation: Git-Werkzeuge - Submodule

Git-Submodule bieten eine Möglichkeit, Code aus einem anderen Projekt oder Repository in der eigenen Codebasis zu verwenden und trotzdem regelmäßig Code für dieses andere Repository zu ziehen. 

Odoo.sh macht sich diese Git-Funktionalität zunutze - Submodule können verwendet werden, um auf einfache Weise neue Funktionen aus Standard-Repositories hinzuzufügen, die für mehrere Odoo.sh-Projekte wiederverwendet werden können, während sie weiterhin auf dieselbe Codebasis verweisen.

Private und öffentliche Submodule

Man muss zwischen privaten und öffentlichen Submodulen unterscheiden. Private Submodule benötigen einen zusätzlichen Schritt, um sicherzustellen, dass Odoo.sh in der Lage ist, Code aus diesem Repository zu ziehen.

Hinzufügen von Submodulen zu Ihrem Odoo.sh-Projekt

Um Submodule zu Odoo.sh hinzuzufügen, führen Sie bitte die folgenden Schritte aus:

  • Nur wenn das Submodul privat ist:
    • Gehen Sie zur Registerkarte Einstellungen Ihres Odoo.sh-Projekts und fügen Sie den Link zu Ihrem privaten Submodul unter dem Abschnitt "Submodule" hinzu.
    • Kopieren Sie den generierten öffentlichen Schlüssel und fügen Sie ihn als "Deploy-Key" auf Github hinzu (Einstellungen => Deploy Keys)
  • Für alle Submodule:
    • Gehen Sie auf den "Branches"-Tab von Odoo.sh wählen Sie "Submodule" in der oberen rechten Ecke und klicken Sie auf "Run on Odoo.sh Geben Sie erneut den Pfad zu Ihrem Repository ein, wählen Sie den richtigen Zweig und klicken Sie auf "Submodul hinzufügen".
    • Odoo wird einen neuen Build erstellen und danach können Sie die App-Liste auf der Odoo App-Installationsseite aktualisieren und die neuen Module aus Ihrem Submodul installieren.

Aktualisieren von Submodulen mit Tortoise Git

Das Aktualisieren von Submodulen hat uns einige Kopfschmerzen bereitet, deshalb haben wir uns entschlossen, zu dokumentieren, wie wir es geschafft haben.


Erstens: Änderungen am Original Submodul-Repository vornehmen

Um Änderungen an Ihrem Submodul vorzunehmen, klonen Sie einfach das ursprüngliche Submodul-Repository mit Tortoise Git, wenden Ihre Änderungen an, übertragen und pushen.

Aktualisieren Sie den Submodul-Ordner im Odoo.sh-verknüpften Repository

Um Ihren geänderten Code in das mit Odoo.sh verknüpfte Repository zu laden und in Odoo.sh zu verwenden, müssen Sie den neuen Code in das mit Odoo.sh verknüpfte Repository ziehen.

An dieser Stelle hatten wir Schwierigkeiten, da wir einige Fehlermeldungen von Tortoise-Git erhielten. Eine der häufigsten Fehlermeldungen, die wir erhielten, war:

Berechtigung verweigert (publickey).
fatal: Konnte nicht vom entfernten Repository lesen.
oder
fatal: Konnte das entfernte Repository nicht finden

Hier sind die Schritte, um sicherzustellen, dass Sie Code aus Ihrem Submodul-Repo ziehen können:

  • Vergewissern Sie sich, dass Ihr persönliches Github-Konto zumindest Leseberechtigungen für das Submodul-Repository hat, das Sie abrufen möchten. Öffnen Sie dazu das Repository unter Github => Einstellungen => Zugriff verwalten und fügen Sie Ihr Konto als Teammitglied hinzu.

  • Erstellen Sie einen SSH-Schlüssel für Ihren persönlichen Account: Öffnen Sie Ihre persönlichen Profileinstellungen (https://github.com/settings/profile) und gehen Sie zu "SSH- und GPG-Schlüssel".

  • Klicken Sie auf "Neuer SSH-Schlüssel" und geben Sie einen beliebigen Titel für den neu erstellten SSH-Schlüssel ein

  • Als nächstes müssen Sie einen Schlüssel eingeben. Öffnen Sie dazu "Puttygen" (es sollte sich im bin-Ordner Ihres TortoiseGit-Installationsordners befinden (C:\Programme\TortoiseGit\bin)) und klicken Sie auf den "Generieren"-Button.

  • Kopieren Sie den generierten Schlüssel und fügen Sie ihn in Ihre Git-Seite in das "Schlüssel"-Textfeld ein.

  • Gehen Sie zurück zu Puttygen und speichern Sie sowohl den öffentlichen als auch den privaten Schlüssel in einem Ordner Ihrer Wahl.

  • Als nächstes öffnen Sie Pageant (unter C:\Programme\TortoiseGit\bin, wenn Sie einen Windows-Rechner verwenden), klicken auf "Schlüssel hinzufügen" und wählen Ihre private Schlüsseldatei, die wir zuvor erstellt haben.

  • Als nächstes klicken Sie mit der rechten Maustaste auf Ihren mit Odoo.sh verknüpften Repository-Ordner und wählen Sie Tortoise-Git => Einstellungen. Im folgenden Fenster gehen Sie auf Git => Remote , wählen den "origin"-Remote und fügen den Pfad zu Ihrem privaten Schlüssel in das "Putty Key"-Feld ein.

  • Zusätzliche Prüfung: Stellen Sie sicher, dass Ihr Tortoise-Git-Client den richtigen SSH-Client verwendet. Öffnen Sie dazu die Tortoise-Git-Einstellungen und gehen Sie zu den Netzwerk-Einstellungen. Stellen Sie sicher, dass TortoiseGitPlink.exe als SSH-Client eingestellt ist (C:\Programmdateien\TortoiseGit\bin\TortoiseGitPlink.exe).

  • Gehen Sie nun zum Odoo.sh-verknüpften Repository und öffnen Sie den Submodul-Ordner, den Sie aktualisieren möchten. Klicken Sie irgendwo mit der rechten Maustaste und wählen Sie "Tortoise Git" => Pull. Vergewissern Sie sich, dass Sie im Popup-Fenster den richtigen Remote Branch auswählen (dieser Branch-Name muss im ursprünglichen Submodul-Repository (!!) vorhanden sein).

  • Wenn alles geklappt hat, wird Tortoise Git den aktualisierten Code ohne Fehlermeldung ziehen.

  • Gehen Sie nun zurück in den Hauptordner des mit Odoo.sh verknüpften Repositorys, Commit und Push.

  • Das war's!

Odoo v14 und Outlook-Kalender
Nutzen Sie die Möglichkeiten von Odoo und verbinden Sie Odoo mit Office 365