简体中文 | English
🎉 欢迎向 L7 贡献代码! 🎉
git clone https://github.com/antvis/L7 --depth=1
由于使用了 pnpm workspace,首先需要安装 pnpm
pnpm install
# 运行 DEMO
pnpm dev
其它命令:
pnpm site:dev
启动本地官网pnpm test:unit
运行单元测试pnpm test-cover
运行单元测试并查看代码覆盖率pnpm test:integration
运行集成测试pnpm build
构建源码包, 分别输出 umd, es 和 lib 目录
根据 angular 规范 提交 commit,这样 history 看起来更加清晰。
提交 commit 的类型,包括以下几种
- feat: 新功能
- fix: 修复问题
- docs: 修改文档
- style: 修改代码格式,不影响代码逻辑
- refactor: 重构代码,理论上不影响现有功能
- perf: 提升性能
- test: 增加修改测试用例
- chore: 修改工具相关(包括但不限于文档、代码生成等)
- deps: 升级依赖
尽量用一句话清楚的描述这次提交做了什么,查看具体参考文档。
我们使用了 changesets 进行全自动的语义化发布,当我们开发完成后执行 changeset 并提交变更集。
pnpm run changeset
git add .
git commit -m "chore: commit changeset"
如果你有仓库的开发者权限,而且希望贡献代码,那么你可以创建分支修改代码提交 PR,AntV 开发团队会 review 代码合并到主干。
# 先创建开发分支开发,分支名应该有含义,避免使用 update、tmp 之类的
$ git checkout -b branch-name
# 提交代码,message 见下面的规范
$ git add . # git add -u 删除文件
$ git commit -m "fix: role.use must xxx"
$ git push origin branch-name
提交后就可以在 L7 创建 Pull Request 了。
由于谁也无法保证过了多久之后还记得多少,为了后期回溯历史的方便,请在提交 MR 时确保提供了以下信息。
- 需求点(一般关联 issue 或者注释都算)
- 升级原因(不同于 issue,可以简要描述下为什么要处理)
- 框架测试点(可以关联到测试文件,不用详细描述,关键点即可)
- 关注点(针对用户而言,可以没有,一般是不兼容更新等,需要额外提示)
详细流程 版本发布指南
-
去 GitHub Action 触发 Create bump version PR Action 执行,选择发布分支,触发 Action 执行
-
等待 Action 执行完成,执行完成会提一个变更版本的 PR
-
去确认 PR 版本变更内容,如果没有问题 approve PR,等待发布版本 Action 执行,期间会发布到 NPM、打 tag 到 Github、创建 GitHub Release
-
第 3 步成功,会进行钉钉消息通知,机器人自动合并 PR,后台自动部署新官网
-
第 3 步失败,会进行钉钉消息通知,去 GtiHub Action 查看失败原因
- 创建本地
release
分支 - 若没有要发布的变更集,执行
pnpm run changeset
脚本,创建本次版本发布变更集,执行完成 coomit 变更集 - 执行
pnpm run version-packages
脚本,更新要发布包的版本号和 Changelog,确认内容并 coomit - 执行
pnpm run publish-packages
脚本,会发布包到 NPM、打 tag 到 GitHub - 将
release
分支变更内容,以提交 PR 方式合并到发布分支 - 去 GitHub Releases 创建本次发布的 Release,创建完成后会自动部署新官网
以预发 beta 为例,新增加一个功能,发布 beta 版本:
- 创建本地
beta
分支 - 执行
pnpm exec changeset pre enter beta
命令🔗,进入beta
预发模式 - 完成功能研发、添加变更集、push 到远端
beta
分支 - 版本发布,与线上自动版本发布流程一致,也可以选择手动发布版本
beta 版本发布验证完成后,合并到主分支发布流程:
- 执行
pnpm exec changeset pre exit
命令🔗,退出预发模式 - 将
beta
分支变更内容,以提交 PR 方式合并到主分支 - 版本发布,与线上自动版本发布流程一致,也可以选择手动发布版本