Katkıda Bulunan Lisans Sözleşmeleri (CLA'lar)
Kod yamalarınızı kabul edebilmemiz için önce veya kurumsal bir Katkıda Bulunan Lisans Sözleşmesi (CLA) kapsamında:
- Orijinal kaynak kodu yazan bir kişiyseniz ve sahip olduğunuzu doğrulamak için bir bağımsız CLA'ya da sahip olursunuz.
- Bir şirket için çalışıyorsanız şirketinizin bir kurumsal CLA göndermesi gerekir kullanın.
Uygun CLA'ya erişmek için yukarıdaki iki bağlantıdan birini tıklayın ve imzalama ve iade etme talimatlarını uygulayın. Ödeme talimatınız bize ulaştığında sizi ekleyebiliriz. ve resmî katkıda bulunanlar listesine eklememiz gerekir.
Yama göndermeye genel bakış
Bu projeye kod katkısında bulunmak için aşağıdaki genel adımları izleyin:
- Yukarıda açıklandığı şekilde bir Katkıda Bulunan Lisans Sözleşmesi imzalayın.
- Tartışma grubumuza katılın.
- Geliştirme ortamınızı ayarlayın.
- Değişiklik kümelerinizin her birini bir Sorunla (hata raporu veya özellik) ilişkilendirin isteği) GitHub Sorun İzleyici aracımıza bakın. Henüz yoksa yeni bir Sorun oluşturun ve kendinize atayın.
- Kodu kontrol edin, codereview.appspot.com adresinde yeni bir sayı oluşturun ve kod inceleme sürecini tamamlayın. Tüm bu süreçlerle ilgili ayrıntılı talimatlar aşağıda verilmiştir.
- Kodunuz incelenip onay aldıktan sonra kodu kaydedin. Resmi bir Katkıda Bulunan değilseniz, bir Katkıda Bulunan, değişikliklerinizi resmi depoya çeker.
Aşağıdaki araçları ve süreçleri kullanırız:
- Sürüm kontrol sistemimiz olarak Git'i kullanıyoruz.
- Derleme sistemi için de Maven'i kullanıyoruz. ikili dağılım sistemidir.
- Kod için codereview.appspot.com adresini kullanıyoruz. inceleme. (Ancak codereview.appspot.com aracında "sorun" teriminin bir kod inceleme isteğiyken, GitHub Issue Tracker'da bir (özellik isteği veya hata raporu).
Eclipse geliştiricisiyseniz projeye özel kod biçimlendirmesini kullanın. Eclipse tarafından otomatik olarak işlenen .settings dizininde belirtilir.
Geliştirme ortamını ayarlama
Ön koşullar
- Java 6'yı yükleyin.
JAVA_HOME
ayarınızı yapmanız gerekebilir değişkenine eklenmelidir. - Maven'i yükleyin. (Bu doküman Maven komutlarıyla ilgili temel düzeyde bilgi sahibi olduğunuz varsayılır.)
- İsteğe bağlı: Android SDK'sını yükleyin ve ANDROID_HOME değişkeninizi Android için yükleme konumuna ayarlayın.
- Git'i yükleyin.
Git'i ayarlama
Varsayılan görünen adınızı ve e-posta adresinizi ayarlamak için git config
komutunu kullanın:
git config --global user.name "YOUR NAME" git config --global user.email "YOUR EMAIL ADDRESS"
Git'ten GitHub ile kimlik doğrulama
GitHub'daki kodu kontrol edebilmek için kimliğinizi doğrulamanız gerekir GitHub'ı kullanarak HTTP veya SSH kullanarak. aşağıdaki talimatlar için GitHub'ı okuyun talimatları ile başladım. Git hakkında daha fazla bilgi edinmek isterseniz Pro Git iyi bir kaynaktır.
Kodu kontrol etme
HTTPS'yi kullanma
Geliştirme "ana"sındaki kitaplık deposuna göz atmak için dal, aşağıdaki komutu çalıştırın:
git clone https://github.com/google/google-api-java-client.git
SSH'yi kullanma
Geliştirme "ana"sındaki kitaplık deposuna göz atmak için dal, yap emin o zaman ardından aşağıdaki komutu çalıştırın:
git clone git@github.com:google/google-api-java-client.git
Alternatif bir dala (ör. 1.12) geçmek için:
git checkout --track origin/1.12
Ana dala geri dönmek için:
git checkout master
GitHub deposundan en son değişiklikleri almak ve yerel çalışma ağacını en son kayda geçirme:
git pull
Maven
Google Play Hizmetleri'ni yükleyin
Projeyi ilk kez ayarladığınızda, Google Etiket Yöneticisi'ni kullanarak google-play-services.jar dosyasına göz atın. Bunun için:
- Eclipse'i başlatın ve Pencere > Android SDK Manager'ı indirin veya
android
uygulamasını çalıştırın ifadesini girin. - Paket listesinin altına doğru ilerleyin ve Ekstralar > Google Play hizmet.
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
Projeyi derleyin
mvn clean install
Maven, derlenen ikili programları yerel bir depoya yükler (örneğin ~/.m2/depo). Getirmeden önce ilgili depodaki ikili programları arar. Maven merkez deposundan.
Not: Bu kitaplık google-http-java-client'e bağlıdır ve google-oauth-java-client. Henüz yayınlanmamış üç kitaplığın da yeni sürümü üzerinde çalışırken kullanıyorsanız, bu dosyaları şu sırayla derlemeniz gerekir:
- google-http-java-client
- google-oauth-java-client
- google-api-java-client Bu sırada derleme işlemi, Maven'in derlemesi olabilir.
Kod inceleme süreci
Upload.py komut dosyasını indirme
upload.py komut dosyasını indirin. ve isteğe bağlı olarak PATH yolunuza ekleyebilirsiniz.
upload.py
uygulamasını ilk kez çalıştırdığınızda sizden bir
uygulamaya özel şifre:
Email (login for uploading to codereview.appspot.com): your_email_address@yourdomain.com Password for your_email_address@yourdomain.com:
Kodunuzu inceleme için hazırlama
Kodu incelemeye göndermeden önce geriye doğru yakalamak için Clirr'i çalıştırmanız gerekir. uyumluluk sorunları olabilir. Hata bildirilirse şunları yapmanız gerekir: bunları düzeltin veya clirr-ignored-differences.xml dosyasını güncelleyin.
mvn -q clirr:check
Koddaki hataları yakalamak için FindBugs aracını da çalıştırmanız gerekir. Hata varsa durumu bildirmesi durumunda, bunları düzeltmeniz veya findbugs-excluded.xml dosyasını güncellemeniz gerekir. dosyası olarak kaydedebilirsiniz. (FindBugs'in çok yavaş olduğunu unutmayın.)
mvn findbugs:check
Yaptığınız değişiklik tüm testleri geçtikten sonra değişikliği dizine ekleyin (Git hazırlığı alan):
git add .
Eklediğiniz, değiştirdiğiniz veya sildiğiniz tüm dosyaların yansıtıldığından emin olun. şu dizinde:
git status
git status
çıkışında "Uygulanacak değişiklikler" adlı bölümü işaretleyin.
Kod incelemesini başlatma
İncelenmeye hazır olduğunuzda codereview.appspot.com adresinde yeni bir sayı oluşturun:
upload.py --rev=HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ....
Daha fazla değişiklik yaptıktan sonra yeni değişikliklerinizi aşamalandırın. Yeni bir yama yüklemek için Örneğin, 123456 numaralı sorunu çözmek için aşağıdaki komutu çalıştırın:
upload.py --rev=HEAD -i 123456.
Diğer seçenekler için upload.py --help
komutunu çalıştırın.
Tipik GitHub'ı tercih ederseniz büyük olasılıkla bölme GitHub deposu ve bu yeni özellik veya hata düzeltmesi için bir dal oluşturuldu. Google Takvim widget'ını kod gönder kendi çatalınızdan gelen istekleri incelemek için çatalınızın kod deposunu kullanın. Daha fazla bilgi için GitHub yardımına bakın çatalın senkronize edilmesi konulu makaleyi inceleyin.
Yükleme.py'yi yerel olarak kaydedilen değişiklik kümeleri için de kullanabilirsiniz.
upload.py --rev=upstream/master:HEAD --base_url=https://github.com/google/google-api-java-client --send_mail -r reviewer@somedomain --cc ...
Kod inceleme uzmanı
Kod inceleyiciyseniz değişiklikleri onaylamadan önce içe aktarın ve test edin. ve ardından değişiklikleri kaydedip uzak depoya aktarın.
Değişiklik kümesini içe aktarma
Hataları erken yakalamak için uzaktan kumandadan en son değişiklikleri çektiğinizden emin olun çalışma ağacınıza yerleştireceğiz. Çalışma ağacınızın temiz ve dizininiz boştur.
Uzak depodan en son kayıtları çekmek ve birleştirmek için:
git pull
Çalışma ağacınızda ve dizininizde nelerin bulunduğunu kontrol etmek için:
git status
Bir yamayı yerel Git klonunuza aktarmak için:
- Sorunu codereview.appspot.com içinde açın.
- Söz konusu yama için "Ham indir" seçeneğini bulun sağ üst tarafında yama spesifikasyonu.
- "Ham"ı tıklayın kullanarak içe aktarılacak dosyanın URL'sini alabilirsiniz.
- Ham diff dosyasını yerel makinenize şunun gibi bir adla kaydedin: issue123456.diff.
- Yerel Git çalışma ağacınıza gidin ve
patch
öğesini kullanarak farkı uygulayın komut:
patch -p1 < issue123456.diff
Doğru farkı içe aktardığınızdan emin olmak için git diff
işlemi gerçekleştirin
analiz edebilirsiniz.
Değişiklik kümesini test etme
Testleri çalıştırmak ve yüklemek için aşağıdaki komutu kullanın:
mvn clean install checkstyle:check
codereview.appspot.com'daki bir değişiklik kümesini onaylama
Genel olarak kod, kod inceleyene kadar GitHub deposuna kod aktarılamaz kodun hazır olduğundan emin olun. Bu noktada kural, paydaşlara "LGTM" mesajıyla (Bana İyi Görünüyor).
Kodu uygulama
Önemli: Kodunuzu uygulamadan önce, en son değişiklikleri çalışma ağacınızı ve çalışma ağacınızı GitHub'daki en son kayda güncelleyin depo:
git pull
Herhangi bir çakışma varsa bunları çözün, ardından devam edebilir.
Kodu yerel olarak kaydetmek için:
git commit
Aşağıdaki gibi bir mesaj girin (sorunu çözdüğünüz veya uyguladığınızı varsayarak Sorun numarası 123, GitHub'da listelendiği şekilde Sorun İzleyici):
#123: NullPointerException when passing null to processFoo() http://codereview.appspot.com/123456/
İlk iki nokta üst üste ve açıklamadan önce:
- Bu, Sorun İzleyici'deki bir sorunun çözümüyse aşağıda gösterildiği gibi sorun numarasını ekleyin.
- Bu değişiklik belirli bir şube için geçerliyse, şube numarasını ekleyin.
- Bu taahhütte
committer
siz olacaksınız ancak değişikliğin yazarınıauthor
(--author=<author>
) olarak işaretleyerek yazarsınız.
Açıklamanın ardından her zaman kod incelemesine sorunun bağlantısını ekleyin girin. Bu bağlantı önemlidir, çünkü bağlantı olmadan kod incelemesini bulmak önemlidir. Bu işlem, ve tartışmanın geçmişini korumayı amaçlar.
Değişikliği GitHub deposuna aktarmak için:
git push
git push
sırasında, reddedilen güncellemelerle ilgili bir hata mesajı alırsanız (
git pull
öğesini çalıştırmayı unuttunuz.) en son değişikliklerle ve bu değişikliklerle ilgili
değişikliklerinizi uzak depoya aktarın:
git pull git commit git push
Sorunu kapatma
Kod inceleme aracında sorunu kapattığınızdan emin olun. Bunun için:
- codereview.appspot.com adresinde sorunu seçin.
- "X"i tıklayın "Id" harfinden önce gelen, sol üstte bulunur.
Değişiklik kümesine yama kaldırma
Herhangi bir nedenle içe aktardığınız bir değişiklik kümesini uygulamamaya karar verirseniz komutunu çalıştırın. Dikkatli olun: Bu işlem, yaptığınız tüm yerel değişiklikleri siler.
git checkout -- .