参与其中
作为一个开源项目,我们欢迎并鼓励社区直接向 Nav2 提交补丁。在我们的协作开源环境中,提交更改的标准和方法有助于减少活跃的开发社区可能造成的混乱。
本文档介绍了如何参与项目对话、记录和跟踪错误和增强请求,以及向项目提交补丁,以便您的补丁在代码库中快速被接受。
参与
如果您有兴趣参与 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,我们可以通过 PM 在公共频道或单个项目的侧边栏维护者中实时聊天。如果您有兴趣为 Nav2 做出贡献,这是一个加入的好地方!
如果您想贡献代码或错误,请参阅下面的流程部分。
随着时间的推移,对于有兴趣并在堆栈的某个领域表现出技术能力的开发人员,我们会将他们提升为维护者。 这样他们就有权利将权利推送到我们受保护的分支,拥有首次审阅者的权利,并可以在 关于和联系方式 上写上你的名字。 目前还没有明确的流程来成为维护者,但如果你参与并做出了贡献已有几个月,你可能是一个不错的候选人,应该给 关于和联系方式 上列出的项目负责人发送电子邮件。
流程
在工作组会议上自我介绍后(推荐,不是必需的),你就可以开始了! 我们推荐典型的开源项目流程,重视细节和透明度。 如果你承诺了某件事,需要撤回,就说出来。 我们都知道优先级会发生变化,并感谢提前通知,这样任务就可以进入开放的任务队列。
流程很简单,如下所示:
为您希望看到的任何问题或功能创建一张票。您不需要修复/实施所需的补丁,但这样做会很有帮助。报告错误也是一项宝贵的贡献。
如果您想处理此票证或另一张现有票证,请在票证中发表评论,声明对其拥有所有权。此时,如果您声明了策略和时间表,以便其他人在您周围工作,这将很有帮助。随着时间的推移,使用关键标记的进度更新票证,并参与维护者或其他用户可能提出的任何建设性反馈。
完成要完成的任务后,提交 PR!请完整填写 PR 模板,以确保我们完全了解您的工作。此时,1-2 名审阅者将查看您的工作并给出一些反馈,以将其合并到代码库中。对于微不足道的更改,单个维护者可以在审阅后合并它,如果他们对此感到满意,则由他们自行决定。任何重大更改都应至少由 1 名维护者和 1 名其他社区成员批准。
注意:我们非常重视代码质量,并努力实现高质量和一致的代码。 我们使用 ROS 2 中提供的 linting 和静态分析工具(“ament_cpplint”、“ament_uncrustify”、“ament_cppcheck”等)。 所有 PR 均在 CI 中使用适当的 ROS 发行版构建,并经过一组单元和系统级测试(包括静态分析)。 您可以在拉取请求中看到这些测试的结果。 预计功能开发测试将涵盖要添加的这项工作。 如果由于您的更改而必须更新任何文档,则应将其包含在您的拉取请求中。
许可
许可对于开源项目非常重要。它有助于确保软件继续按照作者希望的条款提供。
由于许多源代码都是从其他 ROS 1 项目移植而来的,因此每个软件包都有自己的许可证。贡献应根据该软件包的主要许可证进行。全新的软件包应在 Apache 2.0 许可证 下提供。
许可证告诉您作为开发人员您拥有哪些权利,由版权持有者提供。贡献者充分了解许可权并同意这些权利非常重要。有时版权持有者不是贡献者,例如当贡献者代表公司工作时。
如果出于某种原因,Apache 2.0 或 BSD 许可证不适合您工作,请与项目维护者联系并讨论您的顾虑或要求。 我们可能会在合理范围内考虑对特殊工作进行特殊例外处理(我们不会接受任何使其不适合商业使用的许可证)。
开发者原产地证书 (DCO)
为了尽最大努力确保满足许可标准, Nav2 鼓励遵循开发者原产地证书 (DCO) 流程。
DCO 是附在开发者所做的每项贡献上的证明。在贡献的提交消息中(本文档后面将更详细地描述),开发者只需添加一个“Signed-off-by”声明,从而同意 DCO。
在实践中,只需“git commit -s -m“提交消息。””就更容易了。 其中“-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.