4 puan yazan GN⁺ 2025-05-14 | 1 yorum | WhatsApp'ta paylaş
  • Firefox kısa süre önce ana deposunu Mercurial'dan GitHub'a taşıdı
  • Hata takibi için Bugzilla, kod inceleme için Phabricator ve CI için Taskcluster kullanılmaya devam ediyor
  • Şu anda GitHub merkezi depo olsa da Mercurial sunucusu GitHub'dan senkronize edilerek korunuyor ve mevcut otomasyon sistemlerinin de kademeli olarak Git'e geçirilmesi planlanıyor
  • CI testleri için kullanılan 'try' deposu hâlâ Mercurial tabanlı, ancak giderek bir soyutlama katmanının arkasına gizleniyor ve ileride Git'e taşınması bekleniyor
  • Git'in varsayılan olarak kullanılabilmesi sayesinde yeni katkı sağlayanların Mercurial'ı ayrıca öğrenmesine gerek kalmadan yalnızca Git bilmesi yeterli olacak
    • Önceden git cinnabar adlı bir eklentinin kurulması gerekiyordu, ancak artık yalnızca temel Git kullanmak yeterli
  • Mercurial'daki mozilla-central, Git'te main dalı olarak değiştirildi ve autoland dalı Git'te de aynı şekilde autoland olarak kaldı
  • GitHub'ın PR tabanlı iş akışı şu anda devreye alınmadı ve bu değişikliğe dahil değil. Gelecekte ihtimal dışı değil, ancak resmî bir plan bulunmuyor
  • Mozilla, GitHub'a geçişle birlikte kendi VCS altyapısını işletme yükünü azaltabilecek
  • Ana hedef, büyük ölçekli projelerin gerektirdiği performans, kararlılık ve erişilebilirliği şirket içinde sağlamanın maliyetini ve karmaşıklığını azaltmak

git-cinnabarın yazarı Glandium'dan ayrıntılı geçmiş ve açıklama: How I (kind of) killed Mercurial at Mozilla

Mozilla, Firefox kod deposunu GitHub'a geçirerek Mercurial dönemini kapatıyor

  • Mozilla, Firefox geliştirmesindeki merkezi VCS'yi Mercurial'dan Git'e geçirip GitHub'ı resmî depo olarak benimsemeye karar verdi
  • Bu kararın temelinde, git-cinnabar adlı genişletme aracının uzun süreli geliştirilmesi ve yaygınlaşması vardı; bu sayede Git kullanıcıları da Mercurial depolarına sorunsuz biçimde erişebildi
  • Mercurial'ın dal yapısıyla ilgili sorunlar, deponun büyümesi ve kendi sunucularını işletme yükü gibi etkenler birleşerek kurum içi altyapıyı sürdürmenin zorluklarını biriktirdi
  • GitHub seçimi tartışma yaratsa da, Mozilla içinde binlerce deponun zaten GitHub'da bulunması gibi nedenlerle katkı sağlayanlar açısından kolaylık ve pratiklik bakımından kaçınılmaz bir seçimdi
  • git-cinnabar, Mozilla içindeki ihtiyaçlardan doğan kişisel bir yan projeydi, ancak geçiş döneminde de önemli bir araç olarak varlığını sürdürmesi muhtemel görünüyor

“Ateşi ben başlatmadım ama o ateşe benzin döktüğüm doğru.”

