Falco 云原生安全实践指南(三)

打印 上一主题 下一主题

主题 1650|帖子 1650|积分 4950

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
原文:zh.annas-archive.org/md5/901f31c65e11db9dd25e51adeba7505a
  译者:飞龙
  协议:CC BY-NC-SA 4.0
  第十五章:如何贡献

到达本书的这一部分意味着你正在掌握 Falco 的所有方面。本章将为你提供一些发起,帮助你贡献给 Falco 项目。贡献意味着不仅仅是编写代码(这是一个常见的误解) —— 实际上,有许多有价值的贡献方式。我们将解释从何处开始以及如何满足 Falcosecurity 组织的特定贡献要求。
参与开源软件是一种有益的体验。你不仅可以改进 Falco,还会结识志同道合的人,与他人分享反馈和想法,提升自己的技能。如果你是开源新手或者想了解更多,我们发起你参阅开源指南。
贡献 Falco 意味着什么?

Falco 是一个Cloud Native Computing Foundation项目。CNCF 是云原生软件的供应商中态度所。它支持其托管项目的自治模型,并帮助维持康健的开源社区。Falco 紧张由社区驱动,包括用户、维护者和开发者,通过以下方式不停策划和改进:


  • 提供反馈以改进计划和现有功能
  • 测试 Falco 以发现问题
  • 陈诉漏洞
  • 撰写项目文档
  • 实验新的创意
  • 测试新功能
  • 提议变更
  • 编写代码
列举不胜摆列。总之,贡献意味着分享知识,为了 Falco 项目的长处举行合作。
我应该从哪里开始?

你应该起首加入 Falco 社区。你可以通过加入Falco Slack 频道并举行自我先容来做到这一点。社区非常接待你的加入。我们发起你订阅官方邮件列表。社区成员,包括维护者,还会定期举行周会议,每个人都可以到场。你可以在社区 GitHub 存储库中找到关于周会议和其他活动的详细信息。
友情提示,社区是由人类组成的:善待他们,他们也会善待你。参与社区的每个人都必须遵守其行为准则,所以请确保你已阅读并明确它。
贡献给 Falcosecurity 项目

正如你现在所知,Falco 及其所有相关项目都托管在GitHub 上的 Falco 安全组织下。每个项目都有自己的公共存储库 —— 你乃至可以找到一个包含 Falco 网站源代码的存储库。如果你还没有 GitHub 账户,你需要创建一个。我们还发起你花些时间熟悉 GitHub 的工作方式。如果你计划贡献代码,你需要对 Git 有肯定的了解。
Falcosecurity 组织有一个自动化的支持机制(或机器人)来帮助你并简化贡献过程。你大概需要一点时间来熟悉它。如果需要帮助,请随时询问!社区的真实职员将乐意帮助你。
在准备任何贡献之前,请务必查阅在线贡献指南,因为这些指南会不时更新。不外,请继续阅读,我们将解释最紧张的方面。
问题

GitHub 问题是与项目互动的紧张方式。打开一个问题陈诉错误或提出改进发起是紧张的贡献形式之一。正确利用问题对于项目非常紧张,因为大多数反馈都来自它们。
每个 Falcosecurity 仓库界说了问题的范例。最常见的范例包括错误陈诉文档哀求测试失败功能哀求。在打开问题时选择范例。根据选择的范例,你会看到一个问题形貌以及一个要填写的表单。通常表单包括问题,比方大概会要求你形貌一个错误,如何重现它,出现错误的 Falco 版本等等。这些信息帮助他人明确你的问题并举行处理,因此答复所有问题非常紧张,这样可以节流时间并增加成功解决问题的机遇。
一旦问题被打开,协作过程就开始了。任何对该主题感爱好的社区成员都可以参与,不仅限于维护者。参与这个过程是一个很好的方式来参与。
这个过程的初始阶段称为分类。它涉及验证和分类问题陈诉中的信息。比方,在错误的情况下,社区成员会实验重现它,并检查是否如形貌的那样出现。在某些情况下,过程会以正确答复问题或简单指向解决问题的资源而竣事。在其他情况下,有人自愿实行哀求的功能或修复错误,并负责提交拉取哀求(见下一节)。
你可以在任何阶段参与这个过程。只要是建设性的,每个人都可以做出贡献。
Pull Requests

