开源之夏 2023 | 欢迎报名openEuler sig-Compatibility-Infra和sig-CICD开发任务
开源之夏是中国科学院软件研究所联合openEuler发起的开源软件供应链点亮计划系列暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。
openEuler社区目前已上线94个项目!欢迎各大学子按照自己感兴趣或擅长的方向进行申请,扫码可查看全部项目。
今天给大家带来sig-Compatibility-Infra和sig-CICD的任务介绍,这两个SIG共发布了10个项目,涉及操作系统,AI和开发者工具等技术领域,项目任务覆盖面广,难易程度适中。欢迎大家参与到项目中,我们将为大家提供丰富的学习资源和技术指导 。
项目1:基于openEuler的Chatbot文本机器人服务
项目描述:
通过语料训练、"话槽"关键字、知识库等,创建一个基于openEuler的Chatbot文本机器人服务,机器人收集对话中的关键字:如医院预约/预定机票:收集姓名、身份证、出发时间、航班号、支付信息 等,实现文本机器人对话(网页或手机App的在线客服),如留资机器人、套电机器人、营销机器人、在线客服机器人等文本交互场景
产出标准:
1、需要做出一个基于openEuler的Chatbot文本机器人
2、做出的Chatbot文本机器人要能收集对话中的关键字:如医院预约/预定机票:收集姓名、身份证、出发时间、航班号、支付信息 等,实现文本机器人对话(网页或手机App的在线客服),如留资机器人、套电机器人、营销机器人、在线客服机器人等文本交互场景
技术要求:
1、承接本项目需要初步具备以下开发技能:
自然语言处理(NLP):理解自然语言处理的基本概念和技术,包括分词、词性标注、命名实体识别、句法分析、语义分析等。
机器学习:掌握机器学习的基本概念和技术,包括监督学习、无监督学习、半监督学习、强化学习等。
深度学习:了解深度学习的基本概念和技术,包括神经网络、卷积神经网络、循环神经网络、自编码器等。
Python编程:熟练掌握Python编程语言,包括Python的基本语法、数据结构、函数、模块、类等。
TensorFlow或PyTorch:掌握TensorFlow或PyTorch等深度学习框架的使用,包括模型构建、训练、调试等。
数据处理和分析:熟练掌握数据处理和分析的基本技术,包括数据清洗、数据预处理、数据可视化等。
云计算:了解云计算的基本概念和技术,包括云服务器、容器、虚拟化等。
软件工程:了解软件工程的基本概念和技术,包括代码管理、测试、部署等
2、承接本项目需要精通以下编程语言:
Python:Chatbot文本机器人是基于Python编写的,因此需要掌握Python编程语言。
TensorFlow:Chatbot文本机器人使用TensorFlow作为其深度学习框架,因此需要掌握TensorFlow的使用。
PyTorch:Chatbot文本机器人也可以使用PyTorch作为其深度学习框架,因此需要掌握PyTorch的使用。
JavaScript:Chatbot文本机器人需要Web开发,需要掌握JavaScript编程语言。
HTML/CSS:Chatbot文本机器人需要Web开发,需要掌握HTML和CSS。
SQL:如果需要将Chatbot文本机器人与数据库集成,那么需要掌握SQL编程语言
**项目导师:**lschinasoft@126.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z4BM?from=project-issue
项目2:基于openEuler开发人脸识别服务
项目描述:
人脸识别(Face Recognition Service,简称FRS)是一种在数字图像中找到人脸位置和大小的计算机技术。可以用于身份识别、视频监听、人机交互 人脸识别服务 和图像数据库管理等场景
产出标准:
1.功能完备:人脸识别服务应该能够准确地识别输入的人脸,并且支持多种人脸识别算法以满足不同的需求。
2.响应速度:服务需要具备高效的响应速度,能够在短时间内完成人脸识别任务
技术要求:
1.熟悉openeuler平台,熟悉openEuler的安装、配置和使用
2.熟悉人工智能框架,
3.需要熟悉数据库,使用数据库存储人脸特征向量和对应的人脸信息,如MySQL、MongoDB等
4.至少熟练一种代码开发
项目导师:
zhuofeng2@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z44R?from=project-issue
项目3:实现jobs工作流服务
项目描述:
为方便快捷的实现pipeline的workflow能力。系统为用户提供一个简单定义的yaml,用户通过编写yaml,进行job的执行环境及依赖关系定义。
服务端读取此workflow的yaml后,按照其中的描述,实现环境准备,任务下发,依赖等待。(包括串行执行,并行执行,参数矩阵解析)
其中 job是指:用于执行一组动作,在同一个环境下运行,是一个基本的资源调度单元。
产出标准:
1、一个yaml的解析服务,能够将yaml的描述转换为一组具有依赖关系的jobs,并按照jobs组成的依赖关系进行任务下发;
2、基于下发job的执行结果,决定后续任务的执行内容;
3、保存pipeline的最终结果,并能够查询到各个job的执行状况;
技术要求:
1、熟悉es,etcd的基本操作;
2、熟悉rest api的基本操作;
3、了解dag图的构建及执行;
项目导师:
xiasenlin1@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z4S0?from=project-issue
项目4:实现git-mirror分布式服务
项目描述:
github限流严重,我们需要建设大规模本地的仓库,并对远程仓库进行按需/周期性的同步。
如果高效的实现软件仓同比,怎样在受限的条件下给定软件仓的同步策略变得尤为重要;
产出标准:
1、对一组git仓库进行按需/周期性同步,并基于软件包同步的实际情况为软件包设置不同的同步策略,保障在拉取受限的情况下,高效的实现软件仓同步;
2、完成当前https://gitee.com/compass-ci/upstream-repos的软件包同步;
技术要求:
1、了解git的常用命令;
2、熟悉gitee/github的日常操作;
3、熟悉多任务分发的分布式能力;
项目导师:
caoxl78320@163.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z4OM?from=project-issue
项目5:自动生成操作系统rootfs
项目描述:
操作系统开源社区或OSV厂商通常会提供iso系统镜像, 此镜像需要经过安装才能够使用,过程较长不利于测试环境的快速准备。
生成镜像对应的rootfs,可以快速加载系统环境,提高测试效率。
产出标准:
1、使用virt-builder实现生产rootfs,并能够使用qemu进行加载验证;
2、适配openEuler,centos , debian,ubuntu, fedora 。
技术要求:
1、熟悉linux的基本操作;
2、熟悉qemu基本用法;
项目导师:
duanpengjie@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z4CG?from=project-issue
项目6: 绘制job的metrics随时间变化的曲线图前端页面
项目描述:
测试任务执行后,对测试结果进行分析时,无法直观的获取到测试过程中各个资源的使用情况,快速高效的获取到执行过程中的资源使用,能够帮助开发者快速定位到问题;
产出标准:
1、输出前端页面,读取result root, 绘制job内的metrics随时间变化的曲线图
2、一个页面上或在一个图中,有效的展示出 多个job的metrics;
3、支持1000+metrics的展示;
技术要求:
1、熟悉vue前端框架开发;
2、了解rest api调用;
3、熟悉Echarts等图标库;
项目导师:
wanglin199@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6Z4VG?from=project-issue
项目7:软件包上游状态监控工具
项目描述:
背景介绍:
在软件开发过程中,开发团队需要关注软件包的上游状态,以便在有更新时及时更新软件包,确保项目的稳定性和安全性。为了实现这个目标,我们需要开发一个工具,能够从软件包的spec文件中提取上游仓库的源码获取地址,并生成一个包含某些必需字段的yaml配置文件,以便其他工具或脚本使用。
任务描述:
开发一个自动化工具,以提取软件包上游仓库地址并生成 YAML 配置文件。工具应验证获取到的地址的有效性,以确保准确性。此外,应维护一个软件包名称到上游仓库地址的映射表,并通过分析https://search.oepkgs.net以及https://gitee.com/src-oepkgs后端可获取的用户反馈,以进一步提高工具的准确性。
为工具开发一个简单的用户界面,方便团队成员使用。
目前情况:
目前,团队主要通过人工方式检查软件包的上游状态,效率较低且容易出错。没有一个统一的工具来帮助团队成员监控软件包的上游状态。
设计逻辑:
工具将首先尝试从软件包的 spec 文件中提取上游仓库地址。如果未能找到有效地址,工具将在开源软件托管平台上搜索软件包名称。获取到的地址将进行验证,然后生成 YAML 配置文件。工具还将维护一个映射表,并接收用户反馈,以提高准确性。
通过联调测试https://search.oepkgs.net的软件包详情页面的上游状态界面,确保用户及团队成员能在https://search.oepkgs.net页面上方便地查看和管理软件包的上游状态。
产出标准:
1、能够从 spec 文件和开源软件托管平台上获取软件包上游仓库地址的自动化工具。
2、工具能够验证获取到的地址的有效性,确保准确性,https://gitee.com/src-oepkgs下共有3w+的软件包源码仓,最终工具所维护的映射表要实现100%的准确性。
3、自动生成的 YAML 配置文件,包含软件包上游仓库地址和其他相关信息(YAML配置文件的设计可参考https://gitee.com/openeuler/openEuler-Advisor)。
4、维护一个软件包名称到上游仓库地址的映射表。
5、用户反馈和问题报告处理机制,以提高工具的准确性。
技术要求:
1、熟练掌握一种编程语言,如 Python、Ruby 或 Go。
2、熟悉文本解析和处理库,如正则表达式。
3、熟悉 YAML 或其他配置文件格式。
4、了解软件包管理系统和 spec 文件格式。
5、具备与开源软件托管平台(如 GitHub、GitLab)进行搜索和数据提取的能力。
6、了解软件开发和测试的最佳实践,以确保工具的稳定性和可靠性。
项目导师:
liping136@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YTT4?from=project-issue
项目8: 提取debian软件包的控制信息生成SPEC文件
项目描述:
为 openEuler 引入debian的软件包,需要把deb形式的软件包,转成rpm形式的软件包。而生成rpm软件包,spec文件是必须项。
产出标准:
1、生成SPEC文件需要符合规范,重点关注多子包的情况
2、软件通过SPEC文件能够在openEuler完成构建
技术要求:
1、熟悉ubuntu操作系统
2、编程语言 python/ruby
项目导师:
wangzheng156@huawei.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YYGK?from=project-issue
项目9:Gitee组织仓oepkgs的门禁搭建与搬迁
项目描述:
门禁介绍:oepkgs (Open External Packages Service) 是一个为 openEuler 操作系统以及其他 Linux 发行版提供软件包服务和容器镜像服务的公共社区。为了保证软件包质量,构建者在gitee提交PR时,会自动触发门禁执行编码规范检查,最后将门禁检查结果返回到PR评论中,帮助开发者定位问题。
任务描述: 将openeuler仓库中的门禁代码功能应用至src-oepkgs组织仓中。
目前情况: 软件包源码静态检查部分已经完成,剩余部分是进行软件包源码的编译与安装测试。
设计逻辑:
1、部署x86-64和aarch64架构下的k8s集群
2、将集群配置为Jenkins slave
3、Jenkins master 运行在x86-64架构k8s集群内
产出标准:
能够正常使用门禁功能,将门禁检查结果返回到PR评论中
技术要求:
1.熟悉python开发
2.熟悉linux操作系统安装部署
3.熟悉k8s与jenkins
项目导师:
15757101689@163.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YRL4?from=project-issue
项目10:openEuler性能看板系统前端优化及功能完善
项目描述:
openEuler性能看板系统为开发者提供了一个查看不同系统、不同版本性能测试数据的平台。该系统提供多种数据展示形式和可视化界面,为系统性能优化工作提供了有力的支持。本系统从后端ES数据库中获取系统测试数据,并在前端通过JavaScript进行数据组织、数据分析和可视化展示。目前本系统主要功能已开发完成,但仍存在需要优化的空间,需要请参与者完成以下工作:
1、前端数据组织、数据分析相关逻辑的梳理和优化;
2、为前端数据组织、数据分析相关代码编写完善的测试用例;
3、功能模块优化或开发。(此部分需要与项目committer讨论确定具体的功能和范围)
产出标准:
1、前端数据组织、数据分析相关逻辑的优化代码。代码符合编码规范,功能解耦。
2、前端数据组织、数据分析相关逻辑的梳理文档。文档以文字+图表的形式清晰的给出目前系统中主要数据处理过程(性能基线和对比检索模块)的流程。
3、性能基线和对比检索模块的测试用例完善。测试用例需最大化覆盖可能的情况,并提供自动化运行脚本。提供完善的用例文档。
4、功能模块优化代码。代码符合编码规范,功能解耦。如有新开发的功能还应提供程序设计文档。(此部分需要与项目committer讨论确定具体的功能和范围)
技术要求:
1、具备较好的前端开发及可视化开发能力。可熟练使用JavaScript进行开发、了解Echarts框架。
2、熟悉TypeScript,能使用Vue3 + TypeScript进行开发。
3、了解ElasticSearch的使用方法。
4、有较好的英语和自学能力,能自主阅读国内国外的技术文档解决遇到的困难。
项目导师:
xyn430430@hotmail.com
项目主页:
https://gitee.com/openeuler/open-source-summer/issues/I6YWGH?from=project-issue
活动日程及参与方式
目前正处于学生注册、沟通导师、提交项目申请环节。
各位学生如果对上述项目感兴趣,欢迎扫码加入交流群。
若群已满可添加openEuler小助手微信"openeuler123"进入【开源之夏|openEuler交流群】,请备注【开源之夏】噢~