贡献

在开始为 ROS 2 项目做贡献之前,请记住以下几点。

原则

  • 尊重先行者

ROS 已经存在十多年,被世界各地的开发人员使用。 在做贡献时,请保持谦逊的态度和开放的心态。

  • 尽早与 Open Robotics 合作

  • Open Robotics 充当 ROS 社区的守门人和倡导者。

从设计阶段开始依赖他们的专业知识和技术判断。 * 尽早与 Open Robotics 和社区开始讨论。 长期的 ROS 贡献者可能对大局有更清晰的认识。 如果您在未先与社区讨论的情况下实现某项功能并发送拉取请求,则可能会被拒绝,或者您可能会被要求重新考虑您的设计。 * 在开始实施之前,提出问题或使用 Discourse 来交流想法通常是更好的选择。

  • 尽可能采用社区最佳实践,而不是临时流程

在开发和贡献时,请考虑最终用户的体验。 避免使用可能不是每个人都能访问的非标准工具或库。

  • 从整个社区的角度考虑

从更大角度考虑。 开发人员构建具有不同约束的不同机器人。 ROS 需要满足整个社区的要求。

您可以通过多种方式为 ROS 2 项目做出贡献。

讨论和支持

为 ROS 2 做出贡献的一些最简单的方法包括参与社区讨论和支持。 您可以在 Contact 页面上找到有关如何参与的更多信息。

贡献代码

设置您的开发环境

要开始,您需要从源代码安装;请按照适用于您平台的 源安装说明 进行操作。

开发指南

需要处理哪些工作

我们已经确定了一些可以由社区成员处理的任务:可以通过在 ROS 2 存储库中搜索标记为“需要帮助”的问题来列出它们 <https://github.com/search?q=user%3Aament+user%3Aros2+is%3Aopen+label%3A”help+wanted”&type=Issues>`__。

如果您在该列表中看到了想要处理的内容,请对该内容发表评论,让其他人知道您正在研究它。

我们还为我们认为应该更方便首次贡献者访问的问题设置了一个标签,标记为“好的第一个问题”<https://github.com/search?q=user%3Aament+user%3Aros2+is%3Aopen+label%3A%22good+first+issue%22&type=Issues>`__。 如果您有兴趣为 ROS 2 项目做出贡献,我们鼓励您首先查看这些问题。 如果您希望扩大影响力,我们欢迎您就任何未解决的问题(或您可能提出的其他问题)做出贡献,尤其是具有里程碑的任务,表明它们的目标是下一个 ROS 2 版本(里程碑将是下一个版本,例如“crystal”)。

如果您有一些代码可以贡献来修复错误或改进文档,请将其作为拉取请求提交给相关存储库。 对于较大的更改,在开始工作之前,最好在“ROS 2 论坛 <https://discourse.ros.org/c/ng-ros>”上讨论该提案,以便您可以确定是否有其他人已经在做类似的事情。 如果您的提案涉及对 API 的更改,特别建议您在开始工作之前讨论方法。

提交代码更改

代码贡献应通过拉取请求发送到`适当的 ros2 存储库 <https://github.com/ros2>`__。

我们要求所有贡献者遵循 开发人员指南 中说明的做法。

请务必 运行测试 以进行代码更改,因为大多数软件包都有测试来检查代码是否符合我们的样式指南。

成为核心维护者

ROS 2 维护者确保项目总体上正在取得进展。 维护人员的职责包括:

  • 审查传入的代码贡献,以确保其风格、质量以及与存储库/ROS 2 目标的整体契合度。

  • 确保 CI 继续保持绿色。

  • 合并符合上述质量和 CI 标准的拉取请求。

  • 解决用户提出的问题。

ros2ament 组织中的每个存储库都有一组单独的维护人员。 成为一个或多个存储库的维护人员是一个仅限邀请的过程,通常涉及以下步骤:

  • 在过去一年内,为存储库贡献了大量代码。

  • 在过去一年内,对存储库传入的拉取请求进行大量审查。

大约每 3 个月,ROS 2 团队将审查所有存储库中的贡献并向新维护人员发出邀请。 一旦接受邀请,新的维护者将被要求接受有关 ROS 2 存储库机制和政策的简短培训。 培训完成后,新的维护者将被授予对相应存储库的写访问权限。