参与 GitLab 开发
感谢您对参与 GitLab 开发感兴趣。 您可以贡献新功能、代码或流程的变更、错别字修正, 或界面语言更新。
本指南详细介绍如何参与 GitLab 的开发工作。
对于首次贡献者的分步指南,请参阅教程:进行 GitLab 贡献。
如何贡献
- 阅读行为准则。
- 申请社区分叉仓库的访问权限。
- 选择或创建要处理的问题。
- 选择开发环境。
- 进行更改并创建合并请求。
- 您的合并请求将被分类、审核,然后可以合并到产品中。
所有贡献必须以英文提交。GitLab 的工程工作使用英语进行, 其他语言的合并请求和问题无法被审核或接受。
GitLab 技术栈
GitLab 是一个 Ruby on Rails 应用程序。 它使用 Haml 和基于 JavaScript 的前端,采用 Vue.js。
一些卫星项目使用 Go 语言。 例如:
我们为每种技术准备了开发风格指南,帮助您符合我们的编码标准。
如果您想为网站或手册做贡献, 请访问任何页面底部并选择查看页面源代码,在仓库中打开该页面。
选择或创建问题
如果您知道要处理什么,先查看是否存在相关问题。 如果没有,请创建新问题。 选择合适的模板并添加您计划工作的所有必要信息。 这样您就能获得更多指导和支持。
如果您不确定要处理什么,可以
查看带有 ~quick win 标签的问题,
并专门筛选文档 ~quick win、
后端 ~quick win 或
前端 ~quick win。
当您找到想要处理的问题时,请在上面留下评论。 这有助于 GitLab 团队和更广泛的 GitLab 社区成员知道您正在处理该问题。
这是验证问题的好机会。 确认问题仍然有效,明确您计划的方法,并询问功能或变更是否可能被接受。 您无需被分配到该问题即可开始。 如果问题已有负责人,请询问他们是否仍在处理该问题,或者是否愿意合作。
有关详细信息,请参阅问题工作流程。
加入社区
申请社区分叉仓库的访问权限, 这是一组从 GitLab 仓库镜像而来的分叉,旨在改善贡献者的体验。 当您申请社区分叉仓库的访问权限时,您将在 社区入门项目 中收到一个入门问题。 有关更多信息,请阅读 Meta 仓库 README 中关于社区分叉的说明。
此外,我们建议您加入 GitLab Discord 服务器, 在那里 GitLab 团队成员和更广泛的社区随时准备回答您的问题, 并为您的贡献提供支持。
选择开发环境
要在本地编写和测试代码,请选择本地开发环境。
-
GitLab 开发工具包 (GDK) 是一个本地 开发环境,包含 GitLab 自托管安装、示例项目和管理员访问权限, 您可以使用它来测试功能。
-
GDK-in-a-box 将 GDK 打包成 预配置的虚拟机镜像,您可以通过 VS Code 连接。 按照配置 GDK-in-a-box 来设置 GDK-in-a-box。
要安装 GDK 及其依赖项,请按照安装 GDK 开发环境 中的步骤操作。
-
使用 Gitpod 进行浏览器内远程开发, 无论您的本地硬件、操作系统或软件如何,它都能运行。
创建合并请求
-
如果您没有看到此消息,请在左侧边栏选择 代码 > 合并请求 > 新建合并请求。
-
查看分支名称。您应该从社区分叉仓库中的您的分支 合并到 GitLab 仓库中的
master分支。 -
填写信息,然后选择保存更改。 如果您的合并请求还不完整,不用担心。
如果您不希望 GitLab 的任何人审核它,可以选择标记为草稿复选框。 如果您创建后对合并请求不满意,可以关闭它,不会有任何问题。
-
如果您对这个合并请求满意并希望开始审核流程,请在评论中输入
@gitlab-bot ready,然后选择评论。GitLab 的某人会查看您的请求并告知您下一步该做什么。 有关详细信息,请参阅合并请求工作流程。
有问题吗? 使用
@gitlab-bot help来联系 GitLab 合并请求教练。有关 MR 教练的更多信息,请访问GitLab 合并请求教练如何帮助您。
社区合并请求的分类
当您创建合并请求时,合并请求教练将分配相关的审核员, 或者在可能的情况下亲自指导您完成审核。
目标是在分配审核员后一周内审核合并请求。 有时由于工作量大、假期或其他原因,这可能需要更长时间。 如果需要,可以找到一位 合并请求教练, 他们专门从事您编写的代码类型,并在合并请求中提及他们。 例如,如果您编写了一些前端代码,应该提及前端合并请求教练。 如果您的代码涉及多个领域,可以提及多位合并请求教练。
有关时间安排以及如何请求帮助或升级合并请求的详细信息, 请参阅更广泛的社区合并请求指南。
您的合并请求审核并合并后,您的更改将部署到 GitLab.com 并包含在下一个版本中!
审核流程
当您向 GitLab 提交代码时,我们真的希望它能被合并! 但是,我们会仔细审核提交,这需要时间。 代码提交通常在合并前由两位 领域专家 审核:
审核后,审核员可能会要求作者更新合并请求。
在这种情况下,审核员将设置 ~"workflow::in dev" 标签。
一旦您根据要求更新了合并请求,请使用 @gitlab-bot ready 进行评论,表示它已准备好再次审核。
这个过程在合并前可能重复多次。
首次开始前,请阅读我们的贡献者合并请求指南。
- 确保遵循我们的提交消息指南。
- 编写出色的描述,包括重现您实现的步骤。
- 需要自动化测试。请花时间了解不同的 测试级别 并相应地应用它们。
使用企业版许可证为 Premium/Ultimate 功能做贡献
如果您想处理付费层级的 GitLab 功能,即位于 EE 目录 中的代码,则需要 GitLab 企业版许可证。 请按照记录的流程 申请企业版开发者许可证。
获取帮助
如何找到参与 GitLab 开发的帮助:
- 在合并请求或问题的评论中输入
@gitlab-bot help来标记 MR 教练。- 有关更多信息,请参阅GitLab 合并请求教练如何帮助您。
- 加入 GitLab Community Discord 并在
#contribute频道寻求帮助。 - 向贡献成功团队发送邮件至
[email protected]。