开源 (Open Source) 在软件开发领域是一个非常时髦的词汇,同时也是一种文化,而开源对整个软件开发的影响自然也是不言而喻,想象一下如果没有开源社区,全球互联网的发展不会如此的迅猛,设想如果没有 Linux、MySQL、Kubernetes 这些开源项目和社区,那么当今互联网的技术栈不会如此丰富和完善。我们在全球众多的开源社区可以看到无数的贡献者为开源项目和社区贡献自己的力量,推动技术的进步,开源正在改变世界。为什么要参与开源项目?如何为开源做贡献? Open Source Guides 已经给出了很好的回答。
OpenPitrix 从一开始就是以开源的方式来进行,并且在 2017 年的 8 月份在 GitHub 上创建了组织和项目,一直到 2018 年 2 月 24 日才写下第一行功能代码,在此期间,所有成员都在思考系统的每个关键点,这些讨论的细节均可在 GitHub Issues 上公开访问。『OpenPitrix 贡献指南』 旨在帮助开源社区的成员了解如何参与 OpenPitrix 贡献,鼓励社区成员成为 OpenPitrix 的用户并参与进来,并初步制订了一套流程和规范,以便开源项目的多人协同工作更规范地运作。OpenPitrix 社区 所有成员 均必须遵守 CNCF 行为准则,项目各成员相信只有彼此尊重对方,构建高效的、协作的社区才有可能。
先简单讲一下 OpenPitrix 开源的几个 Repo 都是做什么的:
本节将引导社区成员如何为 OpenPitrix 开始你的第一个贡献。
参与一个开源项目的第一步一定是需要了解它,特别是对 OpenPitrix 这样一个大型的开源项目,快速熟悉起来并非一件易事,因此在这里列出一些相关文档,帮助社区成员从架构设计、功能使用到工程实现细节都能有所了解。最高效地熟悉 OpenPitrix 的方式还是使用它,在某些场景下遇到了问题或者是想到了新的 feature,亦或者发现了产品在某个环境中的 Bug,社区成员每一个提出来的问题都很宝贵,我们都会尽可能快的评估和回复。
可以去跟踪代码,找到相关的代码逻辑,在这个过程中很容易对相关模块有了解,不少 Contributor 可能都是这样完成了第一次贡献,参考以下资料帮助您更好地了解 OpenPitrix。
对 OpenPitrix 有基本的了解之后,若希望寻找一个入手点,着手开始写代码和参与贡献,可以在 OpenPitrix 可贡献功能列表 中查看前端和后端开放贡献的功能,该列表详细描述了其功能背景,个人评估后可以申请领取对应的任务。这些功能都是我们评估过相对容易上手的事情,可以以此作为切入点。
如果在 可贡献功能列表 中没有找到自己短期内能够为其贡献的功能,那么建议参与到文档的建设贡献中,随着项目的发展,标准化的文档会变得愈加重要,文档能够帮助社区内新成员和用户更好地了解产品使用和开发,我们非常重视文档的撰写,文档包括中文和英文,也欢迎社区成员和用户加入贡献文档。比如在参考文档时发现了 broken link 或是错别字,或者认为某些功能缺少帮助文档,都可以是一次参与项目贡献的契机。
当你已经对 OpenPitrix 非常熟悉了,那么可以尝试从 Roadmap 上找到感兴趣的事项,和我们讨论一下如何参与。
参见 搭建开发环境 搭建本地开发环境并运行项目预览前端界面。
建议使用 Kubernetes 和 Jenkins 来构建持续集成和部署的 Pipeline,详见 搭建 DevOps 环境。
在开源项目中,所有的交流都应该是公开的。OpenPitrix 使用 GitHub Issues 来记录 bugs 和 feature requests,无论是遇到 bug、讨论具体某一功能如何做、提一些建议、产品使用中的疑惑,都可以来提 issue,或者是在开发过程中遇到了问题,也可以在相关的 issue 中进行讨论,包括方案的设计、具体实现过程中遇到的问题等等。若对项目有任何问题,欢迎提交 GitHub Issues,项目的开发者也将定期的关注 issue 动态。
Tips:
Issue template
如果你能解决发现的 bug,或是有意愿参与 OpenPitrix 可贡献功能列表 中某些功能的开发,并且已经了解了如何成为一名贡献者,请发起 Pull Request。这样 OpenPitrix 项目的开发者可以进行评估,来决定是否合并你的更改。
Tips:
如果新提交了一个 PR,项目开发者可能会围绕你的更改进行讨论。提交者可能会被要求对自己的 PR 进行一些更改,如果是这样,请按开发者 review 后的要求和反馈修改并重新推送,只有被 approve 后的代码才可能 merge 到 OpenPitrix 的仓库。