!!!###!!!title=5.如何贡献代码——VisActor/VStory 社区贡献者文档!!!###!!!!!!###!!!description=---title: 5.如何贡献代码key words: VisActor,VChart,VTable,VStory,VMind,VGrammar,VRender,Visualization,Chart,Data,Table,Graph,Gis,LLM---!!!###!!!

创建分支

VStory 默认分支为 develop 分支。无论是功能开发、bug 修复、文档编写,都请新建立一个分支,再合并到 develop 分支上。使用以下代码创建分支:

// 创建文档、demo分支
git checkout -b docs/add-funnel-demo

寻找或者创建 issue

原则上,我们规定每一个 pr 都要有对应的 issue。在开始开发之前,请确认是否有对应的 issue,且 issue 没有被认领。

搜索 issue

可以通过如下方式搜索 bug 或者 feature 相关的 issue:

创建代码相关 issue

点击 “NEW ISSUE”,打开 issue 选择页面,选择“Bug Report” 或者 “Feature Request”。

填写你要提交的文档 issue 相关信息,并打上合适的标签即可。

认领 issue

如果你想贡献代码,可以在该 issue 下留言认领。管理员会联系你,确认后将 issue assign 给你。

例如:

编写代码

VStory 生态所有的组件都在同一目录下,按包名进行拆分,开发者需要在自己的代码分支上开发代码,然后进行提交。

借助豆包 Marscode AI 编程助手 进行代码编写

借助豆包Marscode AI 编程助手,可以在代码编写的整个流程中提供全方面的帮助。

如果你还没有安装Marscode AI 编程助手,请从该链接进入下载页面:https://www.marscode.cn/home?utm_source=developer&utm_medium=oss&utm_campaign=visactor_a

在代码编写中,合理使用 context 指令,可以提升内容的准确性。

**⭐️ #Workspace**

选择 Workspace 中的全局代码作为上下文,AI 将根据用户 Query 自动寻找相关代码 Context

**⭐️ #Files**

搜索选择代码仓库中的文件作为上下文

**⭐️ #Code**

搜索选择代码仓库中的函数、类作为上下文

下面举例说明,如何使用Marscode AI 编程助手 进行代码编写。

5.1 快速熟悉整个仓库

这里 **通过 # 唤起 #Workspace ,**然后进行提问,希望它帮忙生成一份项目结构说明文档。

我们仍然可以针对子文件夹,进行进一步的提问。

5.2 解释代码

5.2.1 生成代码说明

当我们在文件中选择一段代码,可以从悬浮菜单中选择 Explain 命令,Marscode 会为我们生成详细的代码解释。我们可以在此基础上,进行校对和改编。

也可以直接在对话框中输入 Explain 命令。

这里也可以直接使用上面提到的 #Code context 来结合 Explain 和你的指令来进行更细节的任务。

5.2.2 生成针对整个文件的说明

Explain 可以和 Context 或者 Files 命令搭配使用,用来生成针对整个文件的说明文档。

5.3 内容检索

通常我们的每个问答,Marscode 都会给出参考文档,这些文档可以给我们提供更多参考上下文,供进一步分析。

也可以直接进行文件检索:

5.4 代码生成

在日常编码中经常会碰到使用重复代码的场景,有时候可能并不知道某个功能是否有现成的函数已实现,此时用 #Workspace 来进行提问。例如:

5.5 添加注释

使用 "/doc"命令生成代码注释。

5.6 生成单测

VStory 单元测试代码在每个 package 的 “**tests” ** 目录下。

使用 Marscode “/test” 指令可以快速的生成单测代码。

5.7 智能提示

编写过程中,智能生成可选代码是编程助手的标配功能,大家自行体验吧。

提交代码

文档完成之后,先把代码 push 到你的远程分支。例如:

git commit -a -m "docs: add custom funnel demo and related docs"

VisActor 的 commit 提交信息遵循 Conventional Commits 规范,demo 使用 docs

<type>[optional scope]: <description>

其中常用的type包括 docs(文档、日志修改)、feat(新功能)、fix(问题修复)、refactor(代码重构)等,请根据实际情况选择。

请用简短精确的英文描述编写 description

提交 commit 之前,我们会进行 commit lint 检查,具体可以查看检查规则

一个常见的问题是远程的 upstream (@visactor/vstroy) 有了新的更新, 从而会导致我们提交的 Pull Request 时会导致冲突。 因此我们可以在提交前先把远程其他开发者的 commit 和我们的 commit 合并。使用以下代码切换到 develop 分支:

git checkout develop

使用以下代码拉出远程的最新代码:

git pull upstream develop

切换回自己的开发分支:

git checkout docs/add-funnel-demo

把 develop 的 commit 合并到自己分支:

git rebase develop

把更新代码提交到自己的分支中:

git push origin docs/add-funnel-demo

提交 PR

你可以在你的 github 代码仓库页面点击 Compare & pull request 按钮。

或通过 contribute 按钮创建:

按照模板填写本次提交的修改内容:

  • 勾选这是什么类型的修改
  • 填写关联的 issue
  • 若有复杂变更,请说明背景和解决方案

相关信息填写完成后,点击 Create pull request 提交。

管理员会 review pr 决定是否通过,如果不通过需要进行修改然后重新提交。

下一步

接下来你可以阅读每一个模块的实现原理及源码详解,也可以加入贡献这些文档。

请加入 VisActor 大家庭,贡献你的力量吧!

github :github.com/VisActor

VisActor 微信订阅号(可以通过订阅号菜单加入微信群):

VisActor 官网:www.visactor.io/

飞书群:

discord:https://discord.com/invite/3wPyxVyH6m

本文档由以下人员贡献

玄魂