feat(level1): ROS2 完全体 12 包 / 80 测试 / 23 文档 / 工程化 / Docker 分组

This commit is contained in:
xs
2026-08-04 10:19:47 +08:00
parent 5ef38ab508
commit 549d6b337e
141 changed files with 8949 additions and 1594 deletions
+88
View File
@@ -0,0 +1,88 @@
# 贡献指南
> 感谢对本项目感兴趣!本指南说明如何贡献代码、文档、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
感谢贡献!