LeRobot documentation
如何为 🤗 LeRobot 做出贡献
如何为 🤗 LeRobot 做出贡献
欢迎所有人参与贡献,我们珍视每一位的贡献。代码并非帮助社区的唯一途径。解答问题、协助他人、主动联系以及改进文档都具有极高的价值。
无论您选择以何种方式做出贡献,请留意遵守我们的行为准则和我们的AI 政策。
参与贡献的方式
您可以通过多种方式做出贡献:
- 修复问题:解决错误或改进现有代码。
- 新功能:开发新功能。
- 扩展:实现新的模型/策略、机器人或仿真环境,并将数据集上传到 Hugging Face Hub。
- 文档:改进示例、指南和文档字符串。
- 反馈:提交与 bug 或期望的新功能相关的工单。
正在添加新硬件? 机器人、遥操作设备和相机通常作为独立的插件包运行效果最佳,而不是对核心库进行修改。请遵循 Bring Your Own Hardware,发布你的包,然后提交一个 PR,将其添加到 Third-Party Robots & Teleoperators 或 Third-Party Cameras & Sensors 中。
如果您不确定从哪里开始,请加入我们的 Discord 频道。
开发环境配置
要贡献代码,您需要搭建一个开发环境。
1. Fork 和 Clone
在 GitHub 上 Fork 该仓库,然后克隆你的 Fork:
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 参考文档由 src/lerobot/ 中的 docstring 生成。如果您添加或修改任何公开内容,请遵循 docstring 标准——该格式会被渲染器解析,并在 CI 中进行检查。
运行测试
我们使用 pytest。首先,请通过安装 git-lfs 来确保你拥有测试工件:
git lfs install git lfs pull
运行完整测试套件(可能需要安装额外的依赖项):
pytest -sv ./tests
或在开发过程中运行特定的测试文件:
pytest -sv tests/test_specific_feature.py
Fast Tests CI 针对每个 extra(base、dataset、hardware、viz)各运行一个层级,并通过 pytest 标记来选择每个层级的测试。如果您的测试需要 dataset、hardware 或 viz extra,请为其添加标记(整个文件使用 pytestmark = pytest.mark.dataset,单个测试使用 @pytest.mark.dataset)。未标记的测试仅在 base 层级中运行,在该层级中,需要 extra 的测试会被跳过。要在本地运行某个层级:
pytest -sv tests -m dataset
GPU Tests CI 仅运行标记为 gpu 的测试。tests/policies 下的所有测试以及所有 @require_cuda 测试都会自动获得该标记;对于其他使用 CUDA 的测试,请使用 @pytest.mark.gpu 进行标记。
提交问题与拉取请求
使用模板来填写必填字段和示例。
社区评审政策:为了扩大我们的努力并营造协作环境,我们要求贡献者在自己的 PR 获得关注之前,先评审至少一个其他人的开放 PR。这种共同责任会倍增我们的评审能力,并帮助所有人的代码更快被合并!
提交 PR 并完成同行评审后,LeRobot 团队的成员将审核您的贡献。
感谢您为 LeRobot 做出贡献!
Update on GitHub