This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

Katkıda Bulunma

Katkıda bulunmakla ilgilendiğiniz için teşekkürler. Bu kılavuz nasıl katılabileceğinizi, neleri kabul ettiğimizi ve nasıl başlayacağınızı anlatır.

Katkı yolları

Issue'lar (kurulum gerekmez)

  • Hata bildirimleri - Bir şey mi bozuk? Yeniden üretme adımlarıyla birlikte bir hata bildirimi açın.
  • Özellik istekleri - Bir fikriniz mi var? Topluluğun görüş bildirebilmesi ve oy verebilmesi için bir tartışma başlatın.
  • Çeviri sorunları - Yanlış veya eksik bir çeviri mi gördünüz? Bir çeviri issue'su açın.
  • Dokümantasyon sorunları - Dokümanlarda bir aksaklık mı var? Bir dokümantasyon issue'su açın.

Kod (CLA gerektirir)

Şu türde pull request'leri kabul ediyoruz:

TürSüreç
Hata düzeltmeleriDoğrudan bir PR açın (varsa ilgili issue'ya bağlayın)
Yeni çevirilerDoğrudan bir PR açın (Çeviri Kılavuzu bölümüne bakın)
Dokümantasyon iyileştirmeleriDoğrudan bir PR açın
Test kapsamı iyileştirmeleriDoğrudan bir PR açın
Yeni araçlar veya özelliklerÖnce bir tartışma başlatın; bir bakımcı, onaylanan fikirleri siz kod yazmadan önce izlenen bir issue'ya dönüştürür
Refactor veya mimari değişikliklerÖnce bir tartışma başlatın ve kod yazmadan önce bir bakımcının onayını bekleyin

Kabul etmeyeceklerimiz

  • CI/CD iş akışlarında, sürüm yapılandırmasında ya da linter/derleyici yapılandırmasında değişiklikler
  • İmzalanmış bir Katkıda Bulunan Lisans Anlaşması olmayan PR'ler
  • 400 satırdan fazla değişiklik içeren PR'ler (büyük çalışmaları daha küçük PR'lere bölün)
  • Önceden tartışılıp onaylanmamış özellikler
  • Önceden tartışmadan packages/ai/ dosyasında yapılan değişiklikler

Katkıda Bulunan Lisans Anlaşması

İlk PR'inizi birleştirebilmemizden önce Bireysel CLA anlaşmamızı imzalamanız gerekir. Bu tek seferlik bir gerekliliktir.

Neden: SnapOtter çift lisanslıdır (AGPLv3 + ticari). CLA, katkılarınızı her iki lisans altında dağıtma hakkını bize verir. Çalışmanızın tüm telif hakkı sahipliğini korursunuz.

Nasıl: İlk PR'inizi açtığınızda, CLA Assistant botu bir bağlantı içeren bir yorum bırakır. Bağlantıya tıklayın, anlaşmayı inceleyin ve GitHub hesabınızla imzalayın. 30 saniye sürer.

İşvereniniz adına katkıda bulunuyorsanız ve işvereniniz çalışmanız üzerindeki fikri mülkiyet haklarını elinde tutuyorsa, göndermeden önce bir Kurumsal CLA düzenlemek için [email protected] adresine yazın.

Başlarken

Ön koşullar

  • Node.js 22+
  • pnpm 9+
  • Python 3.11+ (yalnızca AI araçları için)
  • Docker (isteğe bağlı, tam entegrasyon testi için)

Kurulum

bash
# Fork and clone
git clone https://github.com/<your-username>/snapotter.git
cd snapotter

# Start Postgres + Redis for local dev
docker compose -f docker-compose.dev.yml up -d

# Install dependencies
pnpm install

# Start dev servers (web on :1349, API on :13490)
pnpm dev

Kontrolleri çalıştırma

Bir PR göndermeden önce, tüm kontrollerin yerelde geçtiğinden emin olun:

bash
pnpm lint          # Biome lint + format check
pnpm typecheck     # TypeScript across monorepo
pnpm test          # Vitest unit + integration tests

Pull request süreci

  1. Repo'yu fork'layın ve main üzerinden bir dal oluşturun (feat/my-feature veya fix/issue-123)
  2. Değişikliklerinizi conventional commits kullanarak odaklı, incelenebilir commit'lerde yapın
  3. Değişiklikleriniz için testler ekleyin ya da güncelleyin
  4. pnpm lint && pnpm typecheck && pnpm test komutunu yerelde çalıştırın
  5. main üzerine bir PR açın ve şablonu doldurun
  6. İstenirse CLA'yı imzalayın
  7. CI'nin geçmesini ve bir bakımcının incelemesini bekleyin

İnceleme beklentileri

  • PR'lere 7 gün içinde yanıt vermeyi hedefliyoruz
  • Küçük, odaklı PR'ler daha hızlı incelenir
  • 7 gün içinde bir yanıt almadıysanız, konu başlığına bir yorum bırakıp bildirin
  • Değişiklik isteyebilir, farklı bir yaklaşım önerebilir ya da PR projenin yönüyle uyumlu değilse kapatabiliriz

PR'iniz birleştirildikten sonra

Katkınız bir sonraki sürüme dahil edilir ve değişiklik günlüğünde size atıfta bulunulur.

İyi ilk issue'lar

Üzerinde çalışacak bir şey mi arıyorsunuz? Yeni başlayanlar için uygun görevler için good first issues listesine, ya da topluluk yardımından memnun olacağımız daha büyük işler için help wanted listesine göz atın.

Kod stili

  • Biome biçimlendirme ve lint işini yürütür (çift tırnak, noktalı virgül, 2 boşluk girinti)
  • Commit öncesi hook, staged dosyalarda biome check --write komutunu otomatik olarak çalıştırır
  • Linter şikayet ederse, kodu düzeltin (Biome yapılandırmasını değiştirmeyin)
  • Her yerde ES modülleri (import/export)
  • Conventional commit'ler: feat:, fix:, refactor:, docs:, test:, chore:

Tam mimari ayrıntıları için Geliştirici Kılavuzu bölümüne bakın.

Güvenlik

Güvenlik açıkları için herkese açık bir PR ya da issue açmayın. Bunları GitHub Security Advisories üzerinden ya da [email protected] adresine e-posta yoluyla özel olarak bildirin. Tüm ayrıntılar için SECURITY.md dosyasına bakın.

Sorularınız mı var?