1 yorum

 
GN⁺ 2025-05-14
Hacker News görüşleri
  • Mozilla'da çalışıyorum ama VCS araçları ya da bu geçişin içinde yer almadım; sadece ek bağlam sağlamak istiyorum. Firefox kodunun resmî deposu yakın zamanda hg.mozilla.org üzerindeki Mercurial'dan GitHub'a taşındı. Bu yalnızca kodu etkiliyor; issue takibi hâlâ Bugzilla'da, kod inceleme ve land etme Phabricator'da, CI ise Taskcluster sisteminde kullanılmaya devam ediyor. Kısa vadede Mercurial sunucusu GitHub'dan senkronize ediliyor; böylece otomasyon sistemleri yavaş yavaş git arka ucuna geçebiliyor. Mercurial hâlâ “try” deposu için kullanılıyor (WIP yamalarda CI çalıştırılan yer), ancak giderek bir soyutlama katmanının arkasına gizleniyor ve bunun da daha sonra taşınması planlanıyor. Eski depoya alışkın olanlar için “mozilla-central”, git'in standart dal adı olan “main”e; “autoland” ise “autoland” dalına eşleniyor. Aslında daha önce de yalnızca git ile Firefox'a katkı vermek mümkündü, ancak git cinnabar adlı bir eklenti kurmak gerekiyordu. hg öğrenmekle git+eklenti kullanmak arasında seçim yapmak, yeni katkı verenler için bir giriş engeliydi; çoğu kişi git biliyor ama Mercurial bilmiyordu. Artık bunu düşünmeye gerek yok. git cinnabarın yazarı glandium, geçiş duyurusu sırasında ayrıntılı bağlamı ve gerekçeyi blogunda yazdı. Kısa vadede katkı verenler açısından neredeyse hiçbir şey değişmiyor. Normal git kullanımı varsayılan iş akışı hâline geldi; bunun dışında değişen bir şey yok. İleride GitHub PR tabanlı iş akışı desteği gelebilir, ancak bu değişikliğe dahil değil. Arka planda ise geçiş tamamlandığında Mozilla'nın kendi VCS altyapısını işletmek için harcadığı zaman ve emek azalabilir; böyle büyük bir projenin ihtiyaç duyduğu performans ve erişilebilirliği sağlamak ciddi bir zorluk
    • Kişisel olarak Mozilla'nın Microsoft'a ait kapalı bir platforma taşınma kararının doğru olmadığını düşünüyorum
    • Phabricator artık geliştirilmediğine göre, yerine bir planları olup olmadığını merak ediyorum; Phorge gibi bir seçeneği değerlendirip değerlendirmediklerini sormak isterim
    • Ek bağlam için teşekkürler. Kendi barındırılan çözümde karşılaşılan temel ölçek sorunlarının neler olduğunu merak ediyorum
    • GeckoView ve Mozilla Android Components da GitHub'a taşınacak mı diye sormak isterim
    • Yalnızca kodun GitHub'a taşınıp issue takibinin Bugzilla'da kalmasına üzülüyorum. GitHub kullanmanın ana avantajlarından biri, pek çok kullanıcının zaten bir hesabının olması ve platforma aşina olması; ama issue'lar yalnızca Bugzilla'da kabul edildiği için hata bildirmek de ayrıca bir engel yaratıyor. Bugzilla ve Firefox üzerinden macOS erişilebilirlik hatası bildirmiştim; siteyi bulmak, kayıt olmak ve sistemi öğrenmek gerektiğinden epey zahmetliydi. Sonunda hata doğrulandı ama düzeltilmedi
  • Mozilla'nın stratejik bakış açısından anlaşılabilir bir karar gibi görünüyor. Google'dan gelen gelir azalırsa ve personel sayısını düşürmeleri gerekirse, Firefox geliştirmeyi sürdürmek için topluluktan daha fazla katılım gerekecek ve GitHub en bilinen geliştirici platformu olduğu için giriş eşiği düşüyor. GitHub yerine GitLab vb. kullanmamalarından rahatsız olanlar olabilir, ancak Firefox geliştirmesinin sürmesi ve piyasada rekabet eden bir motorun bulunması herkesin yararına
    • GitHub'ı kullanamadığı için katkı vermekten vazgeçen insanların çoğunu özellikle değerli katkıcılar olarak görmüyorum. İstisnalar olabilir ama doğrudan yer aldığım, önemsiz olmayan açık kaynak projelerinde buna rastlamadım. Hatta giriş eşiğinin biraz daha yüksek olmasının, düşük kaliteli tek seferlik katkıları elemek gibi olumlu bir etkisi olduğunu düşünüyorum
    • gh ve Phabricator kombinasyonunu anlayamadığım için Firefox'a yama gönderme fikrinden tamamen vazgeçtim. İkisinin nasıl entegre olduğunu anlayamadım; branch/PR nasıl güncellenir onu da çözemedim ve sonunda denemeyi bıraktım
    • GitLab'la ilgili kişisel deneyimime göre, birkaç yıl önce GitLab büyük açık kaynak projelerini barındırmaya pek istekli olmadığını açıkça göstermişti ve FOSS için destek ancak açık kaynak programı üzerinden sağlanabiliyordu. Bu süreç karmaşıktı ve ek gereksinimleri de vardı; Mozilla'nın bunu kabul etmesi zor olurdu. Örneğin GitLab kullanmak için ilgili açık kaynak projesinin GitLab FOSS sürümünü değiştirme/çatallama hakkından vazgeçmesi gerekiyordu; bu da her proje için ciddi bir sorun. Belki bir avukat rutin bir madde eklediği için böyle oldu ama bu bile tek başına büyük bir problem olduğunu gösteriyor. Bu yüzden GitLab eleniyor. Geriye Codeberg vb. kalıyor ama yeni katkıcıların giriş eşiğini düşürmek için çoğunun zaten kayıtlı olduğu GitHub uygun
    • GitHub'a geçiş teknik bir değişiklik olsa da, asıl çekirdek değişim Mercurial'dan git'e geçiş; sosyal değerlendirmelerin teknik kararı etkilemiş olduğunu tahmin ediyorum
    • Giriş eşiğini aşamayan kişilerin hata bile bildirmemesi, kod düzeltmesi yapmasının da zaten söz konusu olmaması gerektiğini düşünüyorum
  • Firefox'a katkı vermedeki önemli bir teknik borcun çözülmüş olmasını seviyorum. Birkaç yıl önce denediğimde Mercurial depoyu klonlamak saatler sürüyordu ve resmî git desteği olmadığından düzgün çalışmak için gayriresmî git desteğini kullanmak gerekiyordu. O dönemde belgeler de berbattı; gereksiz yere her şeyi yeniden derletiyordu
  • Neden mevcut mozilla org'u yerine mozilla-firefox org'unun seçildiğini merak ediyorum
    • Muhtemelen erişim kuralları farklıydı ya da mevcut org'dan ayırarak otomasyonun başka yerlere etki etmesini önlemek istediler
    • Bence gerçekten çok iyi bir soru
  • “Firefox Moves to GitHub” ifadesinin kaynağının ne olduğunu merak ediyorum. Yalnızca bir mirror da olabilir. Linux'un da GitHub'da bir mirror'u var. (Daha sonra düzenleme: kaynak eklendi)
    • Ben de aynısını düşündüm. Nitekim GitHub'da tanımlanmış iş akışları aslında yalnızca PR'ları standart bir yanıtla kapatıyor
  • Firefox Mobile (Fenix) eskiden GitHub kullanıyordu, sonra yakın zamanda Mozilla'nın Mercurial mozilla-central deposuna taşınmıştı; şimdi ise hem masaüstü hem mobil sürüm GitHub'da ve issue'lar Bugzilla'da kalıyor. Böylece GitHub'ın iyi arama, kaynak tarama ve git'e aşinalık avantajlarından yararlanılabiliyor. Eski bir Firefox ve Thunderbird katkıcısı olarak, mozilla-central sitesinde aramaktan çok daha fazla yerelde arama yapıyordum. Geliştirme sırasında IDE içinde arıyorsunuz ama sitede kolay arama olması yeni katkıcılar için memnuniyet verici bir şey
    • Tersine, bence searchfox şimdiye kadar kullandığım en iyi kod gezinme aracı. Diller arası gezinme, sürekli açık blame gibi pek çok özelliği var ve GitHub'dan çok daha hızlı ve hafif. Böyle araçların daha fazla projede kullanılabilmesini isterdim; ortadan kalkarsa yazık olur
    • Son dönemde GitHub'ın kaynak tarama kalitesinin ciddi biçimde düştüğünü hissediyorum. Eşzamansız yükleme (JS gerektiriyor), ağ kararsızsa bozulma, sayfa içi aramanın bile çalışmaması gibi sorunlar var. Son issue/PR yenilemelerinin de geriye gidiş olduğunu düşünüyorum; uBlock Origin kullanınca PR araması yapılamıyor
  • Bunun iyi bir değişiklik olduğunu düşünüyorum ama neden mevcut github.com/mozilla org'u yerine yeni bir org oluşturulduğunu merak ediyorum
    • Ayrıntılı nedeni bilmiyorum ama bazı şeylerin org bazında ayrılması gerekiyor; örneğin SSO yalnızca org genelinde uygulanabildiğinden Firefox deposu, Mozilla'nın ana depolarından tamamen farklı bir kimlik doğrulama/kullanıcı düzenine sahip olabilir
    • Mozilla'nın birden fazla org'u var
    • Muhtemelen Conway Yasası yüzündendir
    • GitHub'da yalnızca org veya repo seviyesi var; onun üstünde bir seviye yok. Pek çok ayar (SSO, erişim izinleri, ortak ayarlar vb.) org bazında uygulandığından, yeni bir org açmak genelde temiz çözüm oluyor ama rahatsız edici yanları da var (GitLab olsaydı tek bir instance ya da org içinde Firefox ve diğer şeyler için namespace'ler oluşturulabilirdi)
  • Mozilla gibi bir kuruluşun GitHub gibi harici barındırma kullanması bana garip geliyor. Küçük tek kişilik projeler için anlıyorum ama katkı verenleri harici bir hizmet hesabı açmaya zorlamak pek dostça değil
    • Bir açık kaynak projesi için bunun olumlu olduğunu düşünüyorum; herkese açık, katkı vermesi kolay ve görünürlüğü yüksek bir ortam sağlıyor
  • Hatırladığım kadarıyla “master” branch'i mozilla-central idi. Şimdi “main” ve “autoland” var; bunların ne olduğunu ve eski mozilla-central ile eşdeğer branch'in hangisi olduğunu merak ediyorum
    • Firefox geliştiricisi değilim ama “main” mozilla-central ile aynı; “autoland” ise eskiden de yanında duran, commit'lerin önce düştüğü branch
  • Bugzilla'nın en azından salt okunur olarak kalmasını umuyorum. Web, yıllar içinde “ad-hoc” biçimde birikmiş bir platform olduğu için geçmişteki birçok gerekçe yalnızca Bugzilla'da duruyor. Ortadan kalkmış sitelerin ya da tarayıcıların neden belirli davranışlar gösterdiğini bazen sadece oradan anlayabiliyorsunuz
    • Bugzilla hâlâ Firefox'un hata takip sistemi. Bunu değiştirme planı yok. (GitHub issue'ları kullanılmıyor)
    • Bugzilla harikaydı; zamanının ötesinde bir üründü. Hâlâ benzer seviyede, kendi barındırılan bir hata takip sistemi olmadığını düşünüyorum