Katkıda Bulunma

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:

  1. Yukarıda açıklandığı şekilde bir Katkıda Bulunan Lisans Sözleşmesi imzalayın.
  2. Tartışma grubumuza katılın.
  3. Geliştirme ortamınızı ayarlayın.
  4. 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.
  5. 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.
  6. 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

  1. Java 6'yı yükleyin. JAVA_HOME ayarınızı yapmanız gerekebilir değişkenine eklenmelidir.
  2. Maven'i yükleyin. (Bu doküman Maven komutlarıyla ilgili temel düzeyde bilgi sahibi olduğunuz varsayılır.)
  3. İsteğe bağlı: Android SDK'sını yükleyin ve ANDROID_HOME değişkeninizi Android için yükleme konumuna ayarlayın.
  4. 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:

  1. Eclipse'i başlatın ve Pencere > Android SDK Manager'ı indirin veya android uygulamasını çalıştırın ifadesini girin.
  2. 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:

  1. google-http-java-client
  2. google-oauth-java-client
  3. 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:

  1. Sorunu codereview.appspot.com içinde açın.
  2. Söz konusu yama için "Ham indir" seçeneğini bulun sağ üst tarafında yama spesifikasyonu.
  3. "Ham"ı tıklayın kullanarak içe aktarılacak dosyanın URL'sini alabilirsiniz.
  4. Ham diff dosyasını yerel makinenize şunun gibi bir adla kaydedin: issue123456.diff.
  5. 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:

  1. codereview.appspot.com adresinde sorunu seçin.
  2. "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 -- .