Google Summer代码计划的资源。
你好!欢迎来到Stdlib的Google Summer Code(GSOC)资源存储库。
GSOC是一项全球计划,为在三个月内为开源项目贡献的新贡献者(年龄在18岁以上)提供了一个机会。 Google向贡献者支付了在开源社区的导师的指导下工作。 GSOC是学习,发展新技能,建立联系,获得与大型且经常分配的团队合作的经验,并在财务上为您的努力所付出的努力的绝佳机会。
在此存储库中,您将找到有关如何申请GSOC的信息以及可以作为GSOC项目的基础的潜在想法列表。
在计划过程中,GSOC贡献者预计将工作350小时(全职等效), 175小时(兼职等效)或90小时(短期等效)。默认时间表在3个月(12周)中运行,并有可能在更长的时间内分布。
程序开始日期不可谈判。所有GSOC贡献者都必须同时开始该计划。
为了使用STDLIB申请GSOC,您必须:
请记住,所有应用程序都必须遍历Google的应用程序系统,并且您必须在Google的网站上提交应用程序。如果您不在GSOC网站上提交申请,我们将无法接受您的申请。
GSOC的目的是为新贡献者加入和参与开源世界提供一种方式。最有可能被选中的贡献者是那些从事社区并希望在GSOC计划期间继续参与的人。总的来说,对于大多数项目而言,成为一个好的社区成员比成为一个好的编码员更重要。
交流。沟通可能是申请过程中最重要的部分。与导师和其他STDLIB开发人员交谈,在提供建议时聆听,并证明您通过将反馈纳入您的建议来理解他们的建议。未能合并反馈会大大降低您的成功机会。
阅读说明。提交建议时,请务必阅读(并重新阅读)所有说明。不要简单地提交简历,科学论文,演示文稿或其他不包含有关您要进行的项目的信息的文件。未能遵循指示可以保证导致提案拒绝。
保持专业。表达尊重并证明您将认真对待指导关系。这意味着当您收到反馈并始终评估Stdlib社区中每个成员的时间时,积极倾听。沟通不良和未能阅读和遵守指示表达缺乏尊重和缺乏对导师时间的考虑,没有任何导师希望与一位贡献者合作,他们没有表现出必要的专业精神来确保其项目的成功和他们作为Stdlib社区成员的个人成长。
如果您有疑问,请首先检查GSOC常见问题中是否已经回答了问题。如果您在咨询GSOC常见问题解答后仍然有疑问,则可以在Stdlib元素频道上联系。
您可以使用元素来征求初始项目创意的反馈,并在开始使用STDLIB代码库时获得帮助。请记住,在STDLIB论坛上越具体并清除您的问题,您就越有可能获得一个好的答案。开放式或模糊的问题不太可能得到有用的回应。
例如,一个好问题可能是
我对X项目感兴趣,并且我已经进行了一些研究,发现Y和Z似乎相关的问题。根据我的发现,已经实施了A,B和C,因此我想知道提出一个可以实现D,E和F的项目是否合理。
相反,以下问题太开放了,太模糊了,无法征求有意义的回应
我对X项目感兴趣。请帮助我对此进行努力。
接触元素时,请务必介绍自己,以便我们了解您。一些有用的信息要包括
在处理GSOC应用程序之前,请查看我们的想法列表,以查看您是否找到使您兴奋的项目。提供了现有想法的清单,以作为灵感,并指出哪些方向可能对stdlib有好处。
如果您确实找到了您想追求的现有想法,请务必在我们的元素频道中与我们联系以首先讨论!在申请申请之前,请务必询问这些想法,以获取有关已经实施的内容以及确切必须做什么的最新信息。
根据以下惯例,标签组织了思想列表:
优先事项
high :在我们的路线图中被认为很重要的想法。normal :不紧急的想法很早就可以很快。low :新颖或有趣的想法,但在我们的优先列表上很低。困难
1 :适合几乎没有JavaScript经验的人。2 :一个适合具有JavaScript工作知识的人的想法。3 :一个可能具有挑战性但易于管理的想法。4 :一个可能具有挑战性并具有雄心勃勃的目标的想法。5 :一个可能很难用几个未知数实施的想法。技术
javascript :涉及JavaScript编程的想法。至少所有想法都可能需要一些JavaScript。nodejs :需要使用node.js开发的想法。大多数(如果不是全部)想法可能需要使用node.js,因为node.js是测试,基准测试和本地开发的默认环境。c :一个涉及编程的想法。fortran :涉及在Fortran中编程的想法。这是从事Blas/Lapack绑定所必需的。html/css :涉及使用HTML和CSS的想法(例如,如果构建前端应用程序)。jsx/react :涉及与React JSX编程的想法(例如,如果在Stdlib网站上工作)。native addons :涉及开发node.js本机附加组件的想法。typescript :涉及在打字稿中编程的想法。优先,难度,技术和主题领域与接受想法的机会无关。所有想法都同样好,并且您被接受的机会仅取决于应用程序的质量。
项目长度
GSOC允许三个不同的项目长度: 90小时, 175小时350小时。每个想法都必须表明这个想法是否更适合90、175或350小时。
在某些情况下,我们可以通过扩展可以做什么的想法来将175小时的项目扩展到一个350小时的项目。同样,在某些情况下,只有一部分想法并将其余的用于将来的项目,就可以将350小时的项目缩短为175小时的项目。无论哪种情况,如果您想调整项目长度,请确保在我们的元素频道中与我们联系以首先讨论!
如果您想提交自己的想法,这也是欢迎的;只需确保首先向Stdlib指导您的想法即可!联系后,我们将通知您是否已经实施了这个想法,该想法是否需要足够的工作来持续GSOC计划的持续时间,如果这个想法需要太多工作以在GSOC期间有意义地追求想法在stdlib的范围内。未经请求的,无见的想法不太可能被接受。
最好的项目是您最感兴趣和知识渊博的项目。兴奋和能力是成功项目的两个关键要素,并有助于确保您的承诺和能力看到项目完成。因此,如果您对某些东西特别热衷,并且您相信与Stdlib的范围和目标保持一致,那么我们很高兴听到您的音调!
在与我们的元素渠道讨论并获得批准以提交您的想法之后,请打开一个问题,该问题使用Ideas问题模板来描述您的想法。
除书面建议外,我们还要求每个GSOC申请人编写一个补丁,并将其合并到主STDLIB存储库中。
在审查您的提案时,我们将您的补丁进行了大量考虑。提交一个或多个补丁是您最好的机会证明您有能力做建议中包含的事情。
提交补丁,
分叉stdlib存储库。
设置您的平台开发stdlib(例如,安装git,克隆您的叉子存储库,将其设置为跟踪远程上游stdlib存储库,安装依赖关系并初始化本地开发环境)。我们的贡献指南使您通过设置GIT和详细说明我们首选的开发方式。
请不要通过GitHub Web编辑器提交补丁。如果您的项目被接受,您将需要学习如何使用Git并在本地开发STDLIB。现在花点时间使用git并在本地开发stdlib可以增加成功的机会,并帮助您确定stdlib是否适合您。
在stdlib中找到不起作用,需要改进或将是有用的补充的东西。如果您需要灵感,请随时解决问题列表中的任何问题,这些问题对第一次贡献者有益。
除了问题外,在代码库中搜索FIXME或TODO 。您可以使用git grep "TODO"中的命令行中的grep 。
您也可以在stdlib repl中玩耍,并找到需要修复或可以实现的东西。
一旦找到某些问题,如果不存在问题,请在stdlib问题跟踪器上打开一个问题,描述了该问题和您提出的解决方案。
如果您的项目将使用JavaScript以外的其他语言(例如,C或Fortran),则应提交使用该语言的补丁,以证明您精通该语言。
请注意,您的补丁必须与代码相关,而不是文档。尽管始终欢迎文档修复程序,但它们无法满足补丁要求。
进一步指出,您的补丁不需要与您建议的项目相关,以满足补丁要求。为了熟悉您要处理的代码,您可能希望尝试在相同或相似的代码中修复相关的错误,但这不是补丁要求的一部分。
通过在GitHub上创建拉动请求来发布您的补丁以进行同行评审。您必须通过github提交拉动请求(例如,在问题上粘贴修补文件),因为这是我们查看您的代码并提供反馈的最简单方法,这是我们期望的是从事工作的贡献者GSOC项目。
您必须提交成功审核和合并以满足补丁要求的补丁程序。如果没有成功合并的补丁,我们不会考虑应用程序。
成功的补丁展示了您的技术水平和与Stdlib社区互动的能力。
在GitHub上创建了拉动请求后,STDLIB审阅者将查看您的代码并可能更改。您应该解决这些更改。
在整个开发和反馈过程中,您应始终在本地运行单元测试以验证预期的行为。
在审核期间,请耐心等待审稿人。由于GSOC,可能会有许多拉的请求进行审查,并且我们可能会慢慢审查所有拉的请求,尤其是如果它们靠近申请截止日期。强烈建议您在申请过程中尽早提交拉动请求,以便在申请截止日期之前为您提供合并补丁的最佳机会。
在首选应用程序截止日期之前合并补丁的同时,如果您的补丁仍在审核中,那很好。至关重要的是,您的补丁在接受截止日期之前合并。
您必须及时回复我们的反馈,以便在接受截止日期之前将补丁合并。
在您的申请中,请简要摘要迄今为止您对STDLIB的贡献,包括尚未合并的工作。这应该是拉的请求列表,并指出是否合并,关闭或仍在打开每个拉请请求。如果您在拉动请求之外做出了重大贡献(例如,审查别人的拉请求),则可以列出。
请注意,我们不会以任何形式忍受窃。开发应用程序时,请用自己的话写作。
尽管其他申请人可以公开讨论并提交有关同一想法的建议,但您不应从他们的建议中提取内容。您应该写并提出您认为是根据您认为合适的时间表确保成功项目的最佳行动方案。
如果我们检测到您的应用程序包含窃内容,我们将拒绝您的申请,而无需审查。
此外,尽管我们认识到,对于许多贡献者而言,英语可能不是您的母语,但请避免使用LLM(例如,ChatGpt等)。我们通常可以告诉个人何时依靠LLM来自动生成应用程序内容(和代码贡献!),以及对我们的信号是,您不能花时间撰写周到的申请,并且您可能不会是能够赢得我们的信任。
最好的候选人是那些周到,密切关注细节,渴望和愿意学习的人。
本文件大量借用
该文档可能会在创意共享归因于国际(CC BY-SA 4.0)许可下重复使用。