# 🤗 LeRobot'a nasıl katkıda bulunulur

Herkesin katkıda bulunmaya davetli olduğunu ve herkesin katkısını değerli bulduğunu belirtmek isteriz. Kod, topluluğa yardım etmenin tek yolu değildir. Soruları yanıtlamak, başkalarına yardımcı olmak, iletişim kurmak ve dokümantasyonu geliştirmek son derece değerlidir.

Hangi yolu seçerseniz seçin, lütfen [davranış kurallarımıza](https://github.com/huggingface/lerobot/blob/main/CODE_OF_CONDUCT.md) ve [Yapay Zeka politikamıza](https://github.com/huggingface/lerobot/blob/main/AI_POLICY.md) saygı göstermeye özen gösterin.

## Katkıda Bulunma Yolları

Birçok farklı şekilde katkıda bulunabilirsiniz:

- **Sorunları çözme:** Hataları giderin veya mevcut kodu iyileştirin.
- **Yeni özellikler:** Yeni özellikler geliştirin.
- **Genişlet:** Yeni modeller/politikler, robotlar veya simülasyon ortamları uygulayın ve veri setlerini Hugging Face Hub'a yükleyin.
- **Belgeler:** Örnekleri, kılavuzları ve docstring'leri iyileştirin.
- **Geri bildirim:** Hatalara veya istenen yeni özelliklere ilişkin biletler gönderin.

**Yeni donanım ekleniyor mu?** Robotlar, teleoperatörler ve kameralar genellikle çekirdek kütüphanede bir değişiklik olarak değil, bağımsız bir eklenti paketi olarak en iyi şekilde çalışır. [Kendi Donanımınızı Getirin](https://huggingface.co/docs/lerobot/integrate_hardware#using-your-own-lerobot-devices-) dokümanını izleyin, paketinizi yayınlayın, ardından onu [Üçüncü Taraf Robotlar & Teleoperatörler](https://huggingface.co/docs/lerobot/third_party_robots) veya [Üçüncü Taraf Kameralar & Sensörler](https://huggingface.co/docs/lerobot/third_party_sensors) bölümüne ekleyen bir PR açın.

Nereden başlayacağınızdan emin değilseniz, [Discord Kanalımıza](https://discord.gg/s3KuuzsPFb) katılın.

## Geliştirme Kurulumu

Katkıda bulunmak için bir geliştirme ortamı kurmanız gerekir.

### 1. Çatalını Oluştur ve Klonla

Depoyu GitHub'da çatal (fork) olarak oluşturun, ardından çatalınızı klonlayın:

```bash
git clone https://github.com/<your-handle>/lerobot.git
cd lerobot
git remote add upstream https://github.com/huggingface/lerobot.git
```

### 2. Ortam Kurulumu

Ortam kurulumu ve kaynak kodundan kurulum için lütfen [Kurulum Kılavuzumuza](https://huggingface.co/docs/lerobot/installation) göz atın.

## Testler ve Kalite Kontrollerini Çalıştırma

### Kod Stili (Pre-commit)

Yapacağınız her commit öncesinde kontrolleri otomatik olarak çalıştırmak için `pre-commit` kancalarını kurun:

```bash
pre-commit install
```

Tüm dosyalar üzerinde kontrolleri manuel olarak çalıştırmak için:

```bash
pre-commit run --all-files
```

### Docstring'ler

API referansı `src/lerobot/` içindeki docstring'lerden üretilir. Herhangi bir halka açık öğe ekler veya değiştirirseniz [docstring standardını](https://huggingface.co/docs/lerobot/writing_docstrings) takip edin — format, render tarafından ayrıştırılır ve CI'da kontrol edilir.

### Testleri Çalıştırma

**git-lfs** kurarak test artefaktlerine sahip olduğunuzdan emin olun. `pytest` kullanıyoruz.

```bash
git lfs install
git lfs pull
```

Tüm test paketini çalıştırın (bu, ek paketlerin yüklü olmasını gerektirebilir):

```bash
pytest -sv ./tests
```

Veya geliştirme sırasında belirli bir test dosyasını çalıştırın:

```bash
pytest -sv tests/test_specific_feature.py
```

Fast Tests CI, her ek paket için (`base`, `dataset`, `hardware`, `viz`) bir katman çalıştırır ve her katmandaki testleri bir pytest işaretiyle seçer. Testiniz `dataset`, `hardware` veya `viz` ek paketini gerektiriyorsa, ona bir işaret ekleyin (bütün dosya için `pytestmark = pytest.mark.dataset`, tek bir test için `@pytest.mark.dataset`). İşaretlenmemiş testler yalnızca `base` katmanında çalışır; bu katmanda bir ek paket gerektiren test atlanır. Tek bir katmanı yerel olarak çalıştırmak için:

```bash
pytest -sv tests -m dataset
```

GPU Tests CI yalnızca `gpu` olarak işaretlenmiş testleri çalıştırır. `tests/policies` altındaki her test ve her `@require_cuda` testi bunu otomatik olarak alır; CUDA kullanan diğer herhangi bir testi `@pytest.mark.gpu` ile işaretleyin.

## Sorun ve Çekme İstekleri Gönderme

Zorunlu alanlar ve örnekler için şablonları kullanın.

- **Sorunlar:** [bilet şablonunu](https://github.com/huggingface/lerobot/blob/main/.github/ISSUE_TEMPLATE/bug-report.yml) takip edin.
- **Pull request'ler:** `upstream/main` üzerine rebase yapın, açıklayıcı bir dal kullanın (`main` üzerinde çalışmayın), `pre-commit` ve testleri yerelde çalıştırın ve [PR şablonunu](https://github.com/huggingface/lerobot/blob/main/.github/PULL_REQUEST_TEMPLATE.md) takip edin.

> [!IMPORTANT]
> Topluluk İnceleme Politikası: Çabalarımızı ölçeklendirmek ve iş birliğine dayalı bir ortam oluşturmak için, katkıda bulunanlardan kendi açık PR'leri dikkate alınmadan önce en az bir başka kişinin açık PR'ini incelemelerini rica ediyoruz. Bu ortak sorumluluk, inceleme kapasitemizi katlayarak herkesin kodunun daha hızlı birleştirilmesine yardımcı olur!

PR'nizi gönderip akran incelemesini tamamladıktan sonra, LeRobot ekibinden bir üye katkınızı inceleyecektir.

LeRobot'a katkıda bulunduğunuz için teşekkürler!

