一般信息
本页是以下信息的中心点软件遗产参与谷歌代码夏令营2019年计划。
谷歌代码之夏是一项计划,谷歌向学生支付津贴,让他们在(北半球)夏季从事自由软件项目,如软件遗产。每个学生都与社区的导师一起完成一个软件项目。
接受的项目
我想以学生身份参加
伟大的!,我们很高兴您有兴趣为软件遗产做出贡献,我们期待着共同努力。
前提条件
以下先决条件适用于软件遗产GSoC项目:
- 蟒蛇3是我们选择的语言,你应该流利地使用该语言
- 吉特是我们的版本控制系统的选择,您应该熟悉它才能应用
- 其他先决条件取决于您将从事的项目;查看项目描述以了解详细信息
申请之前
以下是申请前应遵循的步骤,以确保您充分了解我们在Software Heritage所做的工作以及我们的工作方式:
- 关注我们的入门指南:它将确保您可以在本地运行存档的(小)副本并将源代码摄入其中
- 在我们的发展锻造
- 熟悉我们的代码审阅工作流
- 对我们的任何一个进行简单更改软件组件并将其作为差异按照上述工作流进行代码审查。简单的黑客攻击和Web用户界面这些问题是很好的解决方案,但您可以随意提交任何您认为有用的补丁。
应用程序中要包含的内容
确保您的应用程序包含以下信息:
- 描述特定项目你想继续努力。你想实现什么?为什么它很重要?为什么它对软件遗产有用?该项目可能是我们在下面准备的项目想法之一,也可能是您希望为软件遗产贡献的其他内容。你的源代码存档让我们大吃一惊!
- 详细说明您的工作计划:简要描述您计划如何进行项目,包括以下列表可交付成果和a时间表你希望他们什么时候能来。
- 包含对的引用差异您在申请前提交(请参阅上面的“申请前”部分)。
创意列表
下面你可以找到一个项目想法列表,这些想法是规模合理的GSoC项目。不过他们只是建议,不觉得如果没有适合你口味的,就不得不选一个能力。请随意提出其他您感到兴奋的事情这有助于改进软件遗产档案:我们很乐意考虑一下!
提高归档覆盖率
软件遗产旨在存档所有公开可用的软件源代码。我们自然会从大多数软件所在的位置开始今天很容易获得:GitHub上的git存储库。
随着Software Heritage的增长,我们正在逐步增加归档覆盖范围扩大我们存档软件的来源;当前列表已爬网的源列在主存档页面如你所见,我们已经建立了归档Mercurial存储库、Debian包、,PyPI包等等。
进一步扩大档案覆盖范围非常适合GSoC项目。
实际上,要扩大归档覆盖范围,需要两种软件组件要实现的:lister和loader。
列表器是爬网软件API的组件伪造品(例如,Bitbucket,Gitorious、Sourceforge……)或包管理器(维护大列表通过图书馆.io)并返回软件列表可以在里面找到。见官方列表器文档对于更多详细信息。
装载机获取软件包(tarball、Git存储库、Python包,…)并将其加载到Software Heritage中与存档匹配数据模型.
而列表者回答的问题是“所有可用的存储库都在哪里”npm.org?”,加载程序解决了“如何加载我下载的NPM包成为软件遗产?“问题。
编写缺少的列表器或加载程序是扩展覆盖软件遗产档案!请随意提出一个(或多个)列表器或加载程序的实现缺少。您可以查看我们的建议框对于代码到归档,或提出您最喜欢的缺失锻造或包存储库。
从存档内容中挖掘信息
除了存档之外,Software Heritage还对检索到的源代码进行索引工件,以便对档案和科学研究进行语义搜索。
索引可以在单个文件级别进行(例如,检测编程文件所用的语言或其标题中声明的许可证),或更粗粒度的粒度(例如,声明的元数据最多给定项目的最近存档版本)。
许多索引是当前支持,例如:
- 文件级挖掘:
- MIME类型检测(使用libmagic)
- 许可证检测(使用FOSSology/nomossa)
- 语言检测(使用Pygments)
- ctags提取(使用通用ctags)
- 项目级挖掘:
- Ruby gemspec元数据
- Python PKG-INFO元数据
- Maven pom.xml元数据
- NPM包.json元数据
编写额外的索引器,从存档源中提取更多信息欢迎使用该代码,该代码将构成一个合适的GSoC项目。
指定要进行的数据挖掘类型!
要获得灵感,您可以查看图书馆.io,作为大多数包格式/包管理器支持专用的表达方式元数据,到目前为止,我们只支持其中的一小部分。但不要把你的野心限制在那些你想要的任何类型的数据提取/挖掘上在档案上做就行了。
改进和扩展存档Web UI
您可能已经知道,软件遗产档案可以是在网上浏览. The代码为它供电接口是一个Django应用程序,它还实现了Web API.
可以对存档Web界面进行一些改进伟大的GSoC项目,一些激发您胃口的想法:
- 改进移动设备和浏览器上的导航
- 添加新的源代码搜索条件并改进搜索界面
- 添加面向开发人员的功能,例如源文件历史记录、指责/赞扬界面、浏览器内编辑(带补丁下载)。。。
- 改善可达性
- 添加缺少的API端点(说出你最讨厌的!)
- 使用添加端到端测试硒
研究实习
对于更倾向于研究的学生,我们还保留一份单独的列表实习.任何主题都是一个可行的GSoC项目。
联系人
鼓励GSoC学生使用标准开发沟通渠道与软件遗产社区联系,即:
查看我们的开发信息页了解更多详细信息。
时间表
见官员谷歌代码夏令时.