高开低走:我迟来的 OSPP 2023 纪事
前言
前几天(4/1/2024)收到了一封邮件,内容是这样的:
佬,想请教下,你的个人博客里,好像没找到ospp相关博文,所以发个邮件,看看你是否写了嘞
以下是你在暑期实习那篇博客的原文
“首先就是,我其实上半年一直在捣腾中科院开源之夏(OSPP)的社区项目意向申报,昨天(06/26)收到了中选的消息(当然这个内定的成分大些,就不吹了),因此暑假我的大部分时间可能会在忙着搞这个项目。有关我参加 OSPP 的详细信息等下半年 OSPP 活动结束了之后我再单独开一个博文来讲。”
原文是 2023 暑假日常实习进展及近况说明,在那篇文章的末尾我大概讲了讲那会儿我在干什么,其中就包括彼时正在进行的 OSPP 2023。然而如读者所见,在该文章发布将近一年,OSPP 2023 闭幕半年后的今天,你依然无法在这个博客站点中看到任何有关这篇本应诞生的“单独开一个博文来讲”博文的任何信息。在上述邮件的回复中,我也作了回答:
因为一些很坑比的原因,去年ospp没有完成结项,所以最后文章就没写TvT
而这个坑比的原因,则是因为由于“内定”,我提前就开始了代码的编写并在 ospp 规定的公布项目中选结果时间之前为社区提交了 PR,于是导致结项审查不通过,最后只能一分钱没拿给社区打白工😭😭😭。
但是一年后的今天,我突然意识到,其实结果不只是一件事情的全部,过程同样也可以令人愉悦,虽然这件事情的结果不好,但这并不能代表我没来过。基于这个理由,我打算时隔半年,补回这篇文章。由于时间过去的太久,部分时间点和事情已经记得不太清楚,只能描述个大概,还请读者海涵。
OSPP 是什么
或许你已经听说过 GSoC(Google Summer of Code) 的大名,如果你没有的话,那么 GSoC 和 OSPP(开源软件供应链点亮计划,俗称中科院开源之夏)其实都是由行业巨头或非营利机构主导,开源社区参与的有偿线上实习活动。对于参与者来说,首先需要选择心仪的开源社区,然后根据自己的意向参与贡献的项目提交项目提案(proposal),获得社区和主办方通过以后即可开始为社区进行贡献,完成贡献后提交结项报告,等待主办方审查,最终获得项目参与奖金。
对于 OSPP 来说,根据项目的难度不同,奖金分为两个档次:简单项目 8000 人民币,复杂项目 12000 人民币,作为对比,GSoC 的复杂项目奖金为 3000 美元。
在过去,OSPP 和 GSoC 都是面向学生的开源活动,而自 2023 年以后,GSoC 不再限制只能学生参加,而 OSPP 则没有变化。
OSPP 的整体时间线会比 GSoC 晚一个月左右,除了错峰进行的原因外,还和中国大学生暑假的开始时间较晚有关系。截至这篇文章的撰写日期(4/7/2023),GSoC 已经完成了项目的提案提交环节,而 OSPP 仍在开源社区申请参与环节。
我与 OSPP 2023 那些事
其实我也是去年年初得知有 GSoC 和 OSPP 这种东西的,彼时因为第一次参与没有经验,最终没有鼓起勇气撰写 GSoC 的项目提案(当时很想参加 Creative Commons 组织的 Refactor Licenses Chooser 项目,今年想参加 GSoC 结果正好赶上实习,又没抽出来时间参加),而 OSPP 则成为了我的另一个选择。总体来说,OSPP 的项目参与难度还是大幅低于 GSoC 的。
去 OSPP 的项目列表看了一圈,最后看到了一个叫做 Solon 的开源社区,这是一个用 Java 开发的类 Spring Boot 框架,声称可以提供比 Spring 更高的应用性能。
后来进群了解了一下,其实这个开源项目基本是由一个人在维护(其实绝大多数的独立开源项目都是主要由一两个人维护),而他们这个开源社区是先确定意向再提交项目申请给 OSPP,经过一番磋商以后,我选择了“为 Solon 框架增加配套的轻量级监控工具”这一 issue 作为我的参加项目。提交项目申请书后并经过审查后,我成为了这个社区唯一一个项目中选的学生。
为什么是唯一一个呢,这个社区本来提交了三个项目,也就是说按理来说有三个坑,然而另外两位其中一个失联了,另外一位 pr 都交了(同样,这也是不合规的),结果由于 OSPP 无法为该社区提供多于 1 个项目的资金,而社区(其实就是那一个人)也拿不出来那么多钱,最后就不了了之了。
无论怎么样,那会儿我也算是通过了项目申请。而经过俩月的开发,最终也是陆续提交了 PR 并合并到了主线(其实这种应用应该单拎出来的,不应该放到主仓库里,然而社区那边当时确实这么做了,后来倒是单独拎出来了)。然而在结项的时候,被主办方发现 PR 时间太早了,于是最终没有通过审查,没有完成结项。
在这里提醒大家,不要模仿博主的做法,不然你就会体会什么叫做“到手的鸭子飞了”。
如果你想看看我的项目提案和结项报告的话,你可以在下面自取(你可能会发现项目提案上面已经有一些代码实现了,这很正常,很多同学在申请项目的时候其实早就已经想好该怎么写了,也会写一些示例代码佐证自己的实现):
最后:半个过来人给想要参加 OSPP 或其他相关开源活动的同学的建议
首先,如果你对这个活动感兴趣,那就勇敢的去参加,不要胆怯,不要觉得自己不行;其次,提前和社区沟通很重要(当然有的活动或者社区不允许就另说了),可以通过社区留下的导师联系方式提前发送自己的简历给导师,确定意向;再次,社区会偏向于选择曾经参与过项目贡献的人,所以如果你已经提前选择了心仪的社区,不妨去看看有没有什么 first good issue 可以做,混混眼熟。
最后,一定要仔细阅读活动和社区的相关要求,不要像我一样,做个大怨种,给人打白工。
(完)
好文3连,欢迎回访(滑稽.)