Yamaları gönderme

Bu sayfada, Android Açık Kaynak Projesi'ne (AOSP) bir yama gönderme işleminin tamamı, Gerrit ile nasıl inceleme talep edeceğiniz ve değişikliklerinizi nasıl izleyeceğiniz açıklanmaktadır.

Önkoşullar

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

Kaynaklar

  • Repo ve Git ile ilgili 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 ekleme hakkında 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ı kısa bir süre içinde aynı IP adresinden yeni istemcileri senkronize ettiğ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 edinmek için Kimlik doğrulamayı kullanma bölümüne bakın.

Repo şubesi başlatma

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

repo start NAME .

Aynı havuzda aynı anda birkaç bağımsız dal başlatabilirsiniz. NAME dalı, çalışma alanınız için yereldir ve Gerrit'te veya son kaynak ağacında yer almaz.

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

  • Satır 1: Başlık

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

    Bu biçim Git ve Gerrit tarafından çeşitli görüntüler 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 önekleri kullanmayı düşünün, ardından bu işlemde yaptığınız değişikliğin bir açıklamasını kullanın, örneğin öneki ui olan bu değişiklik gibi:

    ui: Removes deprecated widget

  • Satır 2: Boş

    Bu satırı her zaman boş bırakın.

  • Satır 3: Gövde

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

    Bu, maksimum 72 karakterde sabit olarak 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, daha sonra özellikle hata ayıklama için bu değişikliğe başvurmaları diğerlerine çok yardımcı olur.

    Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek herhangi bir varsayım veya arka plan bilgisi hakkında kısa bir not 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 bir örnek 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 birlikte) hakkında bir blog okumak için Chris Beams tarafından yazılan Git Taahhüt Mesajı Nasıl Yazılır bölümüne bakın.

Gerrit'e yükleniyor

Değişikliğinizi kişisel geçmişinize kaydettikten sonra, şu 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. Düzeltme ekinizi inceleme sunucusunda görüntülemek, yorum eklemek veya düzeltme ekiniz için belirli gözden geçirenler istemek için Repo'nun size verdiği bağlantıya tıklayın.

inceleme isteniyor

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

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

  1. Düzeltme ekinizdeki dosyalar için kod sahiplerinin listesini görmek için Gerrit Kullanıcı Arayüzündeki SAHİP ÖNERİLERİ bağlantısını seçin.

    Gerrit'te sahiplere bağlantı öner
    Şekil 1. Gerrit'teki sahiplere öner bağlantısı
  2. Düzeltme ekiniz için gözden geçirenler olarak listeden kod sahiplerini ekleyin.

Düzeltme ekinizdeki dosyaların durumunu belirlemek için, düzeltme ekindeki dosyaların yanında bulunan 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

Yedek 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 da Gerrit'te orijinaliyle aynı değişiklik kimliğine sahip yeni bir yamayla 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 çakışan başka yamalar gönderilirse, yamanızı kaynak deponun 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, ardından HEAD otomatik olarak yeni uzak HEAD yeniden temellendirmeye çalışır.

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

repo rebase

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

git rebase --continue

Otomatik veya manuel yeniden temel oluşturma işlemi tamamlandıktan sonra, yeniden temellendirilmiş 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 depoda birleştirir. Diğer kullanıcılar, güncellemeyi kendi yerel istemcilerine çekmek için repo sync çalıştırabilir.

Yukarı akış projeleri için

Android , Android Yazılım Yönetimi'nde açıklandığı gibi, Linux çekirdeği ve WebKit gibi bir dizi başka açık kaynak projesinden yararlanır. external/ altında bulunan çoğu proje için değişiklikleri yukarı yönde 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. Aşağıda belirtilen ve genellikle her sürümde yükseltilen daha büyük projelerin çoğu gibi, proje Android'de yaygın olarak kullanılıyorsa, bunların yapılması zor değişiklikler olabileceğini unutmayın.

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

Android Çekirdeği

Tüm değişiklikleri yukarı yönde yapın. Genel rehberlik için Android Çekirdeği Katkı Yönergelerini ve GKI için Çekirdek Kodu Geliştirme sayfasını izleyin.

yoğun bakım

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

CLDR

Yoğun bakım ünitesindeki çoğu dilbilimsel veri, Unicode CLDR projesinden gelir. Lütfen CLDR Değişiklik isteklerini kullanarak tüm istekleri 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 projesindeki tüm değişiklikleri, mirbsd.org etki alanındaki miros-mksh bir e-posta göndererek (buraya göndermek için abonelik gerekmez) veya Launchpad'de external/mksh adresinden yapın.

AçıkSSL

OpenSSL projesindeki tüm değişiklikleri OpenSSL sayfasında external/openssl yapın.

V8

V8 projesindeki tüm değişiklikleri V8 sorun sayfasında external/v8 gönderin. Ayrıntılar için bkz . V8'e Katkıda Bulunma.

Web Kiti

WebKit projesindeki tüm değişiklikleri WebKit sayfasında external/webkit yapın. Bir WebKit hatası bildirerek süreci başlatın. Hatada, Android for the Platform ve OS alanlarını 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 WebKit'e Katkıda Bulunan Kod'a bakın.

zlib

zlib projesindeki tüm değişiklikleri zlib ana sayfasında external/zlib konumunda yapın.