挑战赛积分不好拿?快来认领新出炉的 issue 啦
继 TiDB 4.0 捉"虫"竞赛后,大家在 TiDB 4.0 版本中陆续发现了一些 bug,有且不限于:
- 和 MySQL 的兼容性问题
- 新功能之间的兼容性问题
- 正确性问题
- …
为了共建 TiDB 良好的稳定性,我们决定进行新一轮的 TiDB Challenge Program。这次的主题是 TiDB bug fixing,同学们可以参与修复目前 TiDB 已发现的种种 bug,既维护了 TiDB 的稳定性,又积累了硬核大型数据库的开发经验,同时还有高额挑战赛积分可以拿哦。
欢迎大家加入TiDB Community Slack Workspace,过程中遇到任何问题都可以直接通过 #sig-planner 或者 #sig-exec 的 channel 与我们模块核心研发进行即时沟通。
一些常见 bug
在执行类型转化函数时,需要检查 decimal 类型的参数是否越界。
插入错误时间类型值的时候,和 MySQL 产生不同的错误码。
当查询结果越界时,出现了一些令人疑惑的 warning 信息。
- …
我们会在名为 Bug fixing challenge 的 Pinned issue 中,尽量给出每个 bug 的 “How to fix” 的提示。
如何参与
准备
-
参考 Join GitHub 完成 GitHub 账号的创建。
-
参考 Installing Git 在本地环境中安装 Git。
-
通过 Set up Git 配置 Git 访问 GitHub。
参与
参赛全流程包括:查看任务->领取任务->实现任务->提交任务->评估任务->获得积分->积分兑换,其中“兑换积分”之前的步骤都将在 GitHub 上实现。
第一步:查看 Issue
开放的 Issue 列表可以直接在 tidb/issues 中看到,这个页面打开后会出现一个 Pinned issue “Bug fixing challenge”。
Pinned issue 里面记录的 challenge issue 都是可以参与完成的。
注:
目前我们只开放了 planner 和 execution 模块的 issue,其他的模块将在接下来陆续开放。
第二步:领取任务
如果你决定认领某一个 issue,可以先在这个 Issue 中回复 “/pick-up”,bot 会帮你打上 “picked” 的标签,并告诉你的是否领取成功。
第三步:实现代码
在实现代码的过程中如果遇到问题,可以通过 #sig-planner 或者 #sig-exec channel 与我们进行探讨,Issue 指定的 Mentor 会尽可能在 24h 内予以回复。不过,在提出问题之前一定要确保你已经仔细阅读过题目内容,并且已经完成了参考资料的学习哦~
第四步:提交代码
如果你觉得你的方案已经达到了题目的要求,可在相关 Repo(例如 tidb)的 master 分支上实现你的方案,并将代码以 GitHub Pull Request(简称 PR)的形式提交到相应的 GitHub Repo 上。 PR 要求关联已经被你 pick 的 issue, 关联方式需要 PR 描述中带以下内容之一:
- Issue Number: close #xxx
- Issue Number: #xxx
当 PR 提交后,可在 PR 的评论中 使用 “/cc @<mentor的github ID>” at Mentor 进行代码评审,Mentor 会尽可能在方案提交后的 48h 内完成评估,如果你想尽快推进你的 PR,可以在 slack 里私聊你的 Mentor。
PR 评分
同时,PR 一旦提交,系统会自动联系 issue 对应 mentor 给予 PR 预判评分,该预判评分将在本 PR 合并后进入你的账户。
第五步:代码评估及积分授予
评估规则:
- PR Reviewer 会对 PR 进行代码格式、代码功能和性能的 Review,获得 2 个以上 Reviewer 认可(即在 PR 中评论“LGTM”)的 PR
- SIG 的 committer 以上身份会将该 PR merge 到对应 repo 的主干。
- 代码合并后,PR 预判积分将进入你的账户。
另外,有些 bug-fix 的 PR 会被认定为需要 cherry-pick 到指定版本,Bot 和 Reviewer 会帮助进行这个步骤,在你的 PR merge 到 Master 分支后,Bot 会创建 cherry-pick 的 PR,我们也建议你关注并帮助解决这些 PR 的冲突。
第六步:积分
- 在特定 SIG 完成积分达到一定阈值后,可获得该 SIG 的 active-contributor,reviewer,committer 荣誉身份,这个将作为您在 TiDB 社区的身份标签,终身跟随。
- 从本赛季开始,所有挑战赛的积分都将会被累计起来,统一呈现到 TiDB community 社区贡献榜榜单中。
- 积分商城正在规划中,等商城准备完毕后,大家可以自由按需兑换,还请耐心等待。
学习资料
这里有 TiDB 精选技术讲解文章,帮助大家轻松掌握 TiDB 各核心组件的原理及功能。推荐学习 High Perfromance TiDB 课程,对 bug hunting 更有帮助。还有 数据库小课堂,帮助大家快速熟悉数据库知识,点击以上链接即可轻松获取。