2024开源之夏参与经验总结
背景
最近参与了2024年中科院举办的开源之夏活动,完成了字节跳动开源的Godel Scheduler的”基于 Godel Scheduler 实现应用亲和/反亲和以及均匀分布功能“的项目。这里做一个经验贴,希望能帮助到后面想要参与到这个项目中的人来。
项目报名
下面这个是2024年整体的一个活动时间。
我印象中在4月29号之前就已经在陆陆续续放出会参与到开源之夏活动中的项目了,所以可以在此期间多多关注一下,然后提早做准备。
我个人是在5月初就基本决定了要做哪几个项目,然后优先选择了其中一个最想做的来做准备,选择的时候主要是参考哪一个与我现有的研究规划最为接近同时又是在力所能及的范围内的,我最后选择的godel-scheduler的项目虽然是一个比较新的开源项目,但是我之前就已经有读到过这个项目的论文,并且我个人也比较相信字节的背书(事实证明字节的人确实也很技术过硬,都很nice)。基本确定之后我就开始做了相关的准备工作,首先去恶补了一下k8s调度器的相关知识并开始阅读源码,并且正好也将其整理成了博客,然后尝试部署使用了godel-scheduler。然后我是5月15号就去主动发邮件联系了项目的导师,做了一番自我介绍以及对项目的青睐,不过其实当时导师也只是回了一下感谢关注,后面有信息会周知。据我所知有些项目的导师你在联系的时候会交流的比较热烈,会进一步确定双方的意向。可能还是主要看导师的习惯,如果导师回复的没有那么热烈也不一定是没机会,集中精力去准备就好了。
后面正式申请的时候需要按要求填写一份个人简历和项目申请书,项目申请书是会公开出去的,需要注意不要在里面写个人隐私。项目申请书的内容也是仅供参考,个人感觉把自己的预研工作写清楚,展现自己有完成这个项目的能力就行了,像里面写的时间规划后面也是可以灵活调整的。
本来想要申请两个项目的以保底,不过奈何精力不足,就直接all in到一个项目中了。
项目开发
开源之夏官方公告中有说这些项目是需要一整个暑假全勤去搞,但是实际上据我观察大部分任务可能并不需要这么多时间。像我当时暑假是实习+实验室项目与论文+开源之夏并行的,实际上多肝肝也还是来得及(就是后期可能会有点点赶)。
我是当时花了大概一个星期完成了一个初步版本,然后在8月初就提了一个pr,然后本来想着是等着有人在下面给我提改进意见,然后继续改的。但是实际上一直没人理,不过其实也有我当时因为比较忙所以想先缓缓的原因,然后后面到了9月初我去主动邮件联系了导师,然后导师帮我拉了一个飞书群,让另外一名正式员工来指导我。
当时其实本来感觉已经开发的差不多了,但是后面交流下来发现自己还是对很多地方理解的不是很彻底,没有把项目与原生k8s不同的地方兼顾到,所以后面又改了很多。
值得注意的是虽然上面写的项目开发的时间是在9月30号,9月30号也确实就需要上传结项项目书了,但是10月份其实还是可以继续在pr上commit,所以实际上开发是可以一直推进到10月底。我实际上也一直干到了那时候,也多亏后面不在实习了,不然肯定干不完了。所以个人感觉还是要去尽早联系导师,多多沟通,预留足够的时间,导师确实能够在开发过程中给予很多的指导。
还有一个需要提前注意的点,就是开发过程中的commit提交需要使用个人注册的学校邮箱,还需要把github的邮箱隐私模式关掉,我当时忘记关了,所以后面还发了份邮件过去说明这个事情。
项目结项
项目结项需要写一个结项报告,主要就是把完成了什么事情写出来,这个只要和导师那边协商好了就行不是太大的问题,主要还是看开发进度。我当时实际上最后还是差一个小功能没有彻底完成,所以就先合到了主项目的一个分支,然后后面11月才把功能彻底完成,提交了一个新的pr上去。
最后结项通过之后要记得去填写银行卡信息。
导师还可以在结项后去帮忙申请优秀学生,我是当时申请了最具潜力奖,祈愿一个能过~