Ana içeriğe geç

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

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

  1. Yeni bir dal oluşturun: git checkout -b feature-name
  2. Değişikliklerinizi yapın
  3. Kodu formatlayın: python scripts/format_code.py fix
  4. Testleri çalıştırın: uv run pytest
  5. Net bir commit mesajı yazın: git commit -m "Add feature X"
  6. 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:

  1. CI çıktısını inceleyin ve başarısız olan Python sürümünü onaylayın
  2. 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
    
  3. Geliştirme bağımlılıklarını yükleyin:

    uv sync --extra dev
    
  4. Formatı düzeltin:

    python scripts/format_code.py fix
    
  5. 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:

  1. sahi/models/your_framework.py altında yeni bir dosya oluşturun
  2. DetectionModel sınıfından türeyen bir sınıf yazın
  3. sahi/auto_model.py içinde MODEL_TYPE_TO_MODEL_CLASS_NAME sözlüğüne kütüphanenizi ekleyin
  4. tests/test_yourframework.py altına test ekleyin
  5. demo/inference_for_your_framework.ipynb altına örnek bir notebook ekleyin
  6. Yeni modelinizi içerecek şekilde README.md ve docs/ 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!