2017-07-03 125 views
7

Şu anda her Firefox bileşeni için number of bugs : lines of code oranını bulmak için Bugzilla'yı analiz etmeye çalışıyorum. Ancak, Bugzilla ile daha önce hiç çalışmadım ve Firefox'un kod tabanı hakkında hiçbir bilgim yok.Firefox kaynak kodu analizi; bileşen başına kod satırı

Firefox bileşeni başına kod satırlarını nasıl bulabilirim (Comp header altında Bugzilla'da göründüğü gibi)? mozilla central'u incelemek için girişimde bulundum, ancak hangi kaynak dosyaların hangi bileşenlerle ilişkili olduğunu bilmiyoruz.

DÜZENLEME: Dexter mozilla-merkez ağacında bir BUG_COMPONENT yönergesi olduğuna işaret etti, ancak bu yönerge çok eksik görünüyor ve yardımcı değil. Bu tavsiyeyi alabileceğim diğer tavsiyeler veya işaretçiler çok takdir edilecektir.

cevap

5

Harika soru! Yakın zamanda, BUG_COMPONENT yönergesini Firefox koduna ekledik (meta bug): kaynaktaki her dizinde bulunan moz.build dosyasında. Bu yönerge, depodaki her dosyanın ilgili Bugzilla bileşenine bağlanmasına izin verir.

Örneğin, aşağıdaki yönerge here bulundu testi/tarayıcı tüm dosyalar Bugzilla'nın üzerinde Toolkit :: Telemetri bileşenine ait Telemetri sözcüğünü içeren söyler.

with Files("test/browser/*Telemetry*"): 
    BUG_COMPONENT = ("Toolkit", "Telemetry") 

hızlıca Firefox depo aramak için DXR veya searchfox birini kullanabilirsiniz.

Yorumlardaki soruları yanıtlamak için cevabı güncelledik. açıklamalarda belirtildiği gibi

, bazı bileşenler Bugzilla'ya (örn Activity Stream) üzerinde izlenir ancak mozilla-central depo içinde kaynak dosyalara doğrudan eşleme yok (bir Firefox inşa edilmiştir). Bunun nedeni, bazı yeni bileşenlerin "the trains" (~ 6 haftalık geliştirme döngüsü) sürmemeleri, ancak daha sık güncellendikleri ve eklenti olarak dağıtılmalarıdır.

Bu bileşenlerin kodu genellikle diğer proje ile birlikte Mozilla github account altında yaşıyor. Oldukça fazla sayıda proje olduğundan, ilginizi çekebileceklerinizi belirlemenin bir yolu onları JavaScript ones ile sınırlandırmaktır. Bu son bağlantıyı izlerseniz, test pilotu ve Etkinlik Akışı (artı diğer eklentiler) için deposu göreceksiniz.

Ben Bugzilla bileşenlerine GitHub projelerini maç için tek yol GitHub üzerinde depo adına bakıp Bugzilla'daki eşleştirme bileşeni bulmaktır korkuyorum: Bazı bileşen önerileri almak üzere adı here yazabilirsiniz.

  1. JS GitHub projesinin bir listesini alın: Eğer fantezi almak istiyorsanız, ayrıca Bugzilla REST API kaldıraç olabilir.
  2. Projenin adını ayıklayın.
  3. component suggestion ürününü almak için REST API'yi kullanın.sonra almak için DİNLENME API kullanmak, kaynak dosyalarından BUG_COMPONENT kazımak yollara onları map:

ben şahsen sadece çoğunlukla açıklamalı olarak, bir başlangıç ​​noktası olarak mozilla-merkez depo ele alacak böcek listesi.

Sidenote: İndirme Paneli ana repo correctly annotated gibi görünüyor.

+0

Mükemmel, tam olarak aradığım şey. Çok teşekkürler! –

+1

Bazı Firefox bileşenlerinin (örneğin, Etkinlik Akışları, İndirilenler Paneli, Uzantı Uyumluluğu, vb.) Endekslenmediğini fark ettim. Bunun için bir neden var mı, yoksa BUG_COMPONENT yönergesi henüz tamamlanmadı mı? Sorgu: https://dxr.mozilla.org/mozilla-central/search?q=BUG_COMPONENT+%3D+(%22Firefox%22%2C+%22Extensio&redirect=false –

+0

Bahsedilen bazı şeyler ana mozilla deposu dışında yaşıyor. kendi Github deposunda saklanır, örneğin Aktivite Akışı şu an yaşıyor (https://github.com/mozilla/activity-stream) – Dexter