开源生态系统中项目与开发者推荐

2021-11-22 08:03:02赵海燕陈庆奎
小型微型计算机系统 2021年11期

赵海燕,李 娜,陈庆奎,曹 健

1(上海市现代光学系统重点实验室,光学仪器与系统教育部工程研究中心,上海理工大学光电信息与计算机工程学院,上海 200093)

2(上海交通大学 计算机科学与技术系,上海 200030)

1 引 言

在开源生态系统中,相互依赖的软件项目形成了协同发展的社区[1].开源社区的蓬勃发展吸引了数量众多的高水平开发人员.这些来自不同国家、不同文化与专业知识背景的开发者自愿加入社区,并与其他开发者建立合作关系[2],共同推进项目的开发.

尽管开源社区发展迅速,但是由于开源社区公开、自愿、非盈利等原则,也出现了诸多问题:1)很多项目因未能及时找到合适的开发者而处于停滞状态;2)开发者也不能准确找到自己感兴趣并能够胜任的项目;3)95%以上的开发者只参与了不超过5个项目,大量的人力处于空闲状态.上述情况之所以存在,一方面是由于开发者无法通过现有的项目检索方法找到真正匹配自己技能的项目;另一方面是由于项目负责人没能掌握社区开发者的兴趣、专业特长以及开发者的合作偏好.

目前,可用于开发者及项目推荐的信息来源有用户(users)、项目(projects)、项目成员(project members)、追随者(followers)、提交(commit)、评论(comments)、问题(issues)、拉取请求(pull request)等.项目中的成员相互合作,并进行一系列操作对项目进行贡献.图1展示了开发者之间的合作关系以及进行推荐的几种可能性,其中成员之间直线连接表示曾有过合作关系.

图1 开源社区中项目与开发者的关系

由……

登录APP查看全文