Bu, Bazel açık kaynak projesinin koruyucuları için bir kılavuzdur.
Bazel'e katkıda bulunmak istiyorsanız lütfen Bazel'e katkıda bulunma başlıklı makaleyi okuyun.
Bu sayfanın amaçları şunlardır:
- Projenin katkı süreciyle ilgili olarak, koruyucuların bilgi kaynağı işlevi görür.
- Topluluktaki katkıda bulunanlar ile projeyi sürdürenler arasında beklentileri belirleyin.
Bazel'in temel katkıda bulunanlar grubu, açık kaynak projesinin bazı yönlerini yönetmek için özel alt ekiplere sahiptir. Desteklenen biçimler şunlardır:
- Sürüm süreci: Bazel'in sürüm sürecini yönetin.
- Yeşil Ekip: Kural ve araçlardan oluşan sağlıklı bir ekosistem oluşturun.
- Geliştirici Deneyimi Bahçıvanları: Kuruluş dışından katkıları teşvik eder, sorunları ve çekme isteklerini inceler ve geliştirme iş akışımızı daha açık hale getirir.
Sürümler
Sürekli Entegrasyon
Yeşil Ekip'in, bazelbuild/continuous-integration deposundaki 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 bir sorun oluşturur ve bu sorun, incelenmemiş açık sorunlar havuzuna girer.
- Geliştirici Deneyimi (DevEx) alt ekibinin rotasyondaki bir üyesi sorunu inceler.
- Sorun bir hata veya özellik isteği değilse DevEx üyesi genellikle sorunu kapatır ve kullanıcıyı, sorunun daha fazla görünür olması için StackOverflow ve bazel-discuss'e yönlendirir.
- Sorun, topluluğun sahip olduğu kurallar depolarından birine (ör. rules_apple) aitse DevEx üyesi bu sorunu doğru depoya aktarır.
- Sorun belirsizse veya eksik bilgiler varsa DevEx üyesi, devam etmeden önce daha fazla bilgi isteğinde bulunmak için sorunu kullanıcıya geri atar. Bu durum genellikle kullanıcının doğru sorun şablonunu seçmediği veya eksik bilgi sağladığı durumlarda ortaya çıkar.
- DevEx üyesi, sorunu inceledikten sonra sorunun hemen ilgilenilmesini gerektirip gerektirmediğine karar verir. Bu durumda, P0 öncelikli etiketini ve ekip yöneticileri listesinden bir sahip atar.
- DevEx üyesi, yönlendirme için
untriaged
etiketini ve tam olarak bir ekip etiketini atar. - DevEx üyesi, sorunun türüne göre tam olarak bir
type:
etiketi (ör.type: bug
veyatype: feature request
) de atar. - DevEx üyesi, platforma özgü sorunlar için bir
platform:
etiketi atar (ör. Mac'e özgü sorunlar içinplatform:apple
). - Sorun düşük öncelikliyse ve yeni bir topluluk katılımcısı tarafından üzerinde çalışılabilirse DevEx üyesi
good first issue
etiketini 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 önceliklendirir. Alt ekip sorunu inceleyip değerlendirir ve mümkünse bir çözüm sunar. Ekip 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 PR gönderiyorsanız ekip etiketinizi atamaktan ve en iyi inceleme uzmanını bulmaktan siz sorumlu olursunuz.
- Aksi takdirde, günlük önceliklerin belirlenmesi 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 bir kullanıcıyı atayabilir.
- Atanan inceleme uzmanı, PR'yi inceler ve onaylanana veya reddedilene kadar yazarla birlikte çalışır.
- Onaylanırsa inceleme uzmanı, PR'nin taahhütlerini daha fazla test için Google'ın dahili sürüm kontrol sistemine imports. Bazel, Google'da dahili olarak kullanılan derleme sistemiyle aynı olduğundan tüm PR taahhütlerini dahili test paketine göre test etmemiz gerekir. Bu nedenle, PR'leri doğrudan birleştirmeyiz.
- İçe aktarılan taahhüt tüm dahili testleri geçerse taahhüt birleştirilir ve GitHub'a geri aktarılır.
- Birleştirme işlemi master ile birleştirildiğinde GitHub, PR'yi otomatik olarak kapatır.
Ekibim bir etikete sahip. Ne yapmalıyım?
Alt ekiplerin, kendilerine ait etiketlerdeki tüm sorunları tercihen haftalık olarak önceliklendirmesi gerekir.
Sorunlar
- Sorun listesini ekip etiketinize ve
untriaged
etiketine göre filtreleyin. - Sorunu inceleyin.
- Bir öncelik düzeyi belirleyin ve etiketi atayın.
- P0 ise sorun DevEx alt ekibi tarafından önceliklendirilmiş olabilir. Gerekirse önceliği yeniden belirleyin.
- Her sorunun tam olarak bir öncelik etiketi olmalıdır. P0 veya P1 olarak sınıflandırılan sorunlar üzerinde aktif olarak çalışıldığını varsayıyoruz.
untriaged
etiketini kaldırın.
Etiket eklemek veya kaldırmak için bazelbuild kuruluşunda olmanız gerektiğini unutmayın.
Pull İstekleri
- Alma isteklerinin listesini ekip etiketinize göre filtreleyin.
- Açık pull isteklerini inceleyin.
- İsteğe bağlı: İnceleme için atandıysanız ancak bu iş için uygun değilseniz kod incelemesi yapmak üzere uygun inceleme uzmanını yeniden atayın.
- Kod incelemesini tamamlamak için çekme isteği oluşturucuyla birlikte çalışın.
- PR'yi onaylayın.
- Tüm testlerin geçtiğinden emin olun.
- Yamayı dahili sürüm kontrol sistemine aktarın ve dahili ön gönderimleri çalıştırın.
- Dahili yamayı gönderin. Yama gönderilir ve başarıyla dışa aktarılırsa PR, GitHub tarafından otomatik olarak kapatılır.
Öncelik
Öncelikle ilgili aşağıdaki tanımlar, sorunları önceliklendirmek için bakım ekibi tarafından kullanılır.
- P0: Bazel sürümünün (sürüm adayları hariç) kullanılamamasına neden olan veya Bazel projesinin geliştirilmesini ciddi şekilde etkileyen önemli bir işlevsellik hatası ya da hizmet kesintisi. Buna, yeni bir sürümde önemli sayıda kullanıcıyı engelleyen gerilemeler veya önemli değişiklik politikasına uygun olmayan uyumsuz önemli değişiklikler dahildir. Bu sorunun pratik bir çözümü yoktur.
- P1: Sonraki sürümde ele alınması gereken kritik bir kusur veya özellik ya da birçok kullanıcıyı etkileyen ciddi bir sorun (Bazel projesinin geliştirilmesi dahil) ancak pratik bir geçici çözüm mevcut. Genellikle acil işlem gerektirmez. Yüksek talep görüyor ve mevcut çeyreğin yol haritasında planlanıyor.
- P2: Çözüme kavuşturulması gereken ancak şu anda üzerinde çalışmadığımız bir kusur veya özellik. Yayınlanan bir Bazel sürümünde, kullanıcı için sakıncalı olan ve gelecekteki bir sürümde ele alınması gereken ve/veya kolay bir geçici çözümü olan orta düzeyde canlı sorun.
- P3: Küçük bir etkisi olan, istenilen küçük bir hata düzeltmesi veya iyileştirme. Bazel yol haritalarında veya yakın zamanda yayınlanacak bir sürümde öncelikli değildir ancak topluluk katkıları teşvik edilir.
- P4: Düşük öncelikli ve kapatılması olası olmayan bir kusur veya özellik isteği. Daha fazla kullanıcı etkilenirse olası bir yeniden önceliklendirme için açık tutulabilir.
- buz kutusu
- Şu anda ele alacağımız veya katkıları kabul edeceğimiz zamanımız olmayan sorunlar. Bu sorunları, üzerinde kimsenin çalışmadığını belirtmek için kapatırız ancak zaman içinde geçerliliklerini izlemeye devam ederiz. Yeterli sayıda kullanıcı etkilenirse ve bu sorunları ele alacak kaynaklara sahip olursak sorunları yeniden etkinleştiririz. Her zaman olduğu gibi, kapatılmış olsa bile bu sorunlara yorum ekleyebilir veya tepki verebilirsiniz.
Takım etiketleri
team-Android
: Android ekibi için sorunlar- İletişim: ahumesky
team-Bazel
: Genel Bazel ürün/strateji sorunları- İletişim: meisterT
team-CLI
: Konsolda kullanıcı arayüzü- İletişim: meisterT
team-Configurability
: Yapılandırılabilirlik ekibiyle ilgili sorunlar. Dahil olanlar: Temel derleme yapılandırması ve geçiş sistemi. Şunları içermez: Yeni veya mevcut işaretlerde yapılan değişiklikler- İletişim: gregestren
team-Core
: Skyframe, bazel sorgusu, BEP, seçenek ayrıştırma, bazelrc- İletişim: haxorz
team-Documentation
: Dokümanlar ekibi için 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: labels, package(), visibility, glob- İletişim: brandjon
team-Local-Exec
: Uygulama (Yerel) Ekibi ile ilgili sorunlar- İletişim: meisterT
team-OSS
: Bazel açık kaynak ekibiyle ilgili sorunlar: yükleme, sürüm oluşturma süreci, Bazel paketleme, web sitesi, doküman altyapısı- İletişim: meteorcloudy
team-Performance
: Bazel Performans Ekibi için sorunlar- İletişim: meisterT
team-Remote-Exec
: Yürütme (Uzaktan) ekibiyle ilgili sorunlar- İletişim: coeuvre
team-Rules-API
: Kural/yön açısı yazmak için API: sağlayıcılar, çalıştırma dosyaları, işlemler, yapı taşları- İletişim: comius
team-Rules-CPP
/team-Rules-ObjC
: Yerel Apple kural mantığı da dahil olmak üzere C++/Objective-C kurallarıyla ilgili sorunlar- İletişim: buildbreaker2021
team-Rules-Java
: Java kurallarıyla ilgili sorunlar- İletişim: hvadehra
team-Rules-Python
: Yerleşik Python kurallarıyla ilgili sorunlar- İletişim: rickeylev
team-Rules-Server
: Bazel'e dahil edilen sunucu tarafı kurallarla ilgili sorunlar- İletişim: comius
team-Starlark-Integration
: API dışı Bazel + Starlark entegrasyonu. Şunları içerir: Bazel'in Starlark yorumlayıcısını tetikleme şekli, Stardoc, yerleşik kod ekleme, karakter kodlaması. Şunları içermez: BUILD veya .bzl dil sorunları.- İletişim: brandjon
team-Starlark-Interpreter
: Starlark yorumlayıcısı ile ilgili sorunlar (java.net.starlark içindeki her şey). BUILD ve .bzl API sorunları (Bazel'in Starlark ile entegrasyonunu temsil eder)team-Build-Language
alanına gönderilir.- İletişim: brandjon
Yeni sorunlar için category: *
etiketlerinin desteği sonlandırıldı ve ekip etiketleri kullanılmaya başlandı.
Etiketlerin tam listesini burada bulabilirsiniz.