Yamaları gönderme

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bu sayfada, Gerrit ile nasıl inceleme talebinde bulunacağınız ve değişikliklerinizi nasıl izleyeceğiniz dahil olmak üzere, Android Açık Kaynak Projesi'ne (AOSP) bir yama gönderme sürecinin tamamı açıklanmaktadır.

Önkoşullar

Başlamak için aşağıdakileri yaptığınızdan emin olun:

Kaynaklar

  • Repo ve Git hakkında ayrıntılar için Kaynak Kontrol Araçları sayfasına bakın.
  • Android Açık Kaynak topluluğu içindeki farklı roller hakkında bilgi için Proje rolleri sayfasına bakın.
  • Android platformuna kod katkısıyla ilgili lisans bilgileri için Lisanslar sayfasına bakın.

Katkıda bulunanlar için

Sunucuyla kimlik doğrulama

Bir IP adresini diğer kullanıcılarla paylaşırsanız, normal kullanım kalıpları için bile kotalar tetiklenebilir. Bu, örneğin birçok kullanıcı aynı IP adresinden yeni istemcileri kısa bir süre içinde eşitlediğinde olabilir. Kimliği doğrulanmış erişim, IP adresinden bağımsız olarak her kullanıcı için ayrı bir kota kullanır. Kimliği doğrulanmış erişimi etkinleştirme hakkında bilgi almak için Kimlik doğrulamayı kullanma bölümüne bakın.

Repo şubesi başlatmak

Yapmayı düşündüğünüz her değişiklik için ilgili Git deposunda yeni bir şube başlatın:

repo start NAME .

Aynı depoda aynı anda birkaç bağımsız şube başlatabilirsiniz. NAME dalı, çalışma alanınızda yereldir ve Gerrit'te veya son kaynak ağacında bulunmaz.

Değişikliğinizi yapmak

Kaynak dosyaları değiştirin ve değişikliklerinizi doğrulayın.

Değişiklikleri yerel deponuza şu komutlarla uygulayın:

git add -A
git commit -s

Açıklamaları değiştir

  • 1. satır: Başlık

    Tek satırlık bir özet sağlayın ( en fazla 50 karakter)

    Bu biçim Git ve Gerrit tarafından çeşitli gösterimler için kullanılır. Taahhüt mesajınızın en önemli, en yoğun kısmıdır. Değiştirdiğiniz alanı açıklamak için önekler kullanmayı ve ardından bu taahhütte yaptığınız değişikliğin bir açıklamasını kullanmayı düşünün, örneğin, ön ek olarak kullanıcı ui sahip olan bu:

    ui: Removes deprecated widget

  • 2. satır: Boş

    Bu satırı her zaman boş tutun.

  • Satır 3: Gövde

    Bu satırdan başlayarak daha uzun bir açıklama yazın.

    Bu, maksimum 72 karakterde sabit sarılmalıdır. Değişikliğin hangi sorunu ve nasıl çözdüğünü açıklayın. Bu, yeni özellikleri uygularken isteğe bağlı olsa da, özellikle hata ayıklama için bu değişikliğe başvururlarsa, daha sonra başkalarına çok yardımcı olur.

    Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek varsayımların veya arka plan bilgilerinin kısa bir notunu ekleyin.

repo init sırasında sağlanan benzersiz bir değişiklik kimliği ve adınız ve e-postanız, taahhüt mesajınıza otomatik olarak eklenir.

İşte örnek bir taahhüt mesajı:

Line 1, Headline - a short description

Line 3, Body - Add the detailed description of your patch here. Use as many lines
as needed. You can write an overall description, then list specifics.

I6e3c64e7a:Added a new widget.
I60c539a8f:Fixed the spinning image.
İyi taahhüt açıklamaları (örneklerle) hakkında bir blog okumak için bkz.

Gerrit'e yükleme

Kişisel geçmişinize yaptığınız değişikliği yaptıktan sonra, bu komutla Gerrit'e yükleyin:

repo upload

Aynı depoda birden çok şube başlattıysanız, hangilerinin yükleneceğini seçmeniz istenir.

Başarılı bir yüklemeden sonra, Repo size Gerrit'te yeni bir sayfanın URL'sini sağlar. Yamanızı inceleme sunucusunda görüntülemek, yorum eklemek veya yamanız için belirli gözden geçirenler istemek için Repo'nun size verdiği bağlantıya tıklayın.

İnceleme talep etme

Değişikliklerinizi Gerrit'e yükledikten sonra, yama uygun kod sahipleri tarafından gözden geçirilmeli ve onaylanmalıdır. OWNERS dosyalarında kod sahiplerini bulun.

Uygun kod sahiplerini bulmak ve bunları değişikliğiniz için gözden geçirenler olarak eklemek için aşağıdaki adımları izleyin.

  1. Yamanızdaki dosyalar için kod sahiplerinin listesini görmek için Gerrit kullanıcı arayüzündeki SAHİPLERİ ÖNER bağlantısını seçin.

    Gerrit'te sahiplerin bağlantısını öner
    Şekil 1. Gerrit'te sahip öner bağlantısı
  2. Yamanız için gözden geçirenler olarak listeden kod sahiplerini ekleyin.

