目录
目录README.md

赛题题目:泛在开源操作系统第三方软件包自动化升级工具

赛题说明:

当前的操作系统功能日益复杂,为了实现快速迭代和创新,操作系统在开发过程中高度依赖大量第三方开源软件包,形成了复杂的供应链网络。为了提供更完善的功能、修复潜在的安全漏洞,这些第三方软件包不断进行版本更新。因而,要求操作系统必须及时跟进更新所依赖的第三方软件包,以确保系统的安全性与功能性。然而,在第三方软件包的更新过程中,可能会出现API变更,即所谓的breaking changes,这可能导致操作系统与所依赖的软件包之间出现兼容性问题。目前,第三方软件包的更新工作主要依靠手动完成,这种方式不仅效率低下,而且容易导致更新滞后,增加了系统面临安全风险的可能性。为此,本赛题的目标是开发一款能够自动更新第三方软件包的工具,支持主流开源操作系统的软件包升级,并将工具集成到开源代码托管平台中,从而为用户提供自动化生成的包更新Pull Request(PR),旨在解决现有更新流程中的滞后性和效率低下的问题,提高系统的安全性和功能性。

赛题要求:

  • 目标平台:基于开源代码托管平台,实现对开源操作系统的第三包的自动化升级。
  • 第三方软件包自动化更新功能设计:
  • 给定目标操作系统项目的版本库地址,自动获取项目代码;
  • 提取目标操作系统项目所依赖的第三方软件包列表;
  • 构建目标操作系统项目与第三方软件包的API使用调用图;
  • 分析第三方软件包更新过程中产生的breaking changes,识别升级过程中的API兼容性问题(如参数错误、错误处理缺失、版本兼容性问题);
  • 给出API修复建议或代码补丁,并支持人工确认/自动应用。
  • 与代码托管平台集成:
  • 将上述工具以SoftBot形式集成到GitLink代码托管平台上,支持为GitLink平台上托管的各类操作系统项目自动生成第三方软件包升级Pull Request。

评分细则:

项目 分值 说明
功能完整性 40 包括 API 图构建、误用检测、修复建议生成;
应用效果 30 提供具体修复示例、内核稳定性提升、对比实验等;支持的项目数越多越能得高高分。
代码规范性 20 模块结构清晰、易扩展,遵循开源社区规范;
文档质量 10 包括设计说明、使用说明、修复示例和评估报告
  • 额外加分项(每项加3分):
  • 将上述工具以SoftBot形式集成到GitLink开源代码托管平台;
  • 实现对GitLink平台泛在操作系统专区(泛在操作系统)项目的支持。

赛题联系人:

高祥 xiang_gao@buaa.edu.cn 王涛 taowang2005@nudt.edu.cn

参考资料:

[1] SoftBot开发使用指南:https://help.gitlink.org.cn/Bot%E5%B8%82%E5%9C%BA/ [2] Laerte Xavier, et.al. Historical and impact analysis of API breaking changes: A large-scale study, Saner 2017. [3] Xiang Gao, et.al. APIfix: output-oriented program synthesis for combating breaking changes in libraries. OOPSLA, 2021.

参赛资源支持:无

关于
29.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号