贡献指南
基本准则
- 在开始修复功能或错误之前,请先通过 GitHub、Slack 等渠道与我们沟通。此步骤的目的是确保没有其他人已经在处理它,如有必要,我们将要求您创建一个 GitHub issue。
- 在开始贡献前,使用 GitHub issue 来讨论功能实现并与核心开发者达成一致。
- 如果这是一个重大的特性更新,写一份设计文档来帮助社区理解你的动机和解决方案。
- 对于首次贡献者来说,找到合适 issue 的好方法是使用标签 "kind/good-first-issue" 或 "kind/help-wanted" 搜索未解决的问题。
代码风格
- 我们遵循 "Effective Go" 和 "Go Code Review Comments"。
- 在提交前使用
go fmt
格式化你的代码。你可以在 Go 的编辑器和 IDE 中找到支持 Go 的相关工具的信息。 - 每个新的源文件都必须以许可证头开始。
- 安装 pre-commit 并使用它来设置一个预提交钩子来进行静态分析。只需在仓库根目录下运行
pre-commit install
即可。
签署 CLA
在您为 JuiceFS 进行贡献之前,您需要签署贡献者许可协议。当你第一次提交 PR 的时候,将有一个 CLA 助手指导你。
什么是好的 PR
- 足够的单元测试
- 遵循编码风格
- 足够的行内注释
- 简要解释的提交内容
贡献流程
- 基于主分支创建一个要贡献的主题分支。这个主分支通常是
main
分支; - 提交代码;
- 确保提交消息的格式正确;
- 将主题分支中的更改推到个人 fork 的仓库;
- 提交一个 PR 到
juicedata/juicefs
仓库。这个 PR 应该链接到你或其他人创建的一个 issue; - PR 在合并之前必须得到至少一个维护者的批准。