LeRobot documentation

Как внести вклад в 🤗 LeRobot

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Как внести вклад в 🤗 LeRobot

Каждый может внести свой вклад, и мы ценим вклад каждого. Код — не единственный способ помочь сообществу. Ответы на вопросы, помощь другим, установление контактов и улучшение документации имеют огромную ценность.

Каким бы способом вы ни решили внести свой вклад, пожалуйста, соблюдайте наш код поведения и нашу политику в области ИИ.

Способы внести вклад

Вы можете внести свой вклад множеством способов:

  • Исправление проблем: устранение ошибок или улучшение существующего кода.
  • Новые функции: Разработка новых функций.
  • Расширение: реализуйте новые модели/политики, роботов или среды симуляции и загрузите наборы данных в Hugging Face Hub.
  • Документация: улучшение примеров, руководств и docstrings.
  • Обратная связь: отправляйте заявки, связанные с ошибками или желаемыми новыми функциями.

Добавление нового оборудования? Роботы, телеоператоры и камеры обычно лучше всего работают как отдельный плагин, а не как изменение основной библиотеки. Следуйте инструкции Bring Your Own Hardware, опубликуйте свой пакет, затем создайте PR с добавлением его в раздел Third-Party Robots & Teleoperators или Third-Party Cameras & Sensors.

Если вы не знаете, с чего начать, присоединяйтесь к нашему Discord Channel.

Настройка среды разработки

Чтобы внести свой вклад в код, вам необходимо настроить среду разработки.

1. Сделайте форк и клонируйте

Сделайте форк репозитория на GitHub, затем клонируйте свой форк:

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

2. Установка окружения

Пожалуйста, следуйте нашему Руководству по установке для настройки окружения и установки из исходного кода.

Запуск тестов и проверок качества

Стиль кода (Pre-commit)

Установите хуки pre-commit, чтобы автоматически запускать проверки перед коммитом:

pre-commit install

Чтобы вручную выполнить проверки для всех файлов:

pre-commit run --all-files

Строки документации

Справочник API генерируется из docstrings в src/lerobot/. Если вы добавляете или изменяете что-либо публичное, следуйте стандарту docstring — формат парсится рендерером и проверяется в CI.

Запуск тестов

Мы используем pytest. Сначала убедитесь, что у вас есть тестовые артефакты, установив git-lfs:

git lfs install
git lfs pull

Запустите полный набор тестов (для этого может потребоваться установка дополнительных пакетов):

pytest -sv ./tests

Или запустите конкретный файл тестов во время разработки:

pytest -sv tests/test_specific_feature.py

CI Fast Tests выполняет один уровень для каждого extra (base, dataset, hardware, viz) и выбирает тесты каждого уровня с помощью pytest mark. Если вашему тесту нужен extra dataset, hardware или viz, отметьте его (pytestmark = pytest.mark.dataset для всего файла, @pytest.mark.dataset для одного теста). Тесты без отметки выполняются только в уровне base, где тест, требующий extra, пропускается. Чтобы запустить один уровень локально:

pytest -sv tests -m dataset

CI-тесты GPU запускают только тесты, отмеченные gpu. Каждый тест в tests/policies и каждый тест @require_cuda получает эту метку автоматически; пометьте любой другой тест, использующий CUDA, как @pytest.mark.gpu.

Отправка проблем и запросов на слияние

Используйте шаблоны для обязательных полей и примеров.

  • Проблемы: следуйте шаблону тикета.
  • Запросы на слияние: выполните rebase на upstream/main, используйте описательное имя ветки (не работайте в main), запустите pre-commit и тесты локально, а также следуйте шаблону PR.

Политика рецензирования сообщества: чтобы масштабировать наши усилия и создать атмосферу сотрудничества, мы просим участников рецензировать как минимум один открытый PR другого человека до того, как их собственный PR получит внимание. Эта общая ответственность многократно увеличивает нашу пропускную способность по рецензированию и помогает быстрее объединять код всех!

После того как вы отправите PR и завершите рецензирование, член команды LeRobot рассмотрит ваш вклад.

Спасибо за вклад в LeRobot!

Update on GitHub