Umowy licencyjne dla współtwórców (CLA)
Zanim będziemy mogli zaakceptować poprawki kodu, musisz przesłać lub korporacyjną umowę licencyjną współtwórcy (CLA):
- Jeśli jesteś osobą tworzącą oryginalny kod źródłowy i masz pewność, że jesteś właścicielem własności intelektualnej, prześlij własna umowa CLA.
- Jeśli pracujesz w firmie, musi ona przesłać własną umowę CLA. aby wskazać, że możesz przesyłać swoje prace do tej biblioteki klienta.
Kliknij dowolny z powyższych linków, aby uzyskać dostęp do odpowiedniej CLA i instrukcje jego podpisania i oddania. Gdy ją otrzymamy, będziemy mogli Cię dodać do oficjalnej listy współtwórców.
Omówienie przesyłania poprawek
Aby współtworzyć kod w tym projekcie, wykonaj te ogólne czynności:
- Podpisz Umowę licencyjną dla współtwórców w sposób opisany powyżej.
- Dołącz do naszej grupy dyskusyjnej.
- Skonfiguruj środowisko programistyczne.
- Powiąż każdy zbiór zmian z problemem (raportem o błędzie lub funkcją) ) w naszym narzędziu do śledzenia problemów w GitHubie. Utwórz nowy problem, jeśli jeszcze go nie ma, i przypisz go do siebie.
- Sprawdź kod, utwórz nowy problem na stronie codereview.appspot.com i dokończ proces weryfikacji kodu. Poniżej podajemy szczegółowe instrukcje dotyczące wszystkich tych procesów.
- Gdy kod zostanie sprawdzony i zaakceptowany, zatwierdź go. Jeśli nie jesteś oficjalnym współtwórcą, pobierze on Twój zestaw zmian do oficjalnego repozytorium.
Używamy następujących narzędzi i procesów:
- Nasz system kontroli wersji to Git.
- Na potrzeby systemu kompilacji używamy Maven. na binarnym systemie dystrybucji.
- Do tworzenia kodu używamy domeny codereview.appspot.com opinie. (Zwróć jednak uwagę, że w narzędziu codereview.appspot.com słowo „issue” oznacza żądanie weryfikacji kodu, natomiast w narzędziu GitHub Issue Tracker jest prośba o dodanie funkcji lub raport o błędzie).
Jeśli jesteś programistą Eclipse, użyj formatowania kodu związanego z projektem określony w katalogu .settings, który jest automatycznie przetwarzany przez Eclipse.
Konfigurowanie środowiska programistycznego
Wymagania wstępne
- Zainstaluj Java 6. Może być konieczne ustawienie urządzenia
JAVA_HOME
. - Zainstaluj Maven. (Ten dokument zakładamy, że dysponujesz podstawową znajomością poleceń Maven).
- Opcjonalnie: zainstaluj pakiet SDK do Androida. i ustaw zmienną ANDROID_HOME na lokalizację instalacji na Androidzie.
- Zainstaluj Git.
Konfigurowanie Git
Aby ustawić domyślną wyświetlaną nazwę i adres e-mail, użyj polecenia git config
:
git config --global user.name "YOUR NAME" git config --global user.email "YOUR EMAIL ADDRESS"
Uwierzytelnianie w usłudze GitHub z Git
Aby zobaczyć kod z GitHuba, musisz się uwierzytelnić za pomocą GitHub przy użyciu HTTP lub SSH. Zanim przejdziesz do poniższych instrukcji znajdziesz w serwisie GitHub tutaj znajdziesz instrukcje, klonowano od HTTPS lub SSH. Jeśli chcesz dowiedzieć się więcej o Git in Pro Git jest dobrym materiałem.
Sprawdzam kod
Przy użyciu protokołu HTTPS
Aby zapoznać się z repozytorium biblioteki w programie głównym, gałąź, uruchom następujące polecenie:
git clone https://github.com/google/google-api-java-client.git
Używanie SSH
Aby zapoznać się z repozytorium biblioteki w programie głównym, gałąź, zrób upewnij się, że mieć uprawnienia do zapisu w repozytorium GitHub, a następnie uruchom to polecenie:
git clone git@github.com:google/google-api-java-client.git
Aby przełączyć się na inną gałąź, na przykład 1.12:
git checkout --track origin/1.12
Aby przełączyć się z powrotem na gałąź główną:
git checkout master
Aby pobrać najnowsze zmiany z repozytorium GitHub i zaktualizować plik lokalny drzewo robocze do najnowszego zatwierdzenia:
git pull
Maven
Zainstaluj Usługi Google Play
Przy pierwszej konfiguracji projektu musisz zainstalować google-play-services.jar. Aby to zrobić:
- Uruchom Eclipse i wybierz Okno > Android SDK Manager lub uruchom
android
. w wierszu poleceń. - Przewiń do dołu listy pakietów i wybierz Dodatki > Google Play, usługi.
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
Kompilowanie projektu
mvn clean install
Maven instaluje skompilowane pliki binarne do lokalnego repozytorium (na przykład ~/.m2/repozytorium). Przed pobraniem wyszukuje pliki binarne w tym repozytorium z centralnego repozytorium Maven.
Uwaga: Ta biblioteka korzysta z pakietu google-http-java-client oraz google-oauth-java-client. Podczas pracy nad nową wersją wszystkich 3 bibliotek, które nie zostały jeszcze opublikowane do Maven, musisz skompilować je w tej kolejności:
- google-http-java-client
- google-oauth-java-client
- google-api-java-client Kompilacja w tej kolejności daje pewność, że Maven pobierze skompilowane pliki binarne dla kompilację bibliotek zależnych.
Proces weryfikacji kodu
pobieranie skryptu send.py
Pobierz skrypt upload.py. i opcjonalnie dodaj ją do ścieżki PATH.
Przy pierwszym uruchomieniu aplikacji upload.py
zobaczysz prośbę o podanie
hasło aplikacji:
Email (login for uploading to codereview.appspot.com): your_email_address@yourdomain.com Password for your_email_address@yourdomain.com:
Przygotowanie kodu do sprawdzenia
Zanim wyślesz kod do sprawdzenia, musisz uruchomić Clirr, aby wychwytywać dane wstecz na problemy ze zgodnością w kodzie. Jeśli zostaną zgłoszone błędy, albo je napraw lub zaktualizuj plik clirr-ignored-differences.xml.
mvn -q clirr:check
Musisz też uruchomić narzędzie FindBugs, aby wyłapać błędy w kodzie. Jeśli wystąpią błędy musisz naprawić błędy lub zaktualizować plik findbugs-exclusion.xml. . Pamiętaj, że funkcja FindBugs działa bardzo wolno.
mvn findbugs:check
Gdy zmiana przejdzie wszystkie testy, dodaj ją do indeksu (plik przejściowy Git obszar:
git add .
Dokładnie sprawdź, czy wszystkie dodane, zmodyfikowane lub usunięte pliki zostały uwzględnione w indeksie:
git status
W danych wyjściowych git status
sprawdź sekcję „Zmiany do zatwierdzenia”.
Rozpoczynanie weryfikacji kodu
Gdy wszystko będzie gotowe do sprawdzenia, utwórz nowy problem na stronie codereview.appspot.com:
upload.py --rev=HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...
Gdy wprowadzisz kolejne zmiany, przeprowadź ich edycję. Aby przesłać nową poprawkę, na przykład, aby podać numer 123456, uruchom to polecenie:
upload.py --rev=HEAD -i 123456
Aby zobaczyć więcej opcji, uruchom upload.py --help
.
Jeśli wolisz typowy GitHub proces, prawdopodobnie masz rozwidlenie repozytorium GitHub i utworzenie gałęzi dla tej nowej funkcji lub poprawki błędu. Gdy wyślij kod Sprawdź żądania z własnego widelca, upewnij się, że jest on zsynchronizowany z do repozytorium nadrzędnego. Więcej informacji znajdziesz w pomocy GitHuba jak synchronizować widelec.
Możesz też użyć polecenia send.py również w przypadku zbiorów zmian zatwierdzonych lokalnie.
upload.py --rev=upstream/master:HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...
Weryfikator kodu
Jeśli jesteś weryfikatorem kodu, zaimportuj i przetestuj zbiory zmian przed ich zatwierdzeniem. a następnie zatwierdź i wypchnij zbiory zmian do repozytorium zdalnego.
Importowanie zbioru zmian
Aby wcześniej wychwytywać błędy, pobierz najnowsze zmiany ze pilota w drzewie roboczym. Upewnij się, że drzewo jest czyste indeks jest pusty.
Aby pobrać i scalić najnowsze zatwierdzenia z repozytorium zdalnego:
git pull
Aby sprawdzić, co znajduje się w drzewie roboczym i indeksie:
git status
Aby zaimportować poprawkę do lokalnego klonu Git:
- Otwórz problem na stronie codereview.appspot.com.
- W przypadku danej poprawki poszukaj komunikatu „Pobierz nieprzetworzone” w prawym górnym rogu specyfikacji poprawki.
- Kliknij „Nieprzetworzone”. aby uzyskać adres URL pliku do zaimportowania.
- Zapisz plik nieprzetworzonej różnicy na komputerze lokalnym pod nazwą issue123456.diff.
- Przejdź do lokalnego drzewa roboczego Git i zastosuj różnice za pomocą interfejsu
patch
polecenie:
patch -p1 < issue123456.diff
Aby upewnić się, że zostały zaimportowane właściwe różnice, git diff
w drzewie roboczym.
Testowanie zbioru zmian
Aby uruchomić testy i zainstalować, użyj następującego polecenia:
mvn clean install checkstyle:check
Zatwierdzanie zbioru zmian na stronie codereview.appspot.com
Zasadniczo nie można przekazać kodu do repozytorium GitHub, dopóki weryfikator kodu nie jest zadowolony, że kod jest gotowy. Zgodnie z tradycją należy odpowiadać z komunikatem „LGTM” (wygląda dobrze).
Zatwierdzanie kodu
Ważne: zanim zatwierdzisz kod, pobierz najnowsze zmiany do pliku drzewo robocze i zaktualizuj drzewo robocze do najnowszego zatwierdzenia z GitHuba repozytorium:
git pull
Jeśli wystąpiły konflikty, rozwiąż je, a następnie pilnuj, by wszystkie testy mogą znowu przejść weryfikację.
Aby zatwierdzić kod lokalnie:
git commit
Wpisz komunikat podobny do tego (przy założeniu, że naprawiasz lub wprowadzasz zmiany Problem nr 123 podany w serwisie GitHub Issue Tracker):
#123: NullPointerException when passing null to processFoo() http://codereview.appspot.com/123456/
Przed pierwszym dwukropkiem i opisem:
- Jeśli to rozwiązanie problemu w narzędziu Issue Tracker, podaj jego numer w pokazanym przykładzie.
- Jeśli jest to zmiana dla konkretnej gałęzi, podaj jej numer.
- Będziesz
committer
tego zatwierdzenia, ale pochwal się autor zmiany, oznaczając go jakoauthor
(--author=<author>
).
Zawsze podawaj link do problemu w weryfikacji kodu, postępując zgodnie z opisem. witrynie. Ten link jest ważny, ponieważ bez niego nie da się w wygodny sposób należy sprawdzić weryfikację kodu powiązaną z zatwierdzeniem. Jest to przydatne zachowywanie historii dyskusji.
Aby przekazać zmianę do repozytorium GitHub:
git push
Jeśli w czasie git push
pojawi się komunikat o błędzie o odrzuceniu aktualizacji (może
jeśli zapomniałeś uruchomić git pull
), wykonaj te czynności, aby scalić te zmiany z najnowszymi zmianami
wypchnij zmiany do zdalnego repozytorium:
git pull git commit git push
Zakończenie problemu
Pamiętaj, aby zamknąć problem w narzędziu do sprawdzania kodu. Aby to zrobić:
- Wybierz problem na stronie codereview.appspot.com.
- Kliknij „X”. w lewym górnym rogu, przed „Id”.
Odinstalowywanie poprawek do zbioru zmian
Jeśli z jakiegoś powodu nie chcesz zatwierdzić zaimportowanego zestawu zmian, użyj metody następujące polecenie, aby go pozbyć. Zachowaj ostrożność: powoduje to dosłownie usunięcie wszystkich lokalnych zmian.
git checkout -- .