88 lines
2.3 KiB
Markdown
88 lines
2.3 KiB
Markdown
# 贡献指南
|
|
|
|
> 感谢对本项目感兴趣!本指南说明如何贡献代码、文档、bug 报告。
|
|
|
|
## 工作流
|
|
|
|
### 1. 提 Issue
|
|
|
|
发现 bug / 有建议 → 在 [GitLab Issues](https://git.xsinfo.vip/xiaoshuai/ROS2_learn/-/issues) 提 Issue。
|
|
|
|
### 2. Fork + Pull Request
|
|
|
|
```bash
|
|
# fork 主仓库到你的账号
|
|
git clone git@git.xsinfo.vip:<your-username>/ROS2_learn.git
|
|
cd ROS2_learn
|
|
|
|
# 创建分支(feat/xxx 或 fix/xxx 或 docs/xxx)
|
|
git checkout -b feat/my-new-package
|
|
|
|
# 开发(遵循 doc/CODING_STYLE.md)
|
|
# ...
|
|
|
|
# 提交(commit message 必须详细,见 .gitlab-ci.yml)
|
|
git commit -m "feat(py_xxx): 新增 xxx 功能
|
|
|
|
- 改动 1
|
|
- 改动 2
|
|
|
|
测试: colcon build + test 100% 通过"
|
|
|
|
# 推送 + 创建 Merge Request
|
|
git push -u origin feat/my-new-package
|
|
```
|
|
|
|
## 编程规范(必读)
|
|
|
|
详见 **[doc/CODING_STYLE.md](doc/CODING_STYLE.md)**。
|
|
|
|
**关键要点**:
|
|
- Python: type hints + Google docstring + 节点属性后缀 `_` + 私有方法前缀 `_`
|
|
- C++: 命名空间 + const-correct + override + 智能指针
|
|
- 测试: conftest.py + session-scope fixture + 命名 `test_<unit>_<scenario>_<expected>`
|
|
- 包内必须有 `README.md` + 顶部 docstring
|
|
- 提交前:`make colcon-build && make colcon-test`(都绿)
|
|
|
|
## 包命名规范
|
|
|
|
- Python 包:`py_<功能>`(例: `py_pubsub`, `py_srv`)
|
|
- C++ 包:`cpp_<功能>`(例: `cpp_pubsub`, `cpp_robot_tf2`)
|
|
- 包名**不能**叫 `launch`(与 ROS2 系统包同名冲突)
|
|
- 节点类:`PascalCase`(例: `ChatterPublisher`)
|
|
- 节点名:`snake_case`(例: `chatter_publisher`)
|
|
|
|
## Commit Message 格式
|
|
|
|
```
|
|
<type>(<scope>): <subject>
|
|
|
|
<body>
|
|
|
|
<footer>
|
|
|
|
类型: feat / fix / docs / style / refactor / test / chore
|
|
示例:
|
|
feat(py_pubsub): 新增 chatter_publisher 节点
|
|
fix(cpp_robot_tf2): 加 const-correct 与 override
|
|
docs(doc/15-params): 新增参数系统深度文档
|
|
```
|
|
|
|
## 测试要求
|
|
|
|
- 每个 Python 包 ≥ 3 个 pytest 用例
|
|
- 每个 C++ 包 ≥ 2 个 gtest 用例
|
|
- 所有测试必须通过(否则 MR 不被合并)
|
|
|
|
## 文档要求
|
|
|
|
- 每个文件顶部 docstring
|
|
- 每个包内 `README.md`(功能 + 关键概念 + 运行 + 测试 + 深度学习链接)
|
|
- 新机制配套 `doc/` 深度文档(功能 / 原理 / 设计 / API / 测试 / 进阶 / 坑)
|
|
|
|
## 联系方式
|
|
|
|
- Email: dev@example.com
|
|
- GitLab: https://git.xsinfo.vip/xiaoshuai/ROS2_learn
|
|
|
|
感谢贡献! |