SAHI'ye Katkıda Bulunma¶
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¶
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:
-
Geliştirme bağımlılıklarını yükleyin:
-
Formatı düzeltin:
-
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!