LeRobot documentation
Как внести вклад в 🤗 LeRobot
Как внести вклад в 🤗 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.git2. Установка окружения
Пожалуйста, следуйте нашему Руководству по установке для настройки окружения и установки из исходного кода.
Запуск тестов и проверок качества
Стиль кода (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