Files
ROS2_learn/CONTRIBUTING.md
T

2.3 KiB

贡献指南

感谢对本项目感兴趣!本指南说明如何贡献代码、文档、bug 报告。

工作流

1. 提 Issue

发现 bug / 有建议 → 在 GitLab Issues 提 Issue。

2. Fork + Pull Request

# 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

关键要点:

  • 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 / 测试 / 进阶 / 坑)

联系方式

感谢贡献!