当前位置: 首页 > news >正文

如何成为开源代码库Dify的contributor:解决issue并提交PR

前言

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 commitUpdate branch来解决。
在这里插入图片描述

相关链接

  • Dify 官网
  • Dify GitHub
  • Dify 官方文档
  • 推荐阅读:Github进行fork后如何与原仓库同步:重新fork很省事,但不如反复练习版本合并

最后

庞大的开源社区一定有很多值得去学习的东西,开源本身是一场历练和修行。成为 contributor 不是唯一目的,通过阅读代码和修复 bug 也是一种提升,也会认识很多志同道合的朋友。我们希望每一个开源者都能用微笑面对这一路的风景。

开源社区的持续迭代离不开使用者和开发者的长期反馈和支持,愿大家在开源的道路上步履不停~

http://www.lryc.cn/news/473254.html

相关文章:

  • SQL进阶技巧:巧用异或运算解决经典换座位问题
  • 【MySQL】 运维篇—数据库监控:使用MySQL内置工具(如SHOW命令、INFORMATION_SCHEMA)进行监控
  • 【温酒笔记】DMA
  • 力扣判断字符是否唯一(位运算)
  • GPU和CPU区别?为什么挖矿、大模型都用GPU?
  • 新兴斗篷cloak技术,你了解吗?
  • 【抽代复习笔记】34-群(二十八):不变子群的几道例题
  • Chrome和Firefox如何保护用户的浏览数据
  • CentOS 7镜像下载
  • opencv-windows-cmake-Mingw-w64,编译opencv源码
  • Puppeteer点击系统:解锁百度流量点击率提升的解决案例
  • Kyber原理解析
  • 2024 CCF CSP-J/S 2024 第二轮认证 真题试卷
  • Android 无障碍服务常见问题梳理
  • Milvus 与 Faiss:选择合适的向量数据库
  • 2024最全CTF入门指南、CTF夺旗赛及刷题网站(建议收藏!)
  • 【论文阅读】ESRGAN+
  • 北京市首发教育领域人工智能应用指南,力推个性化教育新篇章
  • 【Java并发编程】信号量Semaphore详解
  • window11使用wsl2安装Ubuntu22.04
  • 虚拟滚动 - 从基本实现到 Angular CDK
  • Spring WebFlux学习笔记(一)
  • 富格林:正确追损思维安全交易
  • 前端vue2迁移至uni-app
  • 恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut
  • 区块链介绍
  • git回滚间隔的提交
  • Map和Set(数据结构)
  • vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
  • 新需求编码如何注意低级错误代码