Search K
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ür | Süreç |
|---|---|
| Hata düzeltmeleri | Doğrudan bir PR açın (varsa ilgili issue'ya bağlayın) |
| Yeni çeviriler | Doğrudan bir PR açın (Çeviri Kılavuzu bölümüne bakın) |
| Dokümantasyon iyileştirmeleri | Doğrudan bir PR açın |
| Test kapsamı iyileştirmeleri | Doğ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 devKontrolleri ç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 testsPull request süreci
- Repo'yu fork'layın ve
mainüzerinden bir dal oluşturun (feat/my-featureveyafix/issue-123) - Değişikliklerinizi conventional commits kullanarak odaklı, incelenebilir commit'lerde yapın
- Değişiklikleriniz için testler ekleyin ya da güncelleyin
pnpm lint && pnpm typecheck && pnpm testkomutunu yerelde çalıştırınmainüzerine bir PR açın ve şablonu doldurun- İstenirse CLA'yı imzalayın
- 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 --writekomutunu 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.