拉取哀求(PRs)是将更改提交到 Falcosecurity 项目的唯一途径。当你想要提交新功能或修复时,你需要分叉相关的仓库,在你的分支中创建分支,并添加你的提交。一旦你确信你的更改按预期工作,你就可以提交 PR。与问题类似,PRs 利用预界说的模板填写。务必细致阅读说明。模板还包括一些命令,帮助你与自动化举行交互。
提交 PR 后,你需要等待维护者举行审查。维护者有许多正在处理的问题和 PR,所以如果他们没有迅速复兴,请耐心等待!他们大概会直接批准 PR 或要求你修改代码。审查过程是协作的:维护者和 PR 作者(有时另有其他用户)分享反馈和评论,直到 PR 被批准和归并。任何时候如果你有疑问,请寻求支持:维护者会解释如何继续。
制作 PR 时需要遵照一些通用指南:


  • 每个仓库大概有自己的编码风格和指南;确保你已阅读并明确它们。
  • 制止在单个 PR 中提交过多的代码更改;通常提交几个较小且独立的 PR 效果更好。
  • 维护者强烈保举在你的 Git 提交消息中利用约定式提交风格。
  • 你必须在所有 Git 提交上签名,而且你的 PR 不得包含归并提交(稍后我们将讨论此问题)。
下面的小节解释了在利用 Git 准备代码时必须满足的紧张要求。
Git 冲突解决和线性汗青

有时候在处理 PR 时,你大概需要与上游(远程)分支举行同步。如果远程分支与本地分支有分歧,大概会出现冲突。Git 允许你通过归并变基来同步和解决冲突。这两种方法解决同样的问题,但会产生差别的结果。
当本地和远程分支汗青不一致时会发生归并,你可以利用git merge命令或git pull命令来调和非线性汗青。然而,归并的缺点是不能保持仓库汗青的干净,这会使得像git bisect或git log等命令更难利用。因此,Falcosecurity 组织不允许在其项目中举行归并。
相反,变基 将你的提交移动到其他分支汗青的顶部(而不是引入归并提交)。这确保了 Git 汗青始终保持线性。在开发你的 PR 时,你必须始终利用变基来与上游同步或解决与主分支的冲突。下面的命令实用于这两种情况(将 *<branch>* 替换为远程分支的名称):
  1. $ git fetch origin
  2. $ git rebase -i origin/*<branch>*
复制代码
如果你不警惕引入了归并提交,这个命令还会移除它们。当你只需从远程分支拉取变更时(比方与同一分支上的协作者合作时),可以利用其简短版本git pull --rebase。
重申一下:Falcosecurity 组织实行线性汗青,而且不允许任何项目利用归并提交。如果你的 PR 包含归并提交,自动化体系会阻止 PR,而且维护者将无法归并它,直到你修复问题。始终利用变基,否则你的更改将无法被接受。
开发者证书的劈头

2004 年,Linux 基金会(CNCF 的母组织)推出了开发者签署证书(DCO),这是一种轻量级的方式,让贡献者声明他们已经编写(或有权提交)一段代码。要求遵守 DCO 的项目需要贡献者在提交时签署,表示他们同意 DCO 的条款。Git CLI 提供了嵌入的签署功能,您可以通过-s选项利用,或者手动在提交消息中添加以下行:
  1. Signed-off-by: *Full Name <example@example.net>*
复制代码
行必须遵照这种格式,并包含您的姓名和电子邮件地址。
作为 CNCF 的一部分,Falco 及其所有相关项目都需要 DCO。Falco­se⁠curity 组织实行了一个自动化机制来检查 PR 中的 DCO。如果提交中缺少 DCO,自动化将阻止该 PR。因此,请不要忘记在每个提交上签署;否则,维护者无法接受您的贡献。
如果您提交了一个 PR,而且 DCO 检查失败,因为您未在一个或多个提交上签署,不消担心。您可以举行调整。如果您只需修改最后一次提交,请利用:
  1. $ git commit --amend --signoff
  2. $ git push --force-with-lease
复制代码
如果您需要修复 PR 中的所有提交,请利用:
  1. $ git rebase --signoff origin
  2. $ git push --force-with-lease
复制代码
结论

恭喜!您已经完成了本书的阅读!这是一个涵盖架构、语法、实际应用、定制、代码开发以及许多其他有趣主题的漫长旅程。我们真诚希望您喜好阅读本书,而且更紧张的是,书中的内容对您有价值,无论您是初学者还是高级用户。
对我们来说,这是个苦乐参半的时刻。固然我们很难过地告别,但我们很感激能有机遇与您共同经历这段旅程,而且我们为可以或许帮助使您的软件更加安全感到自大。
您现在已经准备好开始另一场不可思议的冒险了。作为 Falco 的维护者,我们接待您加入项目,并希望能在社区论坛的此中一个见到您。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表