# 贡献指南 Contributing Guide 感谢你愿意为 **Letools-Learning** 贡献代码、文档或想法!本指南适用于所有外部和内部贡献者。 > 提交贡献即表示你同意遵守本仓库的 [行为准则 (Code of Conduct)](CODE_OF_CONDUCT.md)。 ## 在开始之前 Before You Start - **小改动**(typo、格式、文档补充):直接发 PR,无需先开 Issue。 - **新功能 / 新模型接入 / 架构变更**:请**先开 Issue 讨论**,避免做完才发现方向不合适。 - **Bug 修复**:建议先开 Issue 描述复现路径,再 PR 关联。 ## 开发流程 Development Workflow ### 1. Fork & Clone ```bash git clone https://github.com//LeTools-Learning.git cd LeTools-Learning git remote add upstream https://github.com/LejuRobotics/LeTools-Learning.git git submodule update --init --recursive ``` ### 2. 创建特性分支 Branch Strategy **禁止直接在 `master` 上提交。** 请基于 `master` 切新分支: | 分支类型 | 命名规范 | 用途 | | --- | --- | --- | | 功能 | `feat/` | 新功能 / 新模型 | | 修复 | `fix/` | Bug 修复 | | 文档 | `docs/` | 仅改文档 | | 重构 | `refactor/` | 不改变行为的内部重构 | 示例: ```bash git checkout master && git pull upstream master git checkout -b feat/add-newmodel-adapter ``` ### 3. 提交规范 Commit Message 采用 [Conventional Commits](https://www.conventionalcommits.org/) 风格,便于自动生成 CHANGELOG: ``` (): ``` `type` 取值: - `feat`: 新功能 - `fix`: Bug 修复 - `docs`: 文档变更 - `refactor`: 重构(不改行为) - `perf`: 性能优化 - `test`: 测试相关 - `build`: 构建 / 依赖 - `ci`: CI 配置 - `chore`: 其它 示例: ``` feat(kuavo_server): add wall_x adapter fix(kuavo_data): handle empty depth topic in rosbag converter docs(readme): clarify Python 3.10 requirement for AGX Orin ``` ### 4. 代码风格 Code Style - **Python**:遵循 PEP 8;使用 `ruff` / `black` 格式化(行宽 100)。 - **YAML 配置**:缩进 2 空格,键名 snake_case。 - **文档**:中文文档与英文文档可并存;面向用户的命令、参数、路径必须可直接复制运行。 - **不要提交:** `.pyc`、`__pycache__/`、`outputs/`、本地训练日志、个人 IDE 配置、大文件 (>10MB)。 ### 5. 提交 Pull Request PR 标题遵循同样的 Conventional Commits 风格。PR 正文请包含: - **What**: 这个 PR 做了什么? - **Why**: 为什么需要这个改动? - **How tested**: 如何验证?(命令、数据集、checkpoint 路径) - **Breaking changes**: 是否破坏现有接口? - **Related issues**: `Closes #123` / `Refs #456` PR 提交后 CI 会运行基础检查。**请在自己本地确认通过后再请求 review**。 ## 接入新模型 Adding a New Model 请遵循 [kuavo_server/docs/add_new_model.md](kuavo_server/docs/add_new_model.md) 中的完整 7 步流程: 1. 在 `kuavo_server/adapters/` 下创建 adapter 2. 仅在 adapter 内做 obs / action 转换 3. 在 `kuavo_server/builtin_adapters.py` 注册 4. 更新 `kuavo_server/README.md` 添加启动命令 5. (如果带训练)在 `configs/train/lerobot/` 或 `kuavo_model/external_models/` 下补全配置和文档 6. 提供至少一份 smoke test 命令 7. 在 PR 描述里说明已用何种数据 / checkpoint 跑通 ## 文档贡献 Docs Contribution 文档源在 `docs/` 与各模块 `readme.md`。请: - 中文为主,专有名词保留英文(如 `LeRobot`、`PI0`、`ROS`)。 - 提供可直接复制运行的命令(含完整路径占位符)。 - 任何 `` 必须在文末解释或在命令中标注。 - 不要在公开文档中暴露内部 IP / 内部 SaaS / 个人邮箱。 ## 报告 Bug Reporting Bugs 请通过 [GitHub Issues](https://github.com/LejuRobotics/LeTools-Learning/issues/new) 提交,附: - 环境信息:OS、Python 版本、CUDA 版本、ROS 版本、GPU 型号、commit hash - 完整复现命令 - 完整 traceback - 相关配置文件(必要时脱敏) ## 沟通渠道 Communication - **Bug / 功能请求**:[GitHub Issues](https://github.com/LejuRobotics/LeTools-Learning/issues) - **安全漏洞**:见 [SECURITY.md](SECURITY.md) - **乐聚内部成员**:内部沟通流程见公司 Wiki,不在本仓库维护 ## 许可证 License 提交贡献即表示你同意你的贡献以 [GNU General Public License v3.0](LICENSE) 发布。