Code für gsutil beitragen

Übersicht

Wir sind offen für Änderungen am gsutil-Code, die von Nutzern erstellt wurden. Hier sind einige Richtlinien dafür:

  1. Bevor wir Codebeiträge akzeptieren können, müssen wir einige rechtliche Angelegenheiten klären. Füllen Sie das Contributor License Agreement (CLA) für Privatpersonen oder Unternehmen aus:

    Klicken Sie auf einen der beiden obigen Links, um das entsprechende CLA aufzurufen und eine Anleitung zur Unterzeichnung und Einreichung zu erhalten. Sobald wir das CLA erhalten haben, werden Sie zur offiziellen Liste der Mitwirkenden hinzugefügt und wir können Ihre Patches annehmen.

  2. Wenn Sie einen Programmfehler gefunden haben oder eine Idee für eine Featureverbesserung haben, sollten Sie unter https://github.com/GoogleCloudPlatform/gsutil/issues nachsehen, ob der Fehler bereits von einem anderen Nutzer gemeldet wurde. Von dort aus können Sie auch Neuigkeiten zu dem Fehler abonnieren.

  3. Wenn der GitHub-Fehler noch nicht vorhanden ist, erstellen Sie vor dem Senden von Code ein Thema zu Ihrer Idee. Oft können wir über die Idee sprechen und Ihnen Tipps geben, durch die Sie eine spätere Überarbeitung vermeiden können.

  4. Wir möchten es eher vermeiden, Befehlszeilenoptionen hinzuzufügen, die nur für einen sehr kleinen Teil der Nutzer nützlich sind. Dies gilt insbesondere dann, wenn es eine andere Möglichkeit gibt, die Anforderungen dieser Nutzer zu erfüllen. Wenn Sie solche Optionen hinzufügen, wird der Code komplizierter. Außerdem entsteht dadurch zusätzlicher Aufwand für Nutzer, die sich durch eine unübersichtliche Liste von Optionen durcharbeiten müssen.

  5. gsutil hat zwar eine Reihe von Cloud Storage-spezifischen Features, kann aber auch mit anderen Cloud Storage-Anbietern verwendet werden. Wir sind offen für Änderungen, durch die spezielle Features anderer Anbieter unterstützt werden, solange diese Änderungen nicht die Leistung von gsutil für Cloud Storage beeinträchtigen. Wenn Sie solche Änderungen vornehmen, sollten Sie einen Experten mit entsprechenden Kenntnissen zum jeweiligen Anbieter als Codeprüfer einsetzen (siehe unten).

  6. Den gsutil-Code finden Sie im GitHub-Repository:

    https://github.com/GoogleCloudPlatform/gsutil
    

    So klonen Sie eine schreibgeschützte Kopie des Repositorys:

    git clone git://github.com/GoogleCloudPlatform/gsutil.git
    

    Wenn Sie Ihre eigenen Änderungen an GitHub übertragen möchten, klicken Sie auf der Repository-Seite auf die Schaltfläche "Fork" und klonen Sie das Repository aus Ihrem eigenen Fork.

  7. Das gsutil-git-Repository verwendet git-Untermodule, um externe Module abzurufen. Nachdem Sie das Repository ausgecheckt haben, müssen Sie auch die Untermodule abrufen. Rufen Sie dazu das oberste gsutil-Verzeichnis auf und führen Sie Folgendes aus:

    git submodule update --init --recursive
    
  8. Führen Sie alle Tests mit Ihrem geänderten Code durch. Wechseln Sie dazu in das oberste gsutil-Verzeichnis und führen Sie Folgendes aus:

    ./gsutil test
    

    Die Ausführung der oben genannten Tests dauert sehr lange, da sie viele Anfragen an den Produktionsdienst senden. Der Befehl "gsutil test" enthält ein -u-Argument, mit dem nur Einheitentests ausgeführt werden. Diese werden schnell ausgeführt, da sie mit einer Mock-Implementierung eines In-Memory-Speicherdienstes ausgeführt werden. Führen Sie den folgenden Befehl aus, um nur die Einheitentests auszuführen:

    ./gsutil test -u
    

    Wenn Sie Änderungen an boto vorgenommen haben, führen Sie die boto-Tests aus. Für diese Tests müssen Sie HMAC-Anmeldedaten verwenden (aus "gsutil config -a"), da der OAuth2-Handler in der aktuellen boto-Testsuite nicht importiert wird. Außerdem müssen Sie einige Python-Module installieren. Wechseln Sie in das boto-Stammverzeichnis unter "third_party/boto" und führen Sie den folgenden Befehl aus:

    pip install -r requirements.txt
    

    Sie müssen diesen Befehl wahrscheinlich mit sudo ausführen. Prüfen Sie, ob jede Installation erfolgreich war. Ist dies nicht der Fall, müssen Sie den Installationsbefehl möglicherweise noch einmal ausführen.

    Prüfen Sie dann, ob für Ihre .boto-Datei HMAC-Anmeldedaten definiert sind (die boto-Tests laden das OAuth2-Plug-in nicht), wechseln Sie dann in das Testverzeichnis von boto und führen Sie Folgendes aus:

    python test.py unit
    python test.py -t s3 -t gs -t ssl
    
  9. Stellen Sie eventuell einen Testcode für Ihre Änderung bereit, insbesondere wenn sich die Änderung auf den gsutil-Kerncode auswirkt, z. B. auf den Befehl "gsutil cp".

  10. Führen Sie den yapf-Linter mit den Konfigurationsdateien im Stammverzeichnis des GitHub-Repositorys aus.

    yapf -irp

  11. Wenn Sie uns Code senden möchten, senden Sie eine Pull-Anfrage an das gsutil-GitHub-Repository. Informationen zum Erstellen von GitHub-Pull-Anfragen finden Sie in diesem GitHub-Hilfedokument.