前言
Dify 是一个开源的大语言模型(LLM)应用开发平台,它融合了后端即服务(Backend as Service)和LLMOps的理念,旨在简化和加速生成式AI应用的创建和部署。Dify提供了一个用户友好的界面和一系列强大的工具,使开发者能够快速搭建生产级的AI应用。Dify还提供了四种基于LLM构建的应用程序,可以针对不同的应用场景和需求进行优化和定制,包括聊天助手、文本生成、智能代理和工作流。
本文以一个新人视角来完成一次issue的提出、解决以及PR的提交,成为Dify的共建者,为开源社区共享自己的一份力量!
贡献指南
一、fork项目
首先打开Dify的GitHub仓库地址,点击fork项目,然后就可以在自己的repositories列表打开刚刚fork的项目。
二、clone代码
clone 仓库代码到本地,并同步主仓库的最新代码
git clone https://github.com/langgenius/dify
cd dify
添加自己仓库的地址:
git remote add ”别名“ “目标仓库在你 github 账户下的地址”
例如:git remote add myeslf https://github.com/beginnerZhang/dify
查看远程仓库信息,这个时候就看到多了一个仓库地址也就是我们刚添加的:
git remote -v
这个时候我们再去提交代码就不能再直接 git push 啦,git push 默认是 git push origin master
,解释一下就是会把内容提交到 orgin 目标地址下的 master 分支上,对于设置权限的仓库这样是肯定不行。我们需要执行 git push myself next
,意思很明显,我把本地修改的内容提交到 myself 目标地址下的 main 分支上。
这里大家还要注意,本地代码如何与主库代码保持一致:
我们需要 git pull origin main
,拉取 origin 地址下的 main 分支的内容,这个时候就可以保持对应分支内容的一致,不会出现每次提交代码都有冲突。
三、运行项目
项目启动可参考:Dify本地源码启动文档
四、解决issue
1.按照规范新建issue
2.解决issue并自测
根据issue进行coding,注意遵循项目的编码标准和风格指南,保持代码的简洁和可读性。
五、提交PR
1.之后就是代码提交流程了:
git add .
git commit -m "xxx"
git push myeslf main # 把本地修改的内容提交到 myself 目标地址下的 main 分支上。
其中commit message可选项:
feat:新增了一个功能,和语义化版本中的次版本号对应
fix:修复了一个bug,和语义化版本中的修订号对应
refactor:重构
docs:文档
style:格式,不影响代码运行的变更
build:影响构建系统或外部依赖的变更
perf:改进性能的变更
chore:杂项
例如:git commit -m "fix: view logs in prompt, no response when clicked"
2.然后打开自己的Github仓库,进入 Pull requests ,点击New Pull request:
然后点击Create pull request,就可以向目标仓库发出合并请求了。在PR模板中填写相关信息,点击提交。
3.之后就可以在主仓库的Pull requests里看到我们的PR了,等待 Reviewr 审核通过后就会被合并到主仓库。
至此,一次共建流程就完成了!
Pull Request 规范
Pull Request(PR)是Git和GitHub等版本控制系统中的一个重要功能,它允许开发者提交代码更改请求,以便将更改合并到主分支或其他分支。一个清晰、规范的Pull Request对于代码审查和维护项目的健康至关重要。
- 每个 PR 只解决单个问题或者新增单个功能;
- 描述中提供足够的信息,让审查者了解更改的目的和实现方式;
- 如果PR解决了特定的issue,使用关键字(如Fixes, Closes, Resolves)链接到相关issue;
- 如有需要,提供相关截图或视频来展示更改的效果
- commit message 请遵循 Angular Style Commit Message Conventions 规范;
- PR 信息中按照要求规范书写,明确解决的问题,并关联 github 上对应的 issue 链接。
可能出现的问题
要及时更新我们fork的库,保持与主仓库的同步,如果出现以下问题,可以直接在Github上点击Discard 1 commit
及Update branch
来解决。
相关链接
- Dify 官网
- Dify GitHub
- Dify 官方文档
- 推荐阅读:Github进行fork后如何与原仓库同步:重新fork很省事,但不如反复练习版本合并
最后
庞大的开源社区一定有很多值得去学习的东西,开源本身是一场历练和修行。成为 contributor 不是唯一目的,通过阅读代码和修复 bug 也是一种提升,也会认识很多志同道合的朋友。我们希望每一个开源者都能用微笑面对这一路的风景。
开源社区的持续迭代离不开使用者和开发者的长期反馈和支持,愿大家在开源的道路上步履不停~