参与进来

作为一个开源项目,我们欢迎并鼓励社区直接向|LPN|提交补丁。在我们的协作开源环境中,提交更改的标准和方法有助于减少活跃开发社区可能导致的混乱。

本文档说明了如何参与项目讨论,记录和跟踪错误和改进请求,并向项目提交补丁,以便快速将您的补丁接受到代码库中。

参与进来

如果您有兴趣参与Navigation 2,首先,欢迎您!我们鼓励各个层次的人员参与,包括学生、初级开发者、高级开发者和管理人员。无论是修复错误、开发新功能、设计新算法还是重构代码,每个人都可以找到适合自己的任务。

所有ROS 2 TSC工作组都在`工作组日历<https://calendar.google.com/calendar/embed?src=agf3kajirket8khktupm9go748%40group.calendar.google.com>`_上进行会议。在这里,您可以找到Navigation2工作组会议的日期和时间。请确保按照您所在的本地时区进行检查。通过该日历,您可以将自己添加到事件中,以便在您的Google日历上显示,并通过Google Hangouts获取通话的事件链接。我们鼓励所有感兴趣的人参加会议,介绍自己、您的项目,并了解其他人正在做什么。

此外,ROS Discourse 是一个跟进社区中的大型讨论和公告的好地方。但**不是**提问或寻求帮助的正确地点。请访问 ROS Answers 进行问答。

最后,我们有一个`Community Slack <https://join.slack.com/t/navigation2/shared_invite/zt-uj428p0x-jKx8U7OzK1IOWp5TnDS2rA>`_,在这里我们可以通过公共频道实时交流,或者通过私信与侧边栏维护者在各个项目上进行交流。如果您有兴趣为Nav2做出贡献,这是一个很好的加入地点!

如果您想贡献代码或报告错误,请参考下面的过程部分。

随着时间的推移,对于对堆栈的某个领域表现出兴趣和技术能力的开发人员,我们将其提升为维护者的身份。这样可以获得对我们受保护的分支的推送权限、第一审核者权限,并将您的名字添加到 关于和联系 中。目前还没有明确的成为维护者的流程,但是如果您在数月的时间内一直参与并做出贡献,您可能是一个合适的候选人,并且应该发送电子邮件给 关于和联系 中列出的项目负责人。

过程

在工作组会议中介绍自己之后(推荐但不是必需的),您就可以开始了!我们建议采用典型的开源项目流程,并重视细节和透明度。如果您承诺了某件事并且需要撤回,要说出来。我们都知道优先级会发生变化,我们也很感谢您提前告知,以便该任务可以放入开放的任务队列。

该过程简单明了,如下所示:

  1. 创建一个问题票,列出您想要看到的任何问题或功能。您不必修复/实现所需的补丁,但这将非常有帮助。报告错误也是有价值的贡献。

  2. 如果您希望处理这个问题,或者是其他已存在的问题,请在问题中评论声明您对其的拥有权。同时,为了其他协作人员的计划安排,宣布您的策略和时间表将非常有帮助。随着时间的推移,更新问题的进展,与维护人员或其他用户进行建设性的反馈交流。

  3. 完成您设定的任务后,提交一个 PR!请填写完整的 PR 模板,以确保我们对您的工作有全面的了解。此时,1-2 位审查者将查看您的工作并提供一些反馈,以便将其合并到代码库中。对于微小的更改,如果单个维护者对其满意,他们可以在审核后直接合并,视情况而定。任何重大的更改都应该得到至少1个维护者和1个其他社区成员的批准。

注意:我们非常重视代码质量,并追求高质量和一致的代码。我们使用ROS 2中提供的代码检查和静态分析工具(ament_cpplintament_uncrustify``ament_cppcheck``等)。所有的PR都会在CI中构建,并通过一组单元测试和系统级测试,包括静态分析。您可以在pull request中看到这些测试的结果。我们期望对于功能开发,测试工作也要进行相应的覆盖。如果您的更改需要更新文档,请在pull request中包含相应的更新。

许可证

开源项目非常重视许可证。它有助于确保软件在作者所期望的条款下继续可用。

由于许多源代码是从其他ROS 1项目移植过来的,每个软件包都有自己的许可证。贡献应该在该软件包的主要许可证下进行。全新

许可证告诉开发者作为版权持有人提供的权利。重要的是,贡献者完全了解许可权并同意它们。有时版权持有人并非贡献者本人,比如当贡献者代表公司工作时。

如果由于某种原因,Apache 2.0或BSD许可证不适用于您的工作,请与项目维护人员联系,讨论您的担忧或要求。我们可能会考虑为杰出的工作提供特殊例外情况,但需在合理范围内(我们不会接受任何使其不适合商业用途的许可证)。

开发者原产地认证(DCO)

为了诚实努力确保满足许可条件,|LPN|鼓励遵循开发者证书(DCO)流程。

DCO 是开发者在每次贡献中附加的证明。在贡献的提交信息中(稍后在本文档中更详细地描述),开发者只需添加一个“已签署”(Signed-off-by)声明,即表示同意 DCO。

实际上,最简单的方法是直接执行 git commit -s -m "commit messsage." 命令。其中 -s 会自动添加这一项。如果忘记在提交时添加此项,可以通过 git commit --amend -s 命令进行追加。

当开发者提交补丁时,这意味着贡献者有权根据许可证提交补丁。下面是 DCO 协议的内容,也可以在 http://developercertificate.org/ 上查看。

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the
    best of my knowledge, is covered under an appropriate open
    source license and I have the right under that license to
    submit that work with modifications, whether created in whole
    or in part by me, under the same open source license (unless
    I am permitted to submit under a different license), as
    Indicated in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including
    all personal information I submit with it, including my
    sign-off) is maintained indefinitely and may be redistributed
    consistent with this project or the open source license(s)
    involved.