# 贡献指南 > 感谢对本项目感兴趣!本指南说明如何贡献代码、文档、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:/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___` - 包内必须有 `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 格式 ``` ():