MemoDokümantasyon
TR

Katkıda Bulunma Rehberi

Memo'ya katkıda bulunmak istediğiniz için teşekkür ederiz. Bu rehber, etkili bir şekilde katılım göstermeniz için yol haritası sunar.

Katkı Türleri

Hata Raporları

GitHub Issues üzerinde bir konu açın. Şunları ekleyin:

  • Memo sürümü (memo --version)
  • İşletim sistemi ve mimari
  • Yeniden oluşturma adımları
  • Beklenen ve gerçekleşen davranış
  • Memo'nun çalıştığı terminalden günlükler

Özellik İstekleri

Özellik fikirleri için GitHub Discussions kullanın. Şunları açıklayın:

  • Özelliğin çözdüğü problem
  • Nasıl çalışmasını beklediğiniz
  • Mevcut iş akışlarını etkileyip etkilemediği

Kod Katkıları

  1. Depoyu forklayın
  2. Bir özellik dalı oluşturun: git checkout -b feat/ozelligim
  3. Aşağıdaki geliştirme standartlarına uyarak değişikliklerinizi yapın
  4. Tam test paketini çalıştırın (Test Protokolüne bakın)
  5. main dalına bir pull request gönderin

Geliştirme Standartları

Gizlilik Öncelikli

Memo yerel-öncelikli bir uygulamadır. Tüm katkılar buna saygı göstermelidir:

  • Telemetri veya analitik kodu yok
  • Kullanıcı tarafından açıkça istenenler (API sağlayıcıları, bulut senkronizasyonu, web araması) dışında ağ çağrısı yok
  • Kullanıcı verileri, açık kullanıcı eylemi ve şifreleme olmadan makineden asla ayrılmamalıdır

Performans

  • Backend: HTTP işleyici goroutine'lerini engellemekten kaçının. Uzun işlemler için arka plan çalışanları kullanın.
  • Ön yüz: Mesaj başına AnimationController örneğinden kaçının. Widget yeniden derlemelerini en aza indirin.
  • Bellek: Mümkünse akış kullanın, tüm veri kümelerini RAM'e yüklemekten kaçının.

Dokümantasyon

Kullanıcıya dönük her özellik şunları gerektirir:

  • Sürüm notlarında bir bölüm (versionNoteEN.md ve versionNoteTR.md)
  • Yeni yapılandırma anahtarları eklenirse yapılandırma referansında güncelleme
  • Özellik basit değilse doküman sayfası

Test

  • Backend testleri go test -race kullanır — her test, yarış dedektörü altında geçmelidir
  • Eşzamanlılık yolları özel test kapsamına sahip olmalıdır
  • Ön yüz testleri Flutter'ın flutter_test paketini kullanır
  • CI'dan geçmeyen hiçbir PR kabul edilmez

Katkı İçin Kilit Alanlar

Alan İhtiyaç Duyulan
Ajan Arayüzü Araç yürütmenin zengin görselleştirmesi, ilerleme göstergeleri
Testler Backend test kapsamı, entegrasyon testleri, eşzamanlılık testleri
Çok adımlı planlama Şef modelin planlama ve görev ayrıştırma yeteneğinin iyileştirilmesi
Dosya düzenleme aracı Daha akıllı diff tabanlı düzenleme, çakışma çözümü
Git araçları Kabuk komutlarının ötesinde yerel git entegrasyonu

Felsefe

Memo şu ilkeler üzerine inşa edilmiştir (öncelik sırasına göre):

  1. Doğruluk — özellikler başarısızlık durumları dahil tüm durumlarda doğru çalışır
  2. Gizlilik — tüm veriler kullanıcının kontrolündedir; hiçbir şey rıza olmadan hiçbir yere gönderilmez
  3. Performans — büyük bellek depolarında bile anında hissettirecek kadar hızlı
  4. Basitlik — anlaşılır kod, mümkünse standart kütüphane, aşırı mühendislik yok

Pull Request Kontrol Listesi

  • go test ./... -race geçiyor
  • go build ./... başarılı
  • flutter analyze lib/ geçiyor (Flutter'a dokunulduysa)
  • Kodda TODO veya FIXME yorumu kalmadı
  • Yeni yapılandırma anahtarları belgelendi
  • Sürüm notları güncellendi
  • Sabit kodlanmış gizli anahtar veya şifre yok