2 puan yazan GN⁺ 2024-08-21 | 1 yorum | WhatsApp'ta paylaş
  • 2019 ortasında iş ararken Google Goteam ile Sourcegraph arasında seçim yapması gerekmişti
  • Sourcegraph'ı seçmesinin nedeni, her şeyi açık şekilde inşa edebilen bir kültüre sahip olmasıydı
  • Tüm belgeler varsayılan olarak açıktı; teknik ve ürün RFC'leri, PR/FAQ belgeleri vb. herkese açık Google Drive klasörlerinde tutuluyordu
  • Tüm ürün geliştirmeleri herkese açık GitHub depolarında yapılıyordu
  • Şu anda sourcegraph/sourcegraph deposu gizliye alınmış durumda
  • Bu, Sourcegraph'ın çekici kültürünü yıkan bir karardı
  • Sourcegraph, sourcegraph/sourcegraph-public-snapshot adlı herkese açık bir anlık görüntü bırakmış durumda

Referansları korumak

  • Sourcegraph'ta çalıştığı süre boyunca mühendislik bloguna çok sayıda yazı yazmıştı
  • Bu yazıların çoğu, ilgili açık koda giden bağlantıları referans olarak kullanıyordu
  • Artık bu bağlantıların hepsi kırılmış durumda
  • "Havalı URI'ler değişmez" diye bir söz vardır
  • Bağlantılar bir anda kırılmasın diye olabildiğince fazla bilgiyi korumaya çalışıyor
  • sourcegraph/sourcegraph deposunu efritz/sourcegraph olarak fork'ladı
  • Fork'lar pull request'leri devralmaz ve doğrudan branch'lerde referans verilmeyen commit'ler görünmez
  • GitHub belgelerine göre, herkese açık bir depo gizliye alınsa bile fork'lar varlığını sürdürür
  • Ancak asıl depo gizliye alındığında, main branch'i dışındaki commit'ler kaybolabilir

İlgili commit'leri kazıma

  • Tüm commit'leri bulmak için bir Go programı çalıştırdı
  • Bu program 2.645 adet pull request metadata dosyası üretti
  • jq kullanarak JSON payload'unu okuyup verileri çıkardı
  • pr_ids.txt, commits.txt, replace_pairs.txt dosyalarını oluşturdu
  • Ardından her pull request için merge edilmemiş commit'leri listeleyen ikinci bir program çalıştırdı
  • Bu program commits.txt dosyasına commit'ler ekledi

Commit'leri yeni depo ağına taşıma

  • Her ilgili SHA'yı içeren branch'ler oluşturarak bunları fork'a taşıdı
  • Git işlemlerini sırayla yürütmek için bir Bash betiği kullandı

Referansları yeniden yazma

  • Artık her referansı fork içindeki hedefe bağlayabiliyor
  • xargs kullanarak otomatik bir süreç kurdu
  • Doğrudan commit referanslarını fork'a, pull request referanslarını ise merge commit'lerine yeniden yazdı

GN⁺ Özeti

  • Sourcegraph'ın gizliye alınması açık kaynak kültürü üzerinde büyük etki yarattı
  • Mühendislik blogundaki çok sayıda referans bağlantısı kırıldı ve bunları korumak için ciddi çaba gerekti
  • GitHub fork'ları ve betikler kullanılarak referanslar yeniden yazıldı ve commit'ler korundu
  • Bu yazı, açık kaynak projelerinin sürdürülebilirliğini ve referans bağlantılarının önemini vurguluyor

1 yorum

 
GN⁺ 2024-08-21
Hacker News görüşleri
  • Sourcegraph CEO’sunun görüşü:

    • İç kod tabanını gizliye çevirme nedeni odaklanmak
    • Açık kaynak ve herkese açık kalmanın çok fazla ek iş ve risk yarattığı
    • Müşteriler için harika bir kod arama/zekâ ürünü oluşturmaya odaklanmaları gerektiği
    • Geliştiriciler ve OSS topluluğu için hâlâ birçok şey yaptıkları
      • Popüler bir herkese açık kod arama hizmeti sundukları
      • Çok sayıda açık kaynak kodun bakımını yaptıkları
    • Kodlarını açıp açmama konusunda düşünen diğer kuruculara danışmanlık verebileceği
  • Başka bir kullanıcının görüşü:

    • Sourcegraph’ın geliştirici kültürünü iyi anlayan bir şirket olarak görüldüğü, ancak son değişikliklerin üzücü olduğu
    • Herkese açık bir yol haritası bulmaya çalıştığı, ancak belgelerin çoğunun gizliye çevrildiği
    • Önceden herkese açık olan el kitabının Notion’a taşındığı ve önemli bölümlerin çoğunun gizli Google dokümanlarına bağlandığı
  • Bir başka kullanıcının görüşü:

    • Son dönemde Sourcegraph’ın herkese açık arama indeksinin ortadan kaybolduğu
    • GitHub’ın arama özelliği iyileştirilmeden önce Sourcegraph’ı çok kullandığı
    • Artık GitLab depolarının ve birçok GitHub deposunun indeksten kaybolduğu
    • Güvenilmez arama işlevi nedeniyle GitHub’a dönmek zorunda kaldığı
  • Başka bir kullanıcının görüşü:

    • Açık kaynak sürümünü fork edip telemetriyi kaldırdığı, güncellemeleri devre dışı bıraktığı, özel mülk kodu çıkardığı, Docker imajı oluşturduğu ve hafif bir Oauth2 kimlik doğrulaması uyguladığı
    • Uzun süre Oauth2-Proxy arkasında çalıştırmayı planladığı
    • Çok güvenilir bir yazılım olduğu
  • Bir başka kullanıcının görüşü:

    • macOS tersine mühendislik çalışmalarında Sourcegraph’ı çok kullandığı
    • Sourcegraph araması sayesinde birçok projenin var olduğunu
    • Bundan sonra arama işlevinin ortadan kalkmamasını umduğu
  • Bir başka kullanıcının görüşü:

    • Tüm geliştirme çalışmalarını gizli hâle getirmenin tuhaf ve şaşırtıcı olduğu
    • Sadece lisans kısıtlamalarıyla bile iş hedeflerine ulaşılabilecekken neden gizliye geçildiğini sorguladığı
  • Başka bir kullanıcının görüşü:

    • Sourcegraph’ı çok kullandığı, ancak gerçekten ödeme yapan kişi sayısının ne kadar olduğunu merak ettiği
    • Açık kaynak bir şirket işletmenin zor olduğu
    • Şirket olgunlaştıkça ücretsiz sunulamayacak şeyler olduğunu anlamaya başladığı
  • Başka bir kullanıcının görüşü:

    • Software Heritage projesinin Sourcegraph depolarının çoğunu arşivlediği
    • Son taramanın 2024 Temmuz ortasında yapıldığı
  • Bir başka kullanıcının görüşü:

    • Sourcegraph’ın artık açık kaynak olmamasına dair önceki bir olaya değindiği
  • Başka bir kullanıcının görüşü:

    • Sourcegraph’tan çok alıntı yaptığı ve onu önerdiği, ancak fiilen hiç ödeme yapmadığı
    • Açık kaynaktan vazgeçme nedenini merak ettiği, ama bunun şaşırtıcı olmadığı