So kannst du Fragen beantworten

Lizenzvereinbarungen für Mitwirkende

Bevor wir Ihre Code-Patches akzeptieren können, müssen Sie entweder eine einzelne oder einer unternehmenseigenen Contributor-Lizenzvereinbarung (CLA):

  • Wenn Sie als Einzelperson ursprünglichen Quellcode schreiben und sicher sind, dass du der Inhaber des geistigen Eigentums bist, individuelle CLA verwendet werden.
  • Wenn Sie für ein Unternehmen arbeiten, muss Ihr Unternehmen eine CLA für Unternehmen einreichen. um anzugeben, dass Sie Ihre Arbeit zu dieser Clientbibliothek beitragen dürfen.

Klicken Sie auf einen der beiden obigen Links, um das entsprechende CLA aufzurufen und eine Anleitung zur Unterzeichnung und Einreichung zu erhalten. Sobald wir sie erhalten haben, können wir Sie hinzufügen. zur offiziellen Liste der Mitwirkenden.

Übersicht über das Einreichen von Patches

Gehen Sie wie folgt vor, um Code zu diesem Projekt beizutragen:

  1. Unterzeichnen Sie eine Lizenzvereinbarung für Mitwirkende wie oben beschrieben.
  2. Treten Sie unserer Diskussionsgruppe bei.
  3. Richten Sie Ihre Entwicklungsumgebung ein.
  4. Ordnen Sie jeden Ihrer Änderungssätze einem Problem (Fehlerbericht oder Funktion) zu. in der GitHub-Problemverfolgung. Erstelle eine neue Ausgabe, falls noch keine vorhanden ist, und weise sie dir selbst zu.
  5. Sehen Sie sich Code an, erstellen Sie auf codereview.appspot.com ein neues Problem und schließen Sie die Codeüberprüfung ab. Detaillierte Anweisungen für diese Prozesse finden Sie unten.
  6. Übernehmen Sie den Code, nachdem Ihr Code überprüft wurde und Sie die Genehmigung erhalten haben. Wenn Sie kein offizieller Contributor sind, wird Ihr Änderungssatz von einem Beitragenden in das offizielle Repository übertragen.

Wir verwenden die folgenden Tools und Prozesse:

  • Wir verwenden Git als Versionskontrollsystem.
  • Wir verwenden Maven für das Build-System sowie ein binäres Verteilungssystem.
  • Für Code verwenden wir codereview.appspot.com. Rezensionen. Beachten Sie jedoch, dass im Tool codereview.appspot.com bezeichnet eine Anfrage zur Codeüberprüfung, während im GitHub Issue Tracker ein „Problem“ ist ein Funktionsanfrage oder Fehlerbericht.)

Wenn Sie Eclipse-Entwickler sind, verwenden Sie die projektspezifische Codeformatierung im .settings-Verzeichnis angegeben ist, das automatisch von Eclipse verarbeitet wird.

Entwicklungsumgebung einrichten

Vorbereitung

  1. Installieren Sie Java 6. Du musst möglicherweise JAVA_HOME festlegen .
  2. Installieren Sie Maven. (In diesem Dokument setzt voraus, dass Sie mit Maven-Befehlen vertraut sind.)
  3. Optional: Installieren Sie das Android SDK. und legen Sie Ihre Variable ANDROID_HOME auf den Installationsort für Android fest.
  4. Installieren Sie Git.

Git einrichten

Verwenden Sie den Befehl git config, um Ihren standardmäßigen Anzeigenamen und Ihre Standard-E-Mail-Adresse festzulegen:

git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"

Über Git mit GitHub authentifizieren

Um den Code von GitHub auschecken zu können, müssen Sie mit GitHub mit HTTP oder SSH verwenden. Bevor Sie mit der erhalten Sie im GitHub-Artikel Anleitung mit HTTPS- oder SSH-Klonen begonnen. Wenn Sie mehr über Git erfahren möchten, Pro Git ist eine gute Ressource.

Code auschecken

HTTPS verwenden

Bibliotheks-Repository im „Master“ der Entwicklung ansehen Zweig, führen Sie den folgenden Befehl aus:

git clone https://github.com/google/google-api-java-client.git

SSH verwenden

Bibliotheks-Repository im „Master“ der Entwicklung ansehen Zweig, machen sicher, dass du Schreibzugriff auf das GitHub-Repository haben, dann führen Sie den folgenden Befehl aus:

git clone git@github.com:google/google-api-java-client.git

So wechseln Sie zu einem alternativen Zweig, z. B. 1.12:

