OpenMLDB 暑期开源特别行动
OpenMLDB 暑期开源特别行动是 OpenMLDB 社区发起的线上动手实践活动,希望能够为高校的同学们提供一个体验开源氛围、提高动手能力、参与到 OpenMLDB 社区建设当中的契机。
(* OpenMLDB 社区保留活动最终解释权)
开源高阶任务申请步骤
领取任务
完成任务
中止任务
领取奖励
领取任务
在页面下方查看可供领取的高阶任务。
在相应 GitHub Issue 页面上查看任务详情,如果该任务尚未被分配到任何开发者,则表明该任务可以领取。
(可选)通过社区途径(邮箱 contact@openmldb.ai 或者微信群)和我们进行沟通,了解任务细节以及实现方案。
将你的简历,GitHub ID,所选取的高阶任务,以及开发计划(包含比如解决方案、时间点等),打包发送到 contact@openmldb.ai,邮件命名为“姓名_GitHubID_开源高阶任务领取”。注意每位申请者同一时间只能申请一个任务,只有第一个任务提交 PR 以后,才可以继续申请第二个任务。
社区将在收到申请邮件的 3 个工作日内给予回复,如果未收到回复,则默认为未通过审核。如果审核通过:
    a. 开发者发送邮件到我们的邮件列表 openmldb-developers@googlegroups.com,描述自己要承担的开发任务。注意该邮件对话将成为开发进度的汇报主题,后续每周一次的开发进度可直接回复该邮件。
    b. 开发者去相应的 GitHub Issues 页面留言 "Please assign this task to me."
    c. 社区将会将该 issue 分配给相应的申请者,其余开发者将不能再申请该 issue
    d. 如果申请者期望可以拿到第四范式实习证明,需要和第四范式签订劳务协议,将会通过邮件或者微信等渠道进一步沟通
开发任务过程中如果碰到任何问题,可以在微信群或者其他社区渠道和我们进行交流,请说明所领取的开发任务。
完成任务
开发者需要每周至少一次发送进度报告,让我们了解到项目进度。开发者可以通过回复上述“领取任务 - (5) a” 步骤的邮件,来填写相应进度,鼓励英文填写。
任务完成后,提交 PR,并记得在相应 issue 页面链接该 PR。
当 PR 被并入主分支,则任务成功完成,此时学生也可以继续选择另外感兴趣的任务。
中止任务
出现以下情况,则视为中止该任务,GitHub Issues 相应页面将会清除 assignee, 重新开放给其他申请者。
开发者可以在相应 issue 下留言,或者发送邮件到 contact@openmldb.ai 来申请主动放弃。
任务开发周期默认最多为四周(从申请者在 issue 下留言 "Please assign this task to me." 当天开始计算),如果开发者四周时间不能完成,可以和社区联系申请一次延期,具体由社区判定设置延期期限。如果一次延期内仍不能完成,将视为放弃该任务。
如果超过四周,但是开发者未和社区提出延期,则视为放弃任务。
开发过程中,视开发进度和质量,社区有权中止该申请者的开发任务。
领取奖励
请发送邮件至 contact@openmldb.ai,邮件命名为“姓名_GitHubID_暑期特别任务”,正文为领取奖励类别,任务奖励和邀请奖励领取邮件需分开发送。
领取任务完成奖励:解决 issue 的链接,以及有效收件人信息;如果有邀请人,务必附上邀请者的 Github ID、姓名及邮箱地址。
领取邀请者奖励:注明推荐成功者的 GitHub ID,以及有效收件人信息(* OpenMLDB 社区保留活动最终解释权)。同类任务奖励不可叠加,限领一次。
额外邀请者奖励
为感谢了解并喜爱 OpenMLDB 社区并且热爱技术分享与交流的开发者,我们将给积极践行开源精神的小伙伴提供额外的邀请者奖励。
被邀请者必须是第一次贡献到社区代码库,才能算做一个成功的被邀请者
被邀请者在领取任务完成奖励时,附上邀请者 Github ID、姓名及邮箱地址
邀请者奖励:邀请1人,社区将加送 IP公仔一只;邀请2人,社区加送 OpenMLDB 帽子一个;邀请5人,社区将加送 OpenMLDB 卫衣一件
实习任务
高可用测试用例迁移
用 Python 语言实现由于 API 变化导致未及时迁移的高可用测试案例迁移。
实习任务
基于 OpenMLDB 搭建使用案例
用Python, Java 或者其他开发者喜好的编程语言基于 OpenMLDB 搭建使用案例,该任务可以被多个开发者同时领取。
实习任务
为监控模块 Prometheus 的 exporter 添加单元测试用例和覆盖度报告
用 Python、GitHub workflow 和 Poetry build tool & shell script,为监控模块 Prometheus 的 exporter 添加单元测试用例和覆盖度报告 。
实习任务
支持正则匹配表达式 RLIKE
用 C++语言,参照 OpenMLDB 的内置函数开发流程,实现一个字符串正则匹配函数:RLIKE。
实习任务
API Server 支持 Parameterized Queries
用C++,参考apiserver其他接口与client(SQLRouter)的query API ExecuteSQLParameterized,实现apiserver的parameterized queries接口,以及查询结果数据的返回。
实习任务
OpenMLDB 离线增加 WindowColumnPruning 优化开关
用 Scala 或 C++语言,在Java/Scala侧新增开关,把是否开启该优化的功能暴露出去。
实习任务
ShowJobs 命令支持对返回结果进行倒序排序
用C++修改代码,保证“SHOW JOBS”命令返回的结果是倒序排序,也就是以Job ID为排序列从大到小排序。
实习任务
数据过期类型为 Latest 的表底层时序数据结构改为 list
用 C++将数据过期类型为Latest的表底层时序数据结构改为list。
实习任务
磁盘表 disk table 支持添加/删除索引功能
用 C++ 语言为磁盘表添加上AddIndex和DeleteIndex功能,以便用户对磁盘表也可以进行索引的添加和删除。
实习任务
支持聚合函数 STDDEV
用 C++,参照我们的内置聚合函数开发流程,实现一个STDDEV的聚合函数。
实习任务
SHOW COMPONENTS 查询支持展示 api server 信息
使用C++语言,实现 SHOW COMPONENTS 查询支持展示 api server 信息。
实习任务
扩容后数据库分片迁移工具
用 Python, Shell 或者其他语言设计更加友好的独立数据库分片迁移工具,实现一键的手动或者自动化分片迁移。
实习任务
一键自动化部署工具
用Python, Shell 或者其他语言均可,通过串联和封装现有的命令,来实现一个更为易用的一键自动化部署工具。
实习任务
图形化的演示和试用平台
通过Java 或者 Python(用于调用 OpenMLDB SDK 接口),前端开发技术栈,基于我们的典型使用流程,搭建一个图形化的试用演示平台。
实习任务