Bu kılavuz, Bazel açık kaynak projesinin bakımcıları içindir.
Bazel'e katkıda bulunmak istiyorsanız bunun yerine Contributing to Bazel (Bazel'e Katkıda Bulunma) başlıklı makaleyi okuyun.
Bu sayfanın amaçları şunlardır:
- Projenin katkı süreciyle ilgili olarak bakımcıların doğru kaynak olarak kullanacağı yerdir.
- Topluluk katkıda bulunanları ile proje bakımcıları arasında beklentileri belirleyin.
Bazel'in çekirdek katkıda bulunanlar grubu, açık kaynak projenin çeşitli yönlerini yönetmek için özel alt ekiplere sahiptir. Desteklenen biçimler şunlardır:
- Yayın Süreci: Bazel'in yayın sürecini yönetin.
- Yeşil Ekip: Bazel CI'nın durumunu izler ve kesintileri bildirir.
- Geliştirici Deneyimi Bahçıvanları: Harici katkıları teşvik etme, sorunları ve çekme isteklerini inceleme ve geliştirme iş akışımızı daha açık hale getirme.
Sürümler
Sürekli Entegrasyon
bazelbuild/continuous-integration deposunda Green Team'in Bazel'in CI altyapısıyla ilgili kılavuzunu okuyun.
Sorunların yaşam döngüsü
- Kullanıcı, sorun şablonlarından birini seçerek sorun oluşturur ve bu sorun, incelenmemiş açık sorunlar havuzuna girer.
- Geliştirici Deneyimi (DevEx) alt ekibinin rotasyonundaki bir üye sorunu inceler.
- Sorun hata veya özellik isteği değilse DevEx üyesi genellikle sorunu kapatır ve kullanıcının sorunun daha görünür olması için StackOverflow ve bazel-discuss'a yönlendirir.
- Sorun, topluluğa ait rules_apple gibi bir kurallar deposuna aitse DevEx üyesi bu sorunu doğru depoya aktarır.
- Sorun belirsizse veya eksik bilgi varsa DevEx üyesi, devam etmeden önce daha fazla bilgi istemek için sorunu kullanıcıya geri atar. Bu durum genellikle kullanıcının doğru sorun şablonunu seçmemesi veya eksik bilgi sağlaması nedeniyle ortaya çıkar. {: .external}
- DevEx üyesi, sorunu inceledikten sonra hemen ilgilenilmesi gerekip gerekmediğine karar verir. Bu durumda, ekip liderleri listesinden bir sahip ve P0 öncelik etiketi atanır.
- DevEx üyesi, yönlendirme için
untriagedetiketini ve tam olarak bir ekip etiketini atar. - DevEx üyesi, sorunun türüne göre tam olarak bir
type:etiketi (ör.type: bugveyatype: feature request) de atar. - Platforma özgü sorunlar için DevEx üyesi bir
platform:etiketi atar. Örneğin, Mac'e özgü sorunlar içinplatform:appleetiketi atanır. - Sorun düşük öncelikli ve yeni bir topluluk katkıda bulunanı tarafından çözülebilecekse DevEx üyesi
good first issueetiketini atar. Bu aşamada sorun, önceliklendirilmemiş açık sorunlar havuzuna girer.
Her Bazel alt ekibi, sahip oldukları etiketler altındaki tüm sorunları tercihen haftalık olarak önceliklendirecektir. Alt ekip, sorunu inceleyip değerlendirecek ve mümkünse çözüm sunacak. Bir takım etiketi sahibiyseniz daha fazla bilgi için bu bölüme bakın.
Çözülen sorunlar kapatılabilir.
Pull isteğinin yaşam döngüsü
- Kullanıcı bir çekme isteği oluşturur.
- Bir Bazel ekibinin üyesiyseniz ve kendi alanınızla ilgili bir çekme isteği gönderiyorsanız ekibinizin etiketini atamaktan ve en iyi incelemeciyi bulmaktan siz sorumlusunuz.
- Aksi takdirde, günlük önceliklendirme sırasında bir DevEx üyesi, yönlendirme için bir ekip etiketi ve ekibin teknik yöneticisini (TL) atar.
- TL, isteğe bağlı olarak PR'yi incelemesi için başka birini atayabilir.
- Atanan incelemeci, PR'yi inceler ve onaylanana veya bırakılana kadar yazarla birlikte çalışır.
- Onaylanırsa incelemeci, daha fazla test için PR'nin commit'lerini Google'ın dahili sürüm kontrol sistemine aktarır. Bazel, Google'da dahili olarak kullanılan derleme sistemiyle aynı olduğundan tüm çekme isteği işlemelerini dahili test paketiyle karşılaştırarak test etmemiz gerekir. Bu nedenle, PR'ler doğrudan birleştirilmez.
- İçe aktarılan commit tüm dahili testleri geçerse commit birleştirilir ve GitHub'a geri aktarılır.
- Commit ana dala birleştirildiğinde GitHub, çekme isteğini otomatik olarak kapatır.
Ekibim bir plak şirketine sahip. Ne yapmalıyım?
Alt ekipler, sahip oldukları etiketlerdeki tüm sorunları tercihen haftalık olarak önceliklendirmelidir.
Sorunlar
- Sorun listesini ekip etiketiniz ve
untriagedetiketine göre filtreleyin. - Sorunu inceleyin.
- Öncelik düzeyini belirleyin ve etiketi atayın.
- Sorun P0 ise DevEx alt ekibi tarafından önceliklendirilmiş olabilir. Gerekirse yeniden önceliklendirin.
- Her sorunda tam olarak bir öncelik etiketi olmalıdır. P0 veya P1 önceliğinde olan sorunların üzerinde aktif olarak çalışıldığını varsayarız.
untriagedetiketini kaldırın.
Etiket ekleyip kaldırabilmek için bazelbuild organization kuruluşunda olmanız gerektiğini unutmayın.
Pull İstekleri
Çekme istekleri (PR'ler), harici katkıda bulunanların Bazel'e değer katmasının temel yoludur. Açık kaynaklı bir proje olarak, çekme isteklerinin zamanında ve verimli bir şekilde incelenip ele alınmasını sağlamak önemlidir.
Öncelik belirleme
awaiting-reviewetiketi ve ekip etiketinizle gelen PR'leri düzenli olarak inceleyin. Bu işlem, rotasyon veya düzenli bir önceliklendirme toplantısıyla yapılabilir. Her PR'ye 7 iş günü içinde ilk yanıtın verilmesini bekliyoruz.Yanıt
- PR iyi görünüyorsa onaylayın ve
awaiting-PR-mergeetiketini uygulayın. gTech ekibi, PR'yi CL olarak içe aktarır. - Aksi takdirde geri bildiriminizi gönderin ve
awaiting-reviewetiketiniawaiting-user-responseetiketiyle değiştirin. PR yazarı yanıt verirse DevEx alt ekibi etiketi düzenli olarak günceller. - Büyük değişiklikler içeren PR'ler için tasarım belgesi veya sorunda önceden yapılan tartışma isteyebilirsiniz.
- PR iyi görünüyorsa onaylayın ve
Kapanış
Kaynaklar sınırlı olduğundan Bazel'in standartlarını karşılamayan veya inceleme ya da bakımını yapma kapasitemizin olmadığı çekme isteklerini kapatmamız önemlidir.
- ÇPR, Bazel'in hedefleriyle uyumlu değilse bunu bir açıklama yaparak kapatın.
- PR çok büyük ve karmaşıksa daha küçük parçalara ayırma isteğiyle kapatın.
- PR kodu kalitesi standartlarımızı karşılamıyorsa kodu bir açıklama ile kapatın.
- Kodun gelecekteki bakım maliyeti çok yüksekse kodu bir açıklama ile kapatın.
- PR uzun süredir kullanıcı yanıtı bekliyorsa ve katkıda bulunan kullanıcı yanıt vermediyse PR 30 gün sonra otomatik olarak eski olarak işaretlenir ve 30 gün sonra kapatılır.
Bir çekme isteğini kapatırken nazik olun ve kapatma nedenini açıklayın.
Öncelik
Öncelik için aşağıdaki tanımlar, sorunları önceliklendirmek üzere bakımcılar tarafından kullanılır.
- P0: Bazel sürümünün (yayın adayları hariç) kullanılamamasına neden olan büyük bir işlev bozukluğu veya Bazel projesinin geliştirilmesini ciddi şekilde etkileyen bir hizmet kesintisi. Yeni bir sürümde kullanıma sunulan ve önemli sayıda kullanıcının erişimini engelleyen gerilemeler veya Breaking Change (Kapsamlı Değişiklik) politikasına uygun olmayan, uyumsuz bir kapsamlı değişiklik bu kapsamdadır. Pratik bir geçici çözüm bulunmamaktadır.
- P1: Bir sonraki sürümde ele alınması gereken kritik bir kusur veya özellik ya da Bazel projesinin geliştirilmesi de dahil olmak üzere birçok kullanıcıyı etkileyen ciddi bir sorun ancak pratik bir geçici çözüm mevcut. Genellikle acil işlem yapılması gerekmez. Yüksek talep görüyor ve mevcut çeyreğin yol haritasında planlanıyor.
- P2: Ele alınması gereken ancak şu anda üzerinde çalışmadığımız kusur veya özellik. Yayınlanmış bir Bazel sürümünde, gelecekteki bir sürümde düzeltilmesi gereken ve/veya kolay bir geçici çözümü olan, kullanıcı için rahatsız edici bir canlı sorun.
- P3: Küçük bir hata düzeltmesi veya küçük bir etkiye sahip iyileştirme isteniyor. Bazel yol haritalarında veya yakın zamanda yayınlanacak sürümlerde öncelik verilmez ancak topluluk katkıları teşvik edilir.
- P4: Kapatılma olasılığı düşük olan, düşük öncelikli kusur veya özellik isteği. Daha fazla kullanıcı etkilenirse olası bir yeniden önceliklendirme için de açık tutulabilir.
Ekip etiketleri
team-Android: Android ekibiyle ilgili sorunlar- İletişim: ahumesky
team-Bazel: Genel Bazel ürünü/strateji sorunları- İletişim: meisterT
team-CLI: Console kullanıcı arayüzü- İletişim: meisterT
team-Configurability: Yapılandırılabilirlik ekibiyle ilgili sorunlar. İçerir: Temel derleme yapılandırması ve geçiş sistemi. Şunları içermez: Yeni veya mevcut işaretlerdeki değişiklikler- İletişim: gregestren
team-Core: Skyframe, bazel query, BEP, options parsing, bazelrc- İletişim: haxorz
team-Documentation: Doküman ekibiyle ilgili sorunlarteam-ExternalDeps: Harici bağımlılık işleme, Bzlmod, uzak depolar, WORKSPACE dosyası- İletişim: meteorcloudy
team-Loading-API: BUILD dosyası ve makro işleme: etiketler, package(), görünürlük, glob- İletişim: brandjon
team-Local-Exec: Uygulama (Yerel) ekibinin sorunları- İletişim: meisterT
team-OSS: Bazel OSS ekibiyle ilgili sorunlar: yükleme, yayın süreci, Bazel paketleme, web sitesi, doküman altyapısı- İletişim: meteorcloudy
team-Performance: Bazel Performans Ekibi ile ilgili sorunlar- İletişim: meisterT
team-Remote-Exec: Execution (Remote) ekibinin sorunları- İletişim: coeuvre
team-Rules-API: Kurallar/yönler yazmaya yönelik API: sağlayıcılar, runfile'lar, işlemler, yapılar- İletişim: pzembrod
team-Rules-CPP/team-Rules-ObjC: Yerel Apple kural mantığı da dahil olmak üzere C++/Objective-C kurallarıyla ilgili sorunlar- İletişim: pzembrod
team-Rules-Java: Java kurallarıyla ilgili sorunlar- İletişim: hvadehra
team-Rules-Python: Yerel Python kurallarıyla ilgili sorunlar- İletişim: rickeylev
team-Rules-Server: Bazel'e dahil edilen sunucu tarafı kurallarıyla ilgili sorunlar- İletişim: pzembrod
team-Starlark-Integration: API dışı Bazel + Starlark entegrasyonu. Bazel'in Starlark yorumlayıcısını nasıl tetiklediği, Stardoc, yerleşik işlevlerin eklenmesi ve karakter kodlaması gibi konuları içerir. BUILD veya .bzl dil sorunlarını içermez.- İletişim: brandjon
team-Starlark-Interpreter: Starlark yorumlayıcısıyla ilgili sorunlar (java.net.starlark içindeki her şey). BUILD ve .bzl API sorunları (Bazel'in Starlark ile entegrasyonunu temsil eder)team-Build-Languagebölümüne gider.- İletişim: brandjon
Yeni sorunlar için ekip etiketleri yerine category: * etiketlerinin desteğini sonlandırdık.
Etiketlerin tam listesini burada görebilirsiniz.