目录

龙蜥社区贡献者指南

注:本文的所有文档,都可以直接点击 Gitee 上的对应页面看到。浏览页面列表可以点击这里

1. 谁说只有写代码才算为社区做贡献?

刚刚接触一个开源社区,你可能会无所适从。或许你从来没有接触过社区开发,或许你会担心操作系统的项目太难,或许你会担忧社区开发的流程过于繁杂。但其实参与社区并没有那么神秘,也没有那么复杂。对于社区的新朋友,我们推荐从以下几种方式入门,这对龙蜥社区也有极大的帮助:

1.1 账号:工欲善其事必先利其器

龙蜥社区涉及的账号体系有两处。一处是官网账号系统,本章节所有的操作,都只需要一个官网账号即可;另一处是 Gitee 账号,后面几个章节涉及代码开发相关的操作,都需要使用到 Gitee 账号。详细的内容,请参考《101 - 社区账号指南》。

1.2 如何加入社区讨论

常见的沟通途径有同步(在线)沟通和异步(离线)沟通。龙蜥社区提供了丰富的沟通方式,欢迎所有社区爱好者加入相关讨论。目前主流的在线沟通方式为微信群和钉钉群,离线沟通方式为邮件和邮件列表。此外,我们还提供更多交流和讨论的方式,例如官网活动页面、自媒体平台。关于更具体的介绍,可以参考《102 - 社区讨论途径》页面。

1.3 如何获取和使用龙蜥操作系统

作为一个操作系统开源社区,龙蜥操作系统无疑是这个社区的核心。我们希望更多人能使用龙蜥操作系统,可以通过官网下载页获取最新的发布版本,也可以参考《103 - 下载、安装和使用龙蜥操作系统》一文获取更多信息。

1.4 如何帮助测试龙蜥操作系统

操作系统是一个庞大的体系,上面运行了数以千计的软件。我们欢迎所有社区爱好者通过使用龙蜥操作系统来帮助完善我们的发行版,但如果对于更有目的性的操作系统测试感兴趣,欢迎参考《104 - 测试龙蜥操作系统》一文。

1.5 如何在社区报告问题

在社区遇到任何问题,都可以向我们提交一个问题单,这也是开源社区的标准做法之一。龙蜥社区有统一的 Bugzilla 平台,当然,你也可以有其他报告问题的方式。更详细的信息可以在《105 - 报告问题》页面中找到。请记住,在社区积极报告问题,是帮助社区和社区项目进步的最重要方式之一。

1.6 欢迎参与文档贡献

龙蜥开发者文档中心本身也是龙蜥社区开源项目之一,依托 Gitee 平台,接受对文档相关内容的 IssuesPR(Pull Requests) 提交,最终通过 Gitee Pages 平台分发。

如需参与文档贡献,可以参考《106 - 文档贡献者指南》页面。

1.7 欢迎使用面向社区爱好者的基础设施

龙蜥社区建设了一系列面向社区爱好者的基础设施,基础设施是一套社区的技术服务,旨在降低爱好者入门门槛。例如社区提供了实验室环境、软件包构建平台、测试平台等。《107 - 社区开发基础设施》页面提供了更多的信息。社区基础设施仍在高速建设中,欢迎保持关注。

1.8 欢迎分享你的龙蜥操作系统使用经验

如果好就说出来。龙蜥社区的口碑,需要每一位爱好者帮忙共同打造。如果你觉得龙蜥操作系统,以及在龙蜥操作系统中的项目能对你有用,欢迎和大家分享,也欢迎向社区官方自媒体投稿。更多信息请参考《108 - 分享和投稿指南》页面。

2. 社区基础开发快速入门

如果你已经具备了一定的开发基础,在了解了社区的基本框架之后,可能已经迫不及待想要参与社区的开发了。下面是一些可能有用的建议,希望在开发过程中帮助到你。

2.1 准备你的开发工作环境

首先,你需要一个 Linux 操作系统环境。其次,你可能需要配置一系列其他软件和应用。《201 - 准备开发环境》一文分享了若干开发环境相关的最佳实践。

2.2 了解 Gitee 代码托管平台

