Bu sayfada, inceleme isteğinde bulunma ve değişikliklerinizi izleme dahil olmak üzere, Android Açık Kaynak Projesi'ne (AOSP) bir kod değişikliği gönderme sürecinin tamamı açıklanmaktadır.
AOSP, Git kullanan projeler için web tabanlı bir kod inceleme sistemi olan Gerrit'i kullanır.
Katkıda bulunan lisans sözleşmelerini imzalayın
AOSP için herhangi bir kod değişikliğine katkıda bulunmadan önce Katkıda bulunan lisans sözleşmelerini ve başlıklarını okumanız ve aşağıdaki sözleşmelerden birini imzalamanız gerekir:
- Yalnızca sizin adınıza katkıda bulunan bireysel bir katkıda bulunan olarak Bireysel Katkıda Bulunan Lisans Sözleşmesi'ni imzalayın.
- Bir şirkette çalışan bir çalışan olarak şirketinizin, size şirket adına katkıda bulunma yetkisi veren Kurumsal Katkıda Bulunan Lisans Sözleşmesi'ni imzaladığından emin olun.
Dal başlatma
Yapmak istediğiniz her kod değişikliği için aşağıdaki adımları uygulayın:
İlgili Git deposunda yeni bir dal başlatın. Dallar, orijinal dosyaların kopyası değildir. Belirli bir kayda işaret eden dallar, yerel dallar oluşturmayı ve bunlar arasında geçiş yapmayı hafif bir işlemdir. Dalları kullanarak birbirlerindeki değişiklikleri tespit edebilirsiniz. Bir dal başlatmak için şu komutu çalıştırın:
repo start BRANCH_NAME
Aynı depoda aynı anda birden fazla bağımsız dal başlatabilirsiniz. BRANCH_NAME dalı çalışma alanınızın yerelidir ve Gerrit'te veya son kaynak ağacında yer almaz. Dallar, bulunduğunuz projeye özeldir. Bu nedenle, aynı değişiklik kapsamında farklı projelerdeki dosyaları değiştirmeniz gerekiyorsa her projede dosyaları değiştireceğiniz bir dala ihtiyacınız olacaktır.
(isteğe bağlı) Dalın oluşturulduğunu doğrulayın:
repo status .
Yeni oluşturduğunuz dalı görürsünüz. Örnek:
project frameworks/native/ branch mynewbranch
Değişikliğinizi yapma ve test etme
Değişikliğinizi yapmak ve test etmek için aşağıdaki adımları izleyin:
En güncel kod tabanıyla çalıştığınızdan emin olmak için kod tabanının tamamını senkronize edin:
repo sync
Senkronizasyon sırasında herhangi bir çakışma olursa Senkronizasyon çakışmalarını çözme sayfasının 2-4. adımlarına bakın.
Değiştirmek istediğiniz kodu bulun. Kodu bulmak için Android Code Search'ü kullanabilirsiniz. AOSP kaynak kodunu, gerçekten kullandığınızda hazırlanan şekliyle görüntülemek için Android Code Search'ü kullanabilirsiniz. Daha fazla bilgi için Code Search'ü kullanmaya başlama bölümüne bakın. Android kod aramada
main
dalındaki tüm kodu görüntülemek içinhttps://cs.android.com/android/platform/superproject/main
konumuna gidin.Kaynak dosyaları değiştirin veya ekleyin. Yapılan değişikliklerde:
- Lisans başlıklarını dahil etme bölümündeki en iyi uygulamaları takip edin.
Java kodu için Katkıda bulunanlar için AOSP Java kod stili bölümünü izleyin.
AOSP'nin bazı bölümleri Kotlin dilinde (
.kt
) yazılmıştır. Platformun Kotlin dilinde yazılmış bölümlerinde Kotlin'i kullanabilirsiniz. Android'de Kotlin hakkında daha fazla bilgi edinmek için Android geliştirici Kotlin stil kılavuzuna ve Kotlin-Java birlikte çalışma kılavuzuna göz atın. Daha kapsamlı Kotlin kılavuzu için Kotlin dili sitesine bakın.API yazarken Android API Yönergeleri'ne uyun. Android'in API kararlarının arkasındaki bağlamı görmek için bu yönergeleri kullanın. Platform API'lerine yapılan eklemeler ve değişiklikler Metalava tarafından doğrulanır.
Aşama ve değişikliğinizi uygulayın
commit, Git'teki düzeltme denetiminin temel birimidir ve tüm proje için dizin yapısının ve dosya içeriğinin anlık görüntüsünden oluşur. Değişikliğinizi uygulamak için şu adımları izleyin:
Varsayılan olarak, Git yaptığınız değişiklikleri kaydeder ancak izlemez. Git'e değişikliklerinizi izlemesini sağlamak için bu değişiklikleri bir kayda dahil edilecek şekilde işaretlemeniz veya hazırlamanız gerekir. Değişikliği gerçekleştirmek için şu komutu çalıştırın:
git add -A
Bu komut, dosyalarda yaptığınız değişiklikleri izler.
Dosyaları hazırlık alanında alıp yerel veritabanınızda kaydedin veya burada depolayın:
git commit -s
Varsayılan olarak bir metin düzenleyici açılır ve sizden bir taahhüt mesajı girmeniz istenir.
Aşağıdaki biçimde bir kayıt mesajı sağlayın:
1. satır: Başlık. Değişikliğin tek satırlık bir özetini sağlayın (maksimum 50 karakter). Değiştirdiğiniz alanı, ardından bu kaydetmede yaptığınız değişikliğin açıklamasını ön eklerle belirtebilirsiniz. Örneğin, aşağıdaki örnek kullanıcı arayüzünde değişiklik yapar:
ui: Removes deprecated widget
2. Satır: Boş satır. Başlığın ardından boş bir satır geçin.
3. Satır: Gövde. 72 karakteri aşmayan uzun bir açıklama girin. Değişimin hangi sorunları nasıl çözdüğünü açıklayın. Gövde metni isteğe bağlı olsa da, değişiklikten haberdar olması gereken başka kişiler için faydalı olacaktır. Başka bir katılımcı bu özellik üzerinde çalışırken önemli olabilecek varsayımları veya arka plan bilgilerini eklemeyi unutmayın.
İyi kayıt açıklamalarıyla ilgili bir blogu okumak için (örneklerle birlikte) Git Kaydetme Mesajı Nasıl Yazılır? bölümüne bakın.
Kaydı kaydedin.
repo init
sırasında sağlanan benzersiz bir değişiklik kimliği ile adınız ve e-posta adresiniz, taahhüt mesajınıza otomatik olarak eklenir.
Değişikliği incelenmek üzere yükleyin
Kişisel Git geçmişinize yaptığınız değişikliği Gerrit'e yükleyin:
Tüm projelerinizde tüm kaydetmelerinizi yüklemek için aşağıdaki komutu çalıştırın:
repo upload
Tüm projelerdeki tüm değişiklikler yüklemeye dahil edilir.
Kanca komut dosyalarını çalıştırmanız istenir.
a ve ardından Enter tuşuna basın.
Yüklemeyi onaylamanız istenir:
Upload project frameworks/native/ to remote branch main: branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700): ff46b36d android codelab change to https://android-review.googlesource.com/ (y/N)?
Yüklemeyi onaylamak için y ve ardından Enter tuşuna basın.
remote: SUCCESS
gibi bir mesaj alacaksınız.
İnceleme talebinde bulunun
Başarılı bir yüklemenin ardından Repo, Gerrit'teki değişikliklerinizin bağlantısını size sunar. Değişikliklerinizi inceleme sunucusunda görüntülemek, yorum eklemek veya değişikliğiniz için belirli incelemecilere istekte bulunmak üzere bağlantıyı tıklayın. Kodda yapılan tüm değişiklikler, uygun kod sahipleri tarafından incelenmelidir. İnceleme talep etmek için:
Gerrit'te SUGGEST OWNERS'ı (SAHİPLERİ ÖNER) tıklayın:
Şekil 1. Gerrit'te sahiplere bağlantı öner.
Yorumcu iletişim kutusu görünür. Bu iletişim kutusunda, değişikliğinizi inceleyebilecek kod sahiplerinin listesi yer alır.
İncelemenize eklemek istediğiniz kod sahibini tıklayın.
GÖNDER düğmesi etkin hale gelir.
(İsteğe bağlı) Değişikliğinizi incelemesini istediğiniz diğer kişilerin e-posta adreslerini yazın.
(İsteğe bağlı) Onay aldıktan sonra değişikliği otomatik olarak göndermek için Otomatik gönderme seçeneğinin yanındaki +1'i tıklayın. Bu düğmeyi tıklamazsanız bir Google çalışanının değişikliğinizi sizin adınıza göndermesi gerekir.
Değişikliği incelemeye göndermek için GÖNDER'i tıklayın.
Kod sahipleri kod değişikliklerinizi inceler ve değişiklikleri çözümlemeniz veya onaylamanız için geri bildirim sağlar.
Değişimin durumunu belirleme
Değişiklik yaptığınız dosyaların durumunu belirlemek için değişiklikteki dosyaların yanında şu simgelerin olup olmadığını kontrol edin:
- (onay işareti simgesi): Kod sahibi tarafından onaylandı
- (çapraz simge): Kod sahibi tarafından onaylanmadı
- (saat simgesi): Kod sahibinin onayı bekleniyor
Aşağıdaki şekilde, bir değişiklikteki dosyalara uygulanan bu durum simgeleri gösterilmektedir:
Şekil 2. Kod sahibinin onayını gösteren simgeler içeren dosya örneği.
Geri bildirimi çözme ve değişim amaçlı değişikliği yükleme
Bir incelemeci, güncellemenizde değişiklik isterse Git'te kaydınızı değiştirebilirsiniz. Bu durumda, aynı değişiklikte yeni bir yama kümesi oluşturulur.
Geri bildirimleri çözüme kavuşturmak ve değişikliğinizi düzeltmek için:
Değişikliğinizi yapma ve test etme bölümündeki 2-4 arası adımları uygulayın.
Yaptığınız değişikliği değiştirmek için aşağıdaki komutları çalıştırın:
git add -A git commit --amend
Değiştirilen değişikliği yüklediğinizde bu değişiklik hem Gerrit'te hem de yerel Git geçmişinizdeki orijinal değişikliğin yerini alır.
Senkronizasyon çakışmalarını giderme
Kaynak ağacına, sizinkiyle çakışan başka değişiklikler gönderilirse çakışmalarınızın olduğunu belirten bir mesaj alırsınız. Çakışmaları çözmek için:
En güncel kodla çalıştığınızdan emin olun:
repo sync .
repo sync
komutu, kaynak sunucudan güncellemeleri alır ve ardındanHEAD
öğenizi yeni uzakHEAD
sistemine otomatik olarak yeniden temel etmeye çalışır.Otomatik yeniden temel oluşturma başarısız olursa manuel yeniden temel alma işlemi gerçekleştirin:
repo rebase .
Birleştirme çakışmalarını çözün. Birleştirme çakışmalarını çözmek için tercih ettiğiniz bir yönteminiz yoksa dosyalar arasındaki çakışmaları manuel olarak düzeltmek için
git mergetool
kullanabilirsiniz.Çakışan dosyaları başarıyla düzelttiğinizde yeni kaydetmeleri uygulamak için şu komutu çalıştırın:
git rebase --continue
Değişikliği gönder
Gönderim inceleme ve doğrulama sürecinden geçtikten sonra
bir Google inceleme uzmanı kodu sizin yerinize göndermelidir. Diğer kullanıcılar, güncellemeyi kendi yerel istemcilerine almak için repo sync
komutunu çalıştırabilir.
Gönderiminiz birleştirildikten sonra gönderimlerinizin ağaca entegre edilip edilmediğini izlemek için Android Sürekli Entegrasyon kontrol panelini ziyaret edebilirsiniz.