git checkout --track origin/1.12

So wechseln Sie zurück zum Master-Branch:

git checkout master

Um die neuesten Änderungen aus dem GitHub-Repository abzurufen und Ihr lokales bis zum neuesten Commit:

git pull

Maven

Google Play-Dienste installieren

Wenn Sie das Projekt zum ersten Mal einrichten, müssen Sie die google-play-services.jar. Das geht so:

  1. Starten Sie Eclipse und wählen Sie Window > Android SDK Manager oder führen Sie android aus in die Befehlszeile eingeben.
  2. Scrollen Sie in der Paketliste nach unten und wählen Sie Extras > Google Play Dienste.
mvn install:install-file \
           -Dfile=$ANDROID_HOME/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar \
           -DgroupId=com.google.android.google-play-services \
           -DartifactId=google-play-services \
           -Dversion=1 \
           -Dpackaging=jar

Projekt kompilieren

mvn clean install

Maven installiert die kompilierten Binärdateien in einem lokalen Repository (z. B. ~/.m2/repository). Vor dem Abrufen wird nach Binärdateien in diesem Repository gesucht. aus dem Maven Central Repository.

Hinweis: Diese Bibliothek hängt von google-http-java-client ab und google-oauth-java-client. Wenn Sie an einer neuen Version aller drei Bibliotheken arbeiten, die noch nicht veröffentlicht wurden an Maven Central senden, müssen Sie sie in der folgenden Reihenfolge kompilieren:

  1. google-http-java-client
  2. google-oauth-java-client
  3. google-api-java-client Durch die Kompilierung in dieser Reihenfolge wird sichergestellt, dass Maven die kompilierten Binärdateien für Kompilierung der abhängigen Bibliothek.

Codeüberprüfung

Das Skript "upload.py" herunterladen

Laden Sie das Skript upload.py herunter. und optional zum PATH hinzufügen.

Wenn Sie upload.py zum ersten Mal ausführen, werden Sie nach einer anwendungsspezifisches Passwort:

Email (login for uploading to codereview.appspot.com): your_email_address@yourdomain.com
Password for your_email_address@yourdomain.com: 

Code wird für die Überprüfung vorbereitet

Bevor Sie den Code zur Überprüfung senden, müssen Sie Clirr ausführen, um rückwärts zu erfassen. Kompatibilitätsprobleme in Ihrem Code. Wenn Fehler gemeldet werden, müssen Sie korrigieren oder die Datei clirr-ignored-differences.xml aktualisieren.

mvn -q clirr:check

Außerdem müssen Sie das FindBugs-Tool ausführen, um Fehler im Code zu erkennen. Falls Fehler auftreten gemeldet wurden, müssen Sie diese entweder korrigieren oder die Datei „findbugs-exclude.xml“ aktualisieren. -Datei. (Beachten Sie, dass FindBugs sehr langsam ist.)

mvn findbugs:check

Sobald Ihre Änderung alle Tests bestanden hat, fügen Sie sie dem Index (dem Git-Staging Region):

git add .

Überprüfen Sie, ob alle hinzugefügten, geänderten oder gelöschten Dateien berücksichtigt werden im Index enthalten:

git status

Sehen Sie sich in der Ausgabe von git status den Abschnitt „Changes to becomed“ (Änderungen werden festgeschrieben) an.

Codeüberprüfung starten

Wenn Sie zur Überprüfung bereit sind, erstellen Sie ein neues Problem auf codereview.appspot.com:

upload.py --rev=HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...

Nachdem Sie weitere Änderungen vorgenommen haben, sollten Sie sie testen. Um einen neuen Patch hochzuladen, Um beispielsweise die Nummer 123456 auszugeben, führen Sie den folgenden Befehl aus:

upload.py --rev=HEAD -i 123456

Führen Sie upload.py --help aus, um weitere Optionen zu erhalten.

Wenn Sie das typische GitHub Workflow haben Sie sich wahrscheinlich verzweigt, GitHub-Repository und einen Branch für diese neue Funktion oder Fehlerkorrektur erstellt. Wenn Sie Code senden Anfragen aus Ihrer eigenen Fork prüfen und sicherstellen, dass Ihre Verzweigung synchron mit das Upstream-Repository. Weitere Informationen finden Sie in der GitHub-Hilfe zum Synchronisieren einer Gabelung.

Sie können "upload.py" auch für lokal per Commit übertragene Änderungssätze verwenden.

upload.py --rev=upstream/master:HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...

Codeprüfer