龙蜥社区的代码全部托管在 Gitee 平台上,你需要先签署贡献者协议,并遵守社区的其他 Gitee 平台使用规范。点击《202 - Gitee 平台使用指南》页面了解更多信息。

2.3 了解 SIG 组与项目

龙蜥社区通过 SIG(Special Interest Group, 兴趣小组) 来组织各项社区开发事务,通常一个 SIG 组会定义一个主题,并围绕一个或者多个项目进行日常运营。如果想要了解如何通过参与一个 SIG 组来参与项目开发,可以点击《203 - SIG 组与项目介绍》页面。

2.4 选择一个你感兴趣的项目入手

到了真正动手的时刻了,你首先要选定一个真正的目标。如果对于龙蜥社区的项目没有太多了解,欢迎阅读《204 - 选择一个项目》页面掌握更多信息。

2.5 尝试完成第一个任务

第一个开发任务是完成一个开发需求,还是解决一个 BUG?都有可能。你所需要的帮助也是不一样的。《205 - 开发过程不完全指南》分享了若干开发过程中的经验。

2.6 通过 PR 的方式提交代码

终于完成了代码,可以提交到仓库中了。且慢!龙蜥社区要求所有代码都通过 PR(Pull Requests) 的方式提交,先进入代码审核流程。在提交 PR 过程中需要注意的事项,可以点击《206 - 提交 PR 操作指南》了解。

2.7 让你的代码更快被接受的 N 个建议

最后,大家都希望自己的代码尽快获得维护者的认可,合并到仓库主线中。这里面有一些实用技巧,可以在《207 - 让你的代码更快被接受的N个建议》一文中找到。

3. 也欢迎深度参与社区的开发

如果你已经是一名比较有经验的开发者,希望能为社区的项目做更多的贡献,我们也非常欢迎。如果对某一个项目有一些新的想法,可以在对应的 SIG 组中和项目的核心成员们聊一聊,或是进行一场脑暴讨论,或者开始一个新特性的研发。除此之外,对于深度参与社区开发,我们还有如下建议:

3.1 参与 Review 其他社区贡献者的代码

无论你是否是一名资深开发者,社区都欢迎你帮忙参与 Review 别人提交的代码,并提供 Review 意见。《301 - Review 代码指南》一文提供了一些指南性质的建议。

3.2 参与发行版核心软件包的构建

龙蜥操作系统发行版的核心软件包数量以千计,维护并发行这些软件包,是社区最重要的开发工作之一。如果想要参与发行版软件包构建,甚至成为龙蜥操作系统核心发布小组的成员,则可以阅读《302 - 发行版构建指南》页面。

3.3 参与龙蜥内核的开发工作

龙蜥社区的内核研发经验可以追溯到十年前,社区里的许多开发者都是资深的内核开发者,也为上游 Linux 社区贡献了非常多内核补丁。如何在龙蜥社区的框架下加入内核研发工作,可以参考《303 - 内核研发指南》页面。

3.4 为龙蜥操作系统集成更多的开源项目

除了维护现成的软件包,龙蜥社区非常欢迎将更多的开源项目加入到龙蜥操作系统中,构建更繁荣的操作系统软件生态。相关流程和指南可以参考《304 - 龙蜥社区软件包引入和管理原则》一文。

3.5 龙蜥社区软件的 spec 模版和自检项

龙蜥社区是个更规范、更统一的社区,每款开源项目都需要有个 spec 文件用于构建和生成 rpm。参考 《305 - spec 模版和自检项》一文。

3.6 龙蜥社区软件的 rpmbuild 构建指导手册

龙蜥社区也会帮助你更加了解一款软件的构建和安装过程,特增加指导手册,可以参考《306 - rpmbuild 构建指导手册》一文。

3.7 构建原生的龙蜥社区项目

从0 开始构建一个原生的操作系统项目,无疑是让人非常兴奋的。整个过程中的注意事项,可以参考《307 - 从零构建一个龙蜥开源项目》一文。

3.8 闭源软件集成样例

龙蜥社区对符合要求的闭源软件提供了集成样例,可以参考《308 - 闭源软件集成样例》一文。