贡献

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

原则

  • 尊重前人的工作

    ROS已经存在了十多年,被开发人员和全球范围内的用户使用。在贡献时,请保持谦逊的态度和开放的心态。

  • 尽早与开放机器人合作

    • 开放机器人充当ROS社区的门户和倡导者。在设计阶段,依靠他们的专业知识和技术判断力。

    • 早期与开放机器人和社区进行讨论。长期以来,ROS的贡献者可能对整体情况有更清晰的认识。如果你在未与社区讨论之前实施某个功能并发送拉取请求,那么你将面临被拒绝的风险,或者可能需要重新思考你的设计。

    • 通常,在开始实施之前,通过提出问题或使用Discourse来交流想法是更可取的。

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

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

  • 将社区作为一个整体来思考

    考虑整体大局。有不同约束条件的开发者正在构建不同的机器人。ROS需要满足整个社区的需求。

有许多方法可以为ROS 2项目做出贡献。

讨论和支持

为ROS 2做贡献的一些最简单的方法是参与社区讨论和提供支持。您可以在:doc:`联系 <../../Contact>`页面上找到更多关于如何参与其中的信息。

贡献代码

设置开发环境

要开始使用,您需要从源代码安装;按照您的平台的 源代码安装指南 进行操作。

工作内容

我们已经确定了一些社区成员可以参与的任务:可以通过在ROS 2存储库中搜索被标记为“帮助需求”的问题来列出它们 <https://github.com/search?q=user%3Aament+user%3Aros2+is%3Aopen+label%3A"help+wanted"&type=Issues>`__。如果你在列表中看到了你想要参与的任务,请在该项上评论,让其他人知道你正在研究它。

我们还为我们认为应该对初次贡献者更具可访问性的问题设有一个标签,即“good first issue” <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)进行。

我们要求所有贡献者遵循在:doc:`开发者指南<Contributing/Developer-Guide>`中解释的做法。

请确保:ref:`运行测试<colcon-run-the-tests>`来验证您的代码更改,因为大多数软件包都有测试来检查代码是否符合我们的样式指南。

成为核心维护者

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

  • 审查代码贡献,包括风格、质量和与仓库/ROS 2 目标的整体匹配性。

  • 确保持续集成(CI)状态保持良好。

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

  • 用户提出的问题。

在`ros2 <https://github.com/ros2>`__和`ament <https://github.com/ament>`__组织中的每个存储库都有一组独立的维护者。成为这些存储库的维护者是一个仅限邀请的过程,通常包括以下步骤:

  • 在过去的一年中,对存储库做出了大量的代码贡献。

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

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