# Cara berkontribusi pada 🤗 LeRobot

Semua orang dipersilakan untuk berkontribusi, dan kami menghargai kontribusi setiap orang. Kode bukanlah satu-satunya cara untuk membantu komunitas. Menjawab pertanyaan, membantu orang lain, menjalin kontak, dan meningkatkan dokumentasi sangat bernilai.

Bagaimana pun cara Anda memilih untuk berkontribusi, harap perhatikan untuk menghormati [kode etik](https://github.com/huggingface/lerobot/blob/main/CODE_OF_CONDUCT.md) dan [kebijakan AI](https://github.com/huggingface/lerobot/blob/main/AI_POLICY.md) kami.

## Cara Berkontribusi

Anda dapat berkontribusi dengan berbagai cara:

- **Memperbaiki masalah:** Menyelesaikan bug atau meningkatkan kode yang sudah ada.
- **Fitur baru:** Kembangkan fitur baru.
- **Perluas:** Implementasikan model/kebijakan, robot, atau lingkungan simulasi baru dan unggah dataset ke Hugging Face Hub.
- **Dokumentasi:** Perbaiki contoh, panduan, dan docstring.
- **Masukan:** Kirim tiket terkait bug atau fitur baru yang diinginkan.

**Menambahkan perangkat keras baru?** Robot, teleoperator, dan kamera biasanya paling baik berfungsi sebagai paket plugin mandiri daripada perubahan pada pustaka inti. Ikuti [Bring Your Own Hardware](https://huggingface.co/docs/lerobot/integrate_hardware#using-your-own-lerobot-devices-), terbitkan paket Anda, lalu buka PR untuk menambahkannya ke [Third-Party Robots & Teleoperators](https://huggingface.co/docs/lerobot/third_party_robots) atau [Third-Party Cameras & Sensors](https://huggingface.co/docs/lerobot/third_party_sensors).

Jika Anda belum yakin harus mulai dari mana, bergabunglah dengan [Kanal Discord](https://discord.gg/s3KuuzsPFb) kami.

## Pengaturan Pengembangan

Untuk berkontribusi kode, Anda perlu menyiapkan lingkungan pengembangan.

### 1. Fork dan Clone

Fork repositori di GitHub, lalu clone fork Anda:

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

### 2. Instalasi Lingkungan

Silakan ikuti [Panduan Instalasi](https://huggingface.co/docs/lerobot/installation) kami untuk pengaturan lingkungan & instalasi dari sumber.

## Menjalankan Tes & Pengecekan Kualitas

### Gaya Kode (Pre-commit)

Instal hook `pre-commit` untuk menjalankan pemeriksaan secara otomatis sebelum Anda melakukan commit:

```bash
pre-commit install
```

Untuk menjalankan pemeriksaan secara manual pada semua file:

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

### Docstring

Referensi API dibuat dari docstring di `src/lerobot/`. Jika Anda menambahkan atau mengubah sesuatu yang bersifat publik, ikuti [standar docstring](https://huggingface.co/docs/lerobot/writing_docstrings) — formatnya diparsing oleh renderer dan diperiksa di CI.

### Menjalankan Tes

Kami menggunakan `pytest`. Pertama, pastikan Anda memiliki artefak pengujian dengan menginstal **git-lfs**:

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

Jalankan seluruh suite (hal ini mungkin memerlukan instalasi extras):

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

Atau jalankan file tes tertentu selama pengembangan:

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

CI Fast Tests menjalankan satu tier per extra (`base`, `dataset`, `hardware`, `viz`) dan memilih tes dari masing-masing tier dengan pytest mark. Jika tes Anda memerlukan extra `dataset`, `hardware` atau `viz`, beri tanda (`pytestmark = pytest.mark.dataset` untuk seluruh file, `@pytest.mark.dataset` untuk satu tes). Tes tanpa tanda hanya dijalankan di tier `base`, di mana tes yang memerlukan extra akan dilewati. Untuk menjalankan satu tier secara lokal:

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

CI Uji GPU hanya menjalankan uji yang ditandai `gpu`. Setiap uji di bawah `tests/policies` dan setiap uji `@require_cuda` mendapatkannya secara otomatis; tandai uji lain yang menggunakan CUDA dengan `@pytest.mark.gpu`.

## Mengirimkan Masalah & Permintaan Tarikan

Gunakan template untuk bidang wajib dan contoh.

- **Isu:** Ikuti [template tiket](https://github.com/huggingface/lerobot/blob/main/.github/ISSUE_TEMPLATE/bug-report.yml).
- **Pull request:** Rebase pada `upstream/main`, gunakan branch yang deskriptif (jangan bekerja di `main`), jalankan `pre-commit` dan tes secara lokal, serta ikuti [template PR](https://github.com/huggingface/lerobot/blob/main/.github/PULL_REQUEST_TEMPLATE.md).

> [!IMPORTANT]
> Kebijakan Ulasan Komunitas: Untuk membantu memperluas upaya kami dan menumbuhkan lingkungan kolaboratif, kami meminta kontributor untuk meninjau setidaknya satu PR terbuka milik orang lain sebelum PR mereka sendiri mendapat perhatian. Tanggung jawab bersama ini melipatgandakan kapasitas peninjauan kami dan membantu kode semua orang digabungkan lebih cepat!

Setelah Anda mengirim PR dan menyelesaikan peer review, anggota tim LeRobot akan meninjau kontribusi Anda.

Terima kasih telah berkontribusi pada LeRobot!

