开源之夏是中国科学院软件研究所联合openEuler发起的开源软件供应链点亮计划系列暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。
今天给大家带来sig-infrastructure的任务介绍,sig-infrastructure 本次发布了9个项目,涉及操作系统,开发工具,AI等领域。欢迎大家参与到感兴趣的项目中,我们将为大家提供丰富的学习资源和技术指导 。
项目1:pyporter支持打包pyproject的项目
项目描述:
pyporter目前不支持打包以pyproject.toml格式打包的python项目
产出标准:
pyporter能够支持打包包含pyproject.toml的项目,并在EUR中完成500个软件包的自动打包
技术要求:
python, rpm打包
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z2YK?from=project-issue
项目2:问答机器人NLP训练语料收集整理
项目描述:
目标:使用爬虫,人工智能等方式获取、整理openEuler业务相关的资料,扩充小智语料库。
1、爬取openEuler官方gitee仓中的可作为有效问答的issue并已表格存储;
2、爬取openEuler官方gitee仓中的md文档,并生成一段文档的导语;
3、针对2中获取的文档,使用人工智能进行切片,将文章内容生成问答对,并以表格形式存储;
4、为已有问答打标签,比如‘操作系统’、‘搬迁工具’等,借助人工智能模型进行分类。
产出标准:
代码仓中进行代码提交,完成上述项目表述中的功能,具体可在任务接受后和导师一起确定。
技术要求:
1、熟悉python/go/java等开发语言其一;
2、有一定的nlp基础
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YZS9?from=project-issue
项目3:优化EulerLauncher镜像管理相关功能
项目描述:
优化EulerLauncher镜像管理相关功能:
EulerLauncer是由openEuler社区技术运营团队及基础设施团队孵化的开发者工具集,通过对主流桌面操作系统中的虚拟化技术(LXD、HyperV、Virtualization framework)等技术进行有机整合,使用openEuler社区官方发布的虚拟机、容器镜像,为开发者在Windows、MacOS、Linux上提供统一的开发资源(虚拟机、容器)发放和管理体验,提升主流桌面操作系统上openEuler开发环境使用的便利性和稳定性,有效提升开发者体验。
EulerLauncher支持镜像下载及镜像导入功能;
1、当前镜像导入功能仅支持导入*.qcow2.xz格式的镜像,无法导入其他格式镜像,为EulerLauncher添加qcow2等其他主流镜像格式导入功能;
2、优化当前EulerLauncher镜像下载、导入相关流程及用户响应,提升用户体验;
3、增加虚拟机快照功能(为当前虚拟机打快照,产生一个当前状态的镜像),导出Python/Go/Java等主流编程框架开发镜像
产出标准:
1、为EulerLauncher实现上述功能
2、提供完善的编译、安装、使用指导
技术要求:
python语言基础
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YUCL?from=project-issue
项目4:为EulerLauncher在Windows平台上添加Qemu后端支持
项目描述:
为openEuler跨平台统一开发环境管理工具EulerLauncher添加UI界面
EulerLauncer是由openEuler社区技术运营团队及基础设施团队孵化的开发者工具集,通过对主流桌面操作系统中的虚拟化技术(LXD、HyperV、Virtualization framework)等技术进行有机整合,使用openEuler社区官方发布的虚拟机、容器镜像,为开发者在Windows、MacOS、Linux上提供统一的开发资源(虚拟机、容器)发放和管理体验,提升主流桌面操作系统上openEuler开发环境使用的便利性和稳定性,有效提升开发者体验。
EulerLauncher在Windows上当前仅支持Hyper-V后端,Hyper-V需要Professional版本支持,对普通版用户并不友好;QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,功能强大,可以提供跨平台的全虚拟化支持(https://www.qemu.org/download/#windows);通过在Windows上添加EulerLauncher的QEMU后端支持,可以为非Professional用户提供便利的openEuler虚拟机发放能力。
产出标准:
1、实现EulerLauncher Windows平台上Qemu后端支持
2、提供完善的编译、安装、使用指导
技术要求:
1、python语言基础
2、了解QEMU基本使用
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YUAA?from=project-issue
项目5:在openEuler中引入ONNXRuntime+昇腾后端软件包
项目描述:
ONNXRuntime是微软开源的ONNX模型推理平台,是目前业界主流的通用AI推理平台,目前已官方支持昇腾硬件后端。本项目要求开发者在openEuler上完成ONNXRuntime+昇腾场景的编译构建和功能测试。保证ONNXRuntime在openEuler上原生可用,并制作对应的RPM软件包,引入openEuler 23.09创新版中。
产出标准:
1、在openEuler上完成ONNXRuntime+昇腾后端的编译和功能测试,发现的问题提交issue到onnxruntime社区并提交PR修复。
2、在openEuler中建立onnxruntime仓库,并引入onnxruntime最新版的rpm spec,保证软件包构建成功,若发现相关软件包依赖问题,也需要一并刷新和修复。
技术要求:
1、熟练掌握C/C++编程语言
2、了解并熟悉AI训练、推理的相关概念和技术
3、加分项:掌握python编程语言、了解熟悉RPM软件包制作、有ONNXRuntime使用经验。
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YTQZ?from=project-issue
项目6:为EulerLauncher添加UI界面
项目描述:
为openEuler跨平台统一开发环境管理工具EulerLauncher添加UI界面
EulerLauncer是由openEuler社区技术运营团队及基础设施团队孵化的开发者工具集,通过对主流桌面操作系统中的虚拟化技术(LXD、HyperV、Virtualization framework)等技术进行有机整合,使用openEuler社区官方发布的虚拟机、容器镜像,为开发者在Windows、MacOS、Linux上提供统一的开发资源(虚拟机、容器)发放和管理体验,提升主流桌面操作系统上openEuler开发环境使用的便利性和稳定性,有效提升开发者体验。
EulerLauncher当前使用CLI做为客户端,本题目要求为EulerLauncher开发可跨平台使用(Win、MacOS、Linux)的UI界面
产出标准:
1、实现美观、好用的EulerLauncher UI界面
2、提供完善的编译、安装、使用指导
技术要求:
1、python语言基础
2、UI设计及开发
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YGL3?from=project-issue
项目7:为EulerLauncher在Hyper-V后端上支持虚拟机复杂操作
项目描述:
为EulerLauncher在Hyper-V后端上支持虚拟机复杂操作
EulerLauncer是由openEuler社区技术运营团队及基础设施团队孵化的开发者工具集,通过对主流桌面操作系统中的虚拟化技术(LXD、HyperV、Virtualization framework)等技术进行有机整合,使用openEuler社区官方发布的虚拟机、容器镜像,为开发者在Windows、MacOS、Linux上提供统一的开发资源(虚拟机、容器)发放和管理体验,提升主流桌面操作系统上openEuler开发环境使用的便利性和稳定性,有效提升开发者体验。
EulerLauncher当前仅支持虚拟机增删改查的基本功能,本题目希望为EulerLauncher在Windows + HyperV后端上提供包括虚拟机启动、停止、挂载新硬盘的功能;同时新增创建虚拟机规格(cpu/ram/disk等)的功能,用于控制创建虚拟机的规格。
产出标准:
1、实现EulerLauncher在Windows+HyperV后端上的上述功能
2、提供完善的编译、安装、使用指导
技术要求:
python语言基础
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YUEK?from=project-issue
项目8:为EulerLauncher开发VSCode插件以实现自动化开发
项目描述:
为EulerLauncher开发VSCode插件以实现自动化开发
EulerLauncer是由openEuler社区技术运营团队及基础设施团队孵化的开发者工具集,通过对主流桌面操作系统中的虚拟化技术(LXD、HyperV、Virtualization framework)等技术进行有机整合,使用openEuler社区官方发布的虚拟机、容器镜像,为开发者在Windows、MacOS、Linux上提供统一的开发资源(虚拟机、容器)发放和管理体验,提升主流桌面操作系统上openEuler开发环境使用的便利性和稳定性,有效提升开发者体验。
VScode全称是Visual Studio Code,是微软推出的一个跨平台的编辑器,能够在windows、Linux、IOS等平台上运行,通过安装一些插件可以让这个编辑器变成一个编译器。VSCode支持C++、Python、Java、C#、Go等多种语言,功能强大、插件丰富并且启动速度极快;通过为EulerLauncher添加VSCode插件支持,可以实现VSCode代码开发,EulerLauncher上代码测试的openEuler原生开发体验,极大方便openEuler开发者。
产出标准:
实现EulerLauncher的VSCode插件,实现代码自动同步,虚拟机自动拉起,按照配置脚本自动测试等功能
提供完善的编译、安装、使用指导
技术要求:
python语言基础
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YUGK?from=project-issue
项目9:GitHub 与其它 Git 服务双向同步
项目描述:
当前开源社区主要是使用 GitHub 进行开源协作,协作的模式主要是依靠 ForK/PR 模型,优秀的开发者体验和大量免费资源的投入,使得 GitHub 具备虹吸效应的能力,成为整个开源社区的枢纽。当然很多企业选择使用不同开源项目(包括 GitLab 、Gitee、Gitea 等), 在公司内部搭建独立的代码管理系统。当公司内部代码开源后,就出现了代码在公司内部和 GitHub 同时存在的问题,随着时间推移必然形成两个住分支而无力维护。
为了解决这个问题, 本项目需要实现 GitHub 和内部代码仓库之间的双向同步,不管是外部贡献者的代码 PR ,还是内部代码仓库的提交都可以及时同步到另一侧以两侧保持一致。内部代码部署方案不确定,外部 GitHub 服务相对确定,需要项目设计的时候要保持兼容,能够实现面对多种 Git 服务实现双向同步。
双向同步的内容仅限于代码、PR 和 Issue 三种类型数据,系统使用 Rust 编程语言开发,使用本地数据库缓存。
产出标准:
1、分析 GitHub 授权机制和 API 对于代码仓库、PR 和 Issue 的实现机制
2、设计兼容性的接口,能够对不同的目标系统实现双向同步
3、以 Vecel 服务为部署的目标系统,支持容器化部署
4、输出英文的设计文档
技术要求:
1、对 Rust 编程语言比较了解,有一定的 Rust 开发经验
2、英语熟练
项目导师
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YJ2N?from=project-issue