开发Driving SDK
新增算子和模型可分别阅读文档:
PullRequest
PR 创建流程
- Fork本项目的仓库
- Clone到本地
- 创建开发分支
- 进行开发
- 编写代码
- 添加测试
- 更新文档
- 使用 pre-commit 工具对代码和文档进行格式检查与修复(见下方代码提交前检查)
- 确保代码通过本地测试
- 提交代码
- 推送到 Fork 仓库
- 创建 Pull Request
- 访问gitcode仓库页面
- 点击“Pull Request”或“合并请求”
- 填写PR描述(见PR创建页面模板)
PR最佳实践
- 保持PR小规模
- 一次PR只解决一个问题
- 便于评审和理解
- 提高合并效率
- 建议:单个PR不超过1000行(含测试)代码变更
- 及时更新
- 定期同步上游主分支
- 及时响应评审意见
- 保持 PR 活跃
- 清晰描述
- 详细描述变更原因和方式
- 提供测试方法
- 添加截图或示例(如适用)
代码提交前检查
为了确保提交的代码和文档符合项目规范,推荐使用 pre-commit 工具在提交前自动进行格式检查和修复。pre-commit 是一款基于 Git 钩子(Git Hooks)的开源代码质量管控工具,在执行 git commit提交代码前,会自动完成代码校验、格式规范化、基础问题排查等工作,校验不通过则阻断提交流程,从源头保障代码规范统一、质量合规。
安装与配置
# 配置国内pip镜像源,提升安装下载速度,解决安装卡顿、超时等问题。
pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple
# 安装 pre-commit
pip install pre-commit
# 在项目根目录安装 git hooks
pre-commit install
使用方式
# 对所有文件执行检查(首次使用或修改配置后推荐)
pre-commit run --all-files
#扫描Git暂存区内的改动文件,自动完成代码格式化与合规性检查,并完成格式化问题代码自动修复,其它未能自动修复的错误请参考提示人工修复。
git add .
pre-commit run
# 日常提交时,pre-commit 会在 git commit 时自动触发,仅检查变更文件
git add .
git commit -S -m "test"
pre-commit 会在每次 git commit 前自动运行配置的检查项,检查不通过将阻止提交,确保合入仓库的代码质量。
如果检查失败,pre-commit 会输出具体的错误信息。部分检查项(如代码格式化)会自动修复文件,此时只需重新 git add 修复后的文件并再次提交即可;对于无法自动修复的问题,请根据错误提示手动修正后再提交。若pre-commit run执行时出现安装组件失败, 优先检查本地配置文件 .pre-commit-config.yaml 是否与主库保持一致,不一致请同步更新。
详细的配置说明和可用 hooks 列表,请参考 Ascend 社区 pre-commit 使用指南。
PR评审与合入规则
评审要求
- 评审人员要求
- 评审人员必须熟悉相关代码领域
- 评审人员不能是PR作者本人
- 评审检查项
- ✅ 代码质量和风格
- ✅ 功能正确性
- ✅ 测试覆盖率(分支60%,行80%)
- ✅ 文档完整性
- ✅ 性能影响
- ✅ 安全性
- ✅ 向后兼容性
- CI 检查要求
- ✅ 所有 CI 检查必须通过
- 无 Block 评论
- PR不能有任何未解决问题
合入规则
- Squash and Merge
- 将 PR 的所有提交合并为一个提交
- 保持主分支历史清晰
- 提交消息使用PR标题
- 必须满足的条件
- ✅ 至少1位Maintainer或Committer的/lgtm,和1个/approve
- 禁止的操作
- ❌ 禁止 Force Push 到主分支
- ❌ 禁止合并自己的 PR(必须有他人评审)
合并权限
- Maintainer:可以合并任何PR
- Committer:可以合并任何PR
- Contributor:无合并权限,需要等待Maintainer或Committer合并
Special Interest Group
例会
- 周期:每1个月举行一次例会,可通过Ascend开源社区搜索、查看sig-DrivingSDK的会议链接。
- 申报议题:通过sig-DrivingSDK Etherpad链接进入共享文档,编辑申报议题。
- 参会人员:maintainer、committer、contributor等核心成员,其他对本SIG感兴趣的人员。
- 会议内容:讨论遗留问题和进展;当期申报的议题;需求评审、任务和优先级;需求规划和进展(roadmap);新晋maintainer、committer准入评审。
- 会议归档:会议纪要位于sig-DrivingSDK Etherpad链接。