Yamanızdaki dosyaların durumunu belirlemek için yamadaki dosyaların yanında aşağıdaki simgeleri kontrol edin.

  • (onay işareti simgesi): Kod sahibi tarafından onaylandı
  • (çapraz simge): Kod sahibi tarafından onaylanmadı
  • (saat simgesi): Kod sahibinin onayı bekleniyor
Şekil 2. Kod sahibi onay durumunu gösteren simgeler içeren dosya örneği

Yeni bir yama yükleme

Bir gözden geçirenin yamanıza baktığını ve küçük bir değişiklik istediğini varsayalım. Taahhüdünüzü Git içinde değiştirebilirsiniz; bu, Gerrit'te orijinaliyle aynı değişiklik kimliğine sahip yeni bir yama ile sonuçlanır.

git add -A
git commit --amend

Değiştirilen yamayı yüklediğinizde, hem Gerrit'te hem de yerel Git geçmişinizde orijinalin yerini alır.

Senkronizasyon çakışmalarını çözme

Kaynak ağaca sizinkiyle çelişen başka yamalar gönderilirse, yamanızı kaynak havuzunun yeni HEAD üstüne yeniden yerleştirin. Bunu yapmak için şu komutu çalıştırın:

repo sync

repo sync komutu, güncellemeleri kaynak sunucudan alır ve ardından HEAD yeni uzak HEAD otomatik olarak yeniden temellendirmeye çalışır.

Otomatik yeniden temellendirme başarısız olursa, manuel yeniden temellendirme gerçekleştirin.

repo rebase

Rebase çakışmasıyla başa çıkmak için başka bir araç da git mergetool . Çakışan dosyaları başarıyla birleştirdiğinizde şu komutu çalıştırın:

git rebase --continue

Otomatik veya manuel yeniden temellendirme tamamlandıktan sonra, yeniden temellenen yamanızı göndermek için repo upload çalıştırın.

Gönderim onaylandıktan sonra

Bir gönderim, inceleme ve doğrulama sürecinden geçtikten sonra Gerrit, değişikliği otomatik olarak genel havuzla birleştirir. Diğer kullanıcılar, güncellemeyi ilgili yerel istemcilerine çekmek için repo sync çalıştırabilir.

Yukarı akış projeleri için

Android, Android Yazılım Yönetimi bölümünde açıklandığı gibi, Linux çekirdeği ve WebKit gibi bir dizi başka açık kaynak projesini kullanır. external/ altında bulunan çoğu proje için değişiklikleri yukarı akış yapın, ardından Android bakımcılarını değişikliklerinizi içeren yeni yukarı akış sürümü hakkında bilgilendirin.

Yeni bir yukarı akış sürümünün izlenmesine neden olan yamaları da yükleyebilirsiniz. Proje, aşağıda belirtilen ve genellikle her sürümde yükseltilen daha büyük olanların çoğu gibi, Android'de yaygın olarak kullanılıyorsa, bunların yapılması zor olabilir.

İlginç bir özel durum Bionic'tir. Kodun çoğu BSD'den geliyor, bu nedenle değişiklik Bionic'te yeni olan bir kod değilse, lütfen yukarı akış düzeltmesi yapın, ardından uygun BSD'den yepyeni bir dosya çekin.

Android Çekirdeği

Tüm değişiklikleri yukarı yönde yapmayı tercih edin. Genel rehberlik için Android Çekirdeği Katkı Yönergeleri'ni izleyin.

yoğun bakım

ICU-TC Ana Sayfasındaki external/icu /icu ( icu4c/ ve icu4j/ klasörleri) bölümünde ICU projesinde tüm değişiklikleri yapın. Daha fazlası için YBÜ Hatalarını ve Özellik İsteklerini Gönderme bölümüne bakın.

CLDR

ICU'daki çoğu dilsel veri, Unicode CLDR projesinden gelir. Lütfen tüm istekleri CLDR Değişiklik isteklerini kullanarak yukarı akışa gönderin ve 'Android' etiketini ekleyin.

LLVM/Clang/Derleyici-rt

LLVM Derleyici Altyapısı sayfasında LLVM ile ilgili projelerde ( external/clang , external/compiler-rt , external/llvm ) tüm değişiklikleri yapın .

mksh

MirBSD Korn Shell projesinde tüm değişiklikleri, ya mirbsd.org alan miros-mksh bir e-posta göndererek (orada göndermek için abonelik gerekmez) veya Launchpad'den external/mksh adresinde yapın.

OpenSSL

OpenSSL sayfasındaki external/openssl adresinde OpenSSL projesinde tüm değişiklikleri yapın.

V8

V8 projesinde yapılan tüm değişiklikleri V8 sorun sayfasındaki external/v8 gönderin. Ayrıntılar için V8'e Katkıda Bulunma bölümüne bakın.

WebKit

WebKit projesindeki tüm değişiklikleri WebKit sayfasındaki external/webkit yapın. Bir WebKit hatası göndererek süreci başlatın. Hatada, Platform ve OS alanları için Android yalnızca hata Android'e özgüyse kullanın. Önerilen bir düzeltme eklendikten ve testler dahil edildikten sonra hataların gözden geçirenlerin dikkatini çekmesi çok daha olasıdır. Ayrıntılar için Kodu WebKit'e Katma bölümüne bakın.

zlib

zlib ana sayfasındaki external/zlib adresinde zlib projesinde tüm değişiklikleri yapın.