要参与贡献,你需要了解 G6 的代码结构和开发流程。G6 的代码仓库地址是:https://github.com/antvis/G6
如果你想要修复一个 bug 或者增加一个新功能,你需要先 fork 一份代码到你的仓库,然后在你的仓库中进行修改,最后提交 PR 到 G6 的仓库。
在 Github 中 Fork G6 到你的仓库,并拉取到本地。
# 进入你的工作目录cd /path/to/your/workspace# 克隆 G6 代码git clone git@github.com:[your username]/G6.git
# 进入 G6 代码目录cd G6# 安装依赖pnpm install
# 进入 G6 代码目录cd ./packages/g6# 启动开发环境pnpm dev
此时,你可以在浏览器中访问 http://127.0.0.1:8080
查看 G6 的开发环境并预览开发示例。
切换到开发分支:
git checkout -b [branch name]
根据你的需求,修改代码并在本地测试。
在 packages/g6/__tests__/unit
目录下编写测试用例,确保你的代码符合预期。
确保你的代码通过测试:
pnpm test
# 添加修改git add .# 提交修改git commit -m "[commit type]: commit message"# 推送到你的仓库git push
在 Github 中提交 PR 到 G6 仓库。
G6 使用 Jest 进行单元测试,测试用例位于 packages/g6/__tests__/unit
目录下。
我们要求所有的代码提交都需要通过测试,确保代码质量。
当前 PR 提交的覆盖率不建议低于当前代码库的覆盖率,且
G6 扩展了 Jest 测试,提供了 toMatchSnapshot
断言用于生成以及对比快照。
如果当前可能修改影响了部分截图的生成,需要通过执行 pnpm test
检查是否有测试用例失败。
当发现测试失败的用例时,控制台会打印出失败的测试路径,以及基准截图和当前截图的路径信息。你可以按住 Ctrl
或 Command
键并点击路径,查看具体的测试用例或截图。
如果确认本次修改是正确的,那么请手动删除对应的基准截图,并重新生成截图:
重新生成全部截图:
packages/g6/__tests__/unit/snapshots
目录下的所有文件pnpm test
重新生成单个截图:
packages/g6/__tests__/snapshots
目录下对应的文件(unit
目录下测试用例会在snapshots
下生成对应的目录)npx jest __tests__/unit/xx/xxx.spec.ts
G6 编码尊循以下规范:
G6 采用 Conventional Commits 规范,提交信息格式如下:
<type>[optional scope]: <description>
type 有以下几种:
例如:
feat: add new featurerefactor(behavior): refactor drag-canvas behavior
请确保你的提交信息符合规范,并尽量使用英文描述,这样有助于我们更好地管理代码。
完成上述步骤后,你可以提交 PR 到 G6 仓库。请确保你的 PR 符合以下规范:
PR 提交后,我们会对你的代码进行 Review。请耐心等待 Review 结果,如果有需要修改的地方,我们会在 PR 中提出。
我们会定期发布新版本,如果你的 PR 是非紧急缺陷修复,我们会在下一个版本中发布。如果你的 PR 是紧急缺陷修复,我们会尽快发布新版本。
本项目通过 changeset 来管理版本发布,具体的发布流程如下:
npm run version
命令,根据提示填写相关信息,会自动更新版本号publish
标签,将该分支合并到 v5 分支