Wenn Sie Code-Prüfer sind, importieren und testen Sie Änderungssätze, bevor Sie sie genehmigen. Anschließend führen Sie einen Commit durch und übertragen die Änderungssätze per Push in das Remote-Repository.

Änderungssatz importieren

Damit Fehler frühzeitig erkannt werden, sollten Sie immer die neuesten Änderungen aus der Fernbedienung abrufen. in Ihrem Arbeitsbaum. Achten Sie darauf, dass Ihr Arbeitsbaum sauber und wenn Ihr Index leer ist.

So rufen Sie die neuesten Commits aus dem Remote-Repository ab und führen sie zusammen:

git pull

So überprüfen Sie, was sich in Ihrem Arbeitsbaum und Index befindet:

git status

So importieren Sie einen Patch in Ihren lokalen Git-Klon:

  1. Öffnen Sie das Problem auf codereview.appspot.com.
  2. Suche bei dem betreffenden Patch nach „Rohdaten herunterladen“. oben rechts im patch-Spezifikation zu ändern.
  3. Klicken Sie auf „Roh“. um eine URL für die zu importierende Datei abzurufen.
  4. Speichern Sie die RAW-Diff-Datei unter einem Namen wie dem folgenden auf Ihrem lokalen Computer: issue123456.diff.
  5. Rufen Sie Ihre lokale Git-Arbeitsstruktur auf und wenden Sie die Differenz mithilfe von patch an. Befehl:
patch -p1 < issue123456.diff

Mit git diff können Sie überprüfen, ob Sie die richtigen Unterschiede importiert haben. in Ihrem Arbeitsbaum.

Änderungssatz testen

Verwenden Sie den folgenden Befehl, um die Tests auszuführen und die Installation durchzuführen:

mvn clean install checkstyle:check

Änderungssatz auf codereview.appspot.com genehmigen

Im Allgemeinen kann Code erst an das GitHub-Repository übertragen werden, wenn der Codeprüfer damit der Code bereit ist. An dieser Stelle lautet die Konvention, mit der Nachricht "LGTM" (Sieht gut aus.)

Commit des Codes

Wichtig:Bevor Sie einen Commit Ihres Codes ausführen, rufen Sie die letzten Änderungen und aktualisieren Sie Ihren Arbeitsbaum auf den neuesten Commit von GitHub. Repository:

git pull

Beheben Sie eventuelle Konflikte und sorgen Sie dann dafür, dass alle Tests noch einmal durch.

So führen Sie einen lokalen Commit für den Code aus:

git commit

Geben Sie eine Nachricht wie die folgende ein (vorausgesetzt, Sie beheben oder implementieren Problem Nr. 123, wie in GitHub aufgeführt Problemverfolgung):

#123: NullPointerException when passing null to processFoo()
http://codereview.appspot.com/123456/

Vor dem ersten Doppelpunkt und der Beschreibung:

  • Wenn es sich um eine Lösung eines Problems im Issue Tracker handelt, geben Sie die Problemnummer wie in der Abbildung unten an.
  • Wenn dies für eine bestimmte Filiale gilt, geben Sie die Filialnummer an.
  • Sie sind die committer dieses Commits, aber bitte rechnen Sie den Autor der Änderung, indem er als author (--author=<author>) gekennzeichnet wird.

Fügen Sie nach der Beschreibung immer einen Link zum Problem in die Codeüberprüfung ein. Website. Dieser Link ist wichtig, denn ohne ihn gibt es keine bequeme Möglichkeit, Ermitteln der mit einem Commit verbundenen Codeüberprüfung, was nützlich für die Führung der Diskussion.

So übertragen Sie die Änderung per Push in das GitHub-Repository:

git push

Wenn Sie während des git push eine Fehlermeldung erhalten, dass Updates abgelehnt werden, Sie vergessen, git pull auszuführen), gehen Sie wie folgt vor, um eine Zusammenführung mit den letzten Änderungen Übertragen Sie die Änderungen per Push in das Remote-Repository:

git pull
git commit
git push

Problem abschließen

Schließen Sie das Problem im Tool für die Codeüberprüfung. Das geht so:

  1. Wählen Sie das Problem in codereview.appspot.com aus.
  2. Klicke auf das „X“. der sich links oben vor "Id" befindet.

Patchen eines Änderungssatzes aufheben

Falls Sie aus irgendeinem Grund keinen Commit für einen importierten Änderungssatz durchführen möchten, verwenden Sie die Methode folgenden Befehl, um sie zu löschen. Seien Sie vorsichtig: Dabei werden alle Ihre lokalen Änderungen gelöscht.

git checkout -- .