跳到主要内容

openRuyi 新手贡献指南

欢迎加入 openRuyi 发行版的社区贡献行列!我们非常乐意接受来自每一位用户的贡献。无论您是经验丰富的开发者,还是从未编写过代码的爱好者,都可以在这里找到发挥才能的空间。成为贡献者不一定需要编程技能;文档编写、错误测试、翻译和帮助其他用户等都是有价值的贡献。

如何查找可以贡献的任务​

找到合适的任务是迈出贡献的第一步。不同类型的贡献者可以根据自己的兴趣和技能选择相应的任务来源:

Bug 修复: 可以在我们 repo 的问题追踪系统上,寻找任何标记为 bug 的条目。您可以从那些尚未解决的 Bug 入手,尝试分析并修复它们。提交修复前,请确认该问题尚未有其他人认领或修复,以避免重复劳动。在动手修复前,阅读一下相关的 Bug 报告细节和重现步骤。

功能需求: 除了 Bug 修复,您也可以实现社区需求的新功能。同样的,可以在我们 repo 的问题追踪系统上,寻找任何标记为 Enhancement 的条目。如果某个功能请求尚未有人处理,而且您有兴趣实现,便可尝试着手。在开始实现前,可以在 Issue 中与提出需求的用户或维护者沟通设计思路。

软件包更新与维护: 发行版的一个重要贡献领域是软件包维护。您可以查看当前有哪些软件包存在版本滞后或者无人维护的情况。

文档: 您可以贡献文档、教程或本地化翻译。我们鼓励用户完善文档,以帮助更多新人上手。

测试: 您也可以通过测试发行版和软件包来贡献。

代码贡献流程​

当您选定了一个具体任务 (例如修复某个 Bug 或添加新功能),就可以开始进入实际编码贡献的阶段。openRuyi 使用 Git 来管理代码,贡献代码的流程与 GitHub 等平台上的常见开源项目类似。

  1. Fork 仓库: 在 GitHub 点击项目上的 "Fork" 按钮即可。Fork 后,您将在自己的空间拥有该仓库的副本以进行修改。

  2. 克隆仓库并创建分支: 在命令行使用 git clone 将上述仓库副本克隆到本地计算机。随后,您就可以基于要进行的工作创建一个新的开发分支 (切记,不要在 main 分支上直接编写代码)。例如,运行 git checkout -b fix-login-bug 来创建并切换到名为 "fix-login-bug" 的新分支。请务必采用有意义的分支命名,便于他人了解您分支的用途。

  3. 编写代码: 在新分支上进行代码修改以解决您选择的任务。例如,修复 Bug 就修改对应的代码逻辑;实现新功能则添加必要的代码和文件。如果修改范围较大,建议将修改拆分为多个小的提交,以便于审核者理解您的改动。

  4. 撰写提交信息并提交: 在完成某阶段的代码修改后,使用 git add 添加更改的文件,之后使用 git commit 提交。对于 commit message 的格式,请参照软件包样式指南。

  5. 将分支推送到仓库: 以之前的内容为例,您可以使用 git push origin fix-login-bug 将您本地的开发分支推送到您的远程 fork 仓库。推送后,代码将出现在 GitHub 上您仓库的对应分支中。

  6. 创建一个合并请求: 在 GitHub 上, 从您刚刚推送的分支发起一个 Pull Request (简称 PR,合并请求),请求将您的修改合并回上游官方仓库的主分支。在填写 PR 描述时,清晰列出您更改的目的、解决的问题以及可能的影响。合并请求提交后,项目维护者会收到通知并开始审核您的代码。

  7. 代码审核: 提交 PR 之后,请耐心等待维护者或社区其他开发者的审核反馈。Code Review 是开源项目的重要环节,所有新代码都应经过审核以保证质量和与项目的契合度。审核者可能会在 PR 下留言,指出需要修改的问题、建议更好的实现方式或询问进一步的信息。当然,openRuyi 的审核者在审核时会参考社区内的标准,例如 openRuyi 源码仓的 PR 会基于软件包审阅指南审核。

  8. 合并: 在审核过程中,持续集成系统 (CI) 可能会对您的 PR 进行自动构建和测试。如果当您的 PR 获得审核者的批准 (Review Approved) 且通过必要的测试后,项目维护者会将您的分支合并 (Merge) 到主分支中,完成贡献流程。

如何测试更改​

openRuyi 提供了基于 Open Build Service 的构建平台,允许您对您的贡献进行修改后测试。我们推荐在修改完成后,优先在本地搭建环境并进行构建测试。当本地构建通过之后,方可以将修改推送到您在 OBS 上的个人项目。

报告 Bug / 提交 Feature Request 的流程​

当您在使用 openRuyi 时发现了漏洞、崩溃或者性能问题等,您可以提交 Bug。

创建 issue 前,请先在已有的问题列表中搜索是否已经有人提交过同样的问题。如果已经有报告,您可以在原有条目下补充您遇到的细节,无需重复提交。若确认是新的问题,则请按照 issue 模板填写 Bug 报告。

如果您有改进 openRuyi 的想法或者希望增加某项功能时,也可以相同的方式提出 Feature Request。

与社区沟通的方式​

积极的沟通对开源项目至关重要。openRuyi 提供多种社区交流渠道,方便贡献者与维护者联系、讨论问题、分享经验。在开始贡献或遇到疑问时,不要犹豫,通过以下方式与社区取得联系:

  • 即时通讯: 实时聊天渠道能让您快速得到响应和融入社区。在即时通讯中提问时,请简明扼要描述问题,并有耐心等待回复。记住沟通礼仪——友善礼貌、尊重他人。由于时差或志愿者忙碌,实时聊天未必总能立即获得答案,如果没人回应,可以过一段时间再询问。

    • openRuyi 采用 Discord 作为即时通讯平台,立即加入!
  • 论坛: 网络论坛是社区用户交流和求助的常用平台。我们计划使用 GitHub 的讨论功能,用于 RFC 发布、用户支持、教程分享和一般讨论。

  • 会议和线下活动: 随着社区发展,我们可能会举办线上研讨会、开发者会议,甚至线下的见面活动。这些活动可以让贡献者直接交流、头脑风暴,激发更多合作。