LeRobot documentation
Cómo contribuir a 🤗 LeRobot
Cómo contribuir a 🤗 LeRobot
Todos son bienvenidos a contribuir, y valoramos la contribución de cada persona. El código no es la única forma de ayudar a la comunidad. Responder preguntas, ayudar a otros, establecer contacto y mejorar la documentación son de inmenso valor.
Sea cual sea la forma en que decidas contribuir, ten en cuenta la importancia de respetar nuestro código de conducta y nuestra política de IA.
Formas de contribuir
Puedes contribuir de muchas formas:
- Corrección de problemas: Soluciona errores o mejora el código existente.
- Nuevas funciones: Desarrolla nuevas funciones.
- Extender: Implementar nuevos modelos/políticas, robots o entornos de simulación y subir conjuntos de datos al Hugging Face Hub.
- Documentación: Mejorar ejemplos, guías y docstrings.
- Comentarios: Envía tickets relacionados con errores o nuevas funciones deseadas.
¿Añadiendo nuevo hardware? Los robots, teleoperadores y cámaras suelen funcionar mejor como un paquete de plugin independiente que como un cambio en la biblioteca principal. Sigue Bring Your Own Hardware, publica tu paquete y luego abre un PR para añadirlo a Third-Party Robots & Teleoperators o Third-Party Cameras & Sensors.
Si no sabes por dónde empezar, únete a nuestro canal de Discord.
Configuración de desarrollo
Para contribuir con código, necesitas configurar un entorno de desarrollo.
1. Hacer un fork y clonar
Haz una bifurcación del repositorio en GitHub y luego clona tu bifurcación:
git clone https://github.com/<your-handle>/lerobot.git
cd lerobot
git remote add upstream https://github.com/huggingface/lerobot.git2. Instalación del entorno
Siga nuestra Guía de instalación para la configuración del entorno y la instalación desde el código fuente.
Ejecución de pruebas y controles de calidad
Estilo de código (Pre-commit)
Instala los hooks de pre-commit para ejecutar comprobaciones automáticamente antes de que hagas un commit:
pre-commit install
Para ejecutar comprobaciones manualmente en todos los archivos:
pre-commit run --all-files
Docstrings
La referencia de la API se genera a partir de las docstrings en src/lerobot/. Si agregas o modificas algo público, sigue el estándar de docstring: el formato se analiza con el renderer y se verifica en CI.
Ejecutar pruebas
Usamos pytest. Primero, asegúrate de tener los artefactos de prueba instalando git-lfs:
git lfs install git lfs pull
Ejecuta la suite completa (esto puede requerir la instalación de extras):
pytest -sv ./tests
O ejecuta un archivo de prueba específico durante el desarrollo:
pytest -sv tests/test_specific_feature.py
La CI de pruebas rápidas ejecuta un nivel por cada extra (base, dataset, hardware, viz) y selecciona las pruebas de cada nivel con una marca de pytest. Si tu prueba necesita el extra dataset, hardware o viz, márcala (pytestmark = pytest.mark.dataset para todo un archivo, @pytest.mark.dataset para una sola prueba). Las pruebas sin marca se ejecutan solo en el nivel base, donde una prueba que necesite un extra se omite. Para ejecutar un nivel localmente:
pytest -sv tests -m dataset
Los tests de CI de GPU solo ejecutan las pruebas marcadas con gpu. Cada prueba bajo tests/policies y cada prueba @require_cuda la obtiene automáticamente; marca cualquier otra prueba que use CUDA con @pytest.mark.gpu.
Envío de problemas y solicitudes de extracción
Utilice las plantillas para los campos obligatorios y los ejemplos.
- Problemas: Sigue la plantilla de ticket.
- Solicitudes de extracción (pull requests): Rebasea en
upstream/main, usa una rama descriptiva (no trabajes enmain), ejecutapre-commity las pruebas localmente, y sigue la plantilla de PR.
Política de revisión de la comunidad: Para ayudar a escalar nuestros esfuerzos y fomentar un entorno colaborativo, pedimos a los colaboradores que revisen al menos una PR abierta de otra persona antes de que la suya reciba atención. Esta responsabilidad compartida multiplica nuestra capacidad de revisión y ayuda a que el código de todos se integre más rápido.
Una vez que hayas enviado tu PR y completado una revisión por pares, un miembro del equipo de LeRobot revisará tu contribución.
Gracias por contribuir a LeRobot.
Update on GitHub