SAHI'ye Katkıda Bulunma
July 26, 2026 · View on GitHub
SAHI'ye katkıda bulunmak istediğiniz için teşekkür ederiz! Bu kılavuz hızlıca başlamanıza yardımcı olacaktır.
Geliştirme Ortamını Kurma
1. Fork ve Klonlama
git clone https://github.com/KULLANICI_ADINIZ/sahi.git
cd sahi
2. Ortam Oluşturma
Geliştirme için Python 3.10 kullanmanızı öneririz:
pip install uv
uv venv --python 3.10
source .venv/bin/activate # Windows kullanıcıları: .venv\Scripts\activate
3. Bağımlılıkları Yükleme
# Çekirdek + geliştirme bağımlılıklarını yükleyin
uv sync --extra dev
# Belirli bir modeli test etmek isterseniz onun bağımlılıklarını da yükleyin.
Kod Formatlama
Kod formatlama ve lint kontrolleri için ruff kullanıyoruz. Kodu formatlamak için:
# Format kontrolü
uv run ruff check .
uv run ruff format --check .
# Formatı düzeltme
uv run ruff check --fix .
uv run ruff format .
Veya kolaylık sağlayan komut dosyasını kullanın:
# Format kontrolü
python scripts/format_code.py check
# Formatı düzeltme
python scripts/format_code.py fix
Testleri Çalıştırma
# Tüm testleri çalıştırın
uv run pytest
# Belirli bir test dosyasını çalıştırın
uv run pytest tests/test_predict.py
# Kapsam (coverage) raporu ile çalıştırın
uv run pytest --cov=sahi
Pull Request Gönderme
- Yeni bir dal oluşturun:
git checkout -b feature-name - Değişikliklerinizi yapın
- Kodu formatlayın:
python scripts/format_code.py fix - Testleri çalıştırın:
uv run pytest - Net bir commit mesajı yazın:
git commit -m "Add feature X" - Push yapın ve PR oluşturun:
git push origin feature-name
CI Derleme Başarısızlıkları
CI derlemesi format sorunları nedeniyle başarısız olursa:
-
CI çıktısını inceleyin ve başarısız olan Python sürümünü onaylayın
-
O sürümle bir ortam oluşturun:
uv venv --python 3.X # X yerine CI sürümünü yazın source .venv/bin/activate -
Geliştirme bağımlılıklarını yükleyin:
uv sync --extra dev -
Formatı düzeltin:
python scripts/format_code.py fix -
Değişiklikleri commit edin ve push yapın
Yeni Model Desteği Ekleme
Yeni bir tespit kütüphanesi desteği eklemek için:
sahi/models/your_framework.pyaltında yeni bir dosya oluşturunDetectionModelsınıfından türeyen bir sınıf yazınsahi/auto_model.pyiçindeMODEL_TYPE_TO_MODEL_CLASS_NAMEsözlüğüne kütüphanenizi ekleyintests/test_yourframework.pyaltına test ekleyindemo/inference_for_your_framework.ipynbaltına örnek bir notebook ekleyin- Yeni modelinizi içerecek şekilde
README.mdvedocs/altındaki ilgili dokümanları güncelleyin
Lütfen sahi/models/ultralytics.py gibi mevcut uygulamaları referans alın.
Sorunuz Var mı?
Herhangi bir sorunuz varsa, bir tartışma (discussion) başlatabilirsiniz!