论文标题

实践中的自动化依赖性更新:探索性研究

Automating Dependency Updates in Practice: An Exploratory Study on GitHub Dependabot

论文作者

He, Runzhi, He, Hao, Zhang, Yuxia, Zhou, Minghui

论文摘要

依赖关系管理机器人自动打开拉力请求,以代表开发人员更新软件依赖关系。早期研究表明,开发人员怀疑依赖管理机器人执行的更新,并对这些机器人的压倒性通知感到厌倦。尽管如此,依赖管理机器人越来越流行。这种对比促使我们调查了Github上目前最明显的机器人的Displabot,以揭示最先进的依赖管理机器人的有效性和局限性。我们使用探索性数据分析和开发人员调查来评估Depentabot在保持依赖性最新,与开发人员相互作用,减少更新怀疑并减少通知疲劳方面的有效性。我们获得了混合的发现。从积极的一面来看,项目确实会减少采用依赖的技术滞后,而开发人员对其拉力请求非常容易接受。负面的一面,其兼容性得分太稀缺了,无法有效地减少更新的怀疑。开发人员倾向于将依赖关系配置为减少通知的数量。 11.3%的项目已弃用依赖依性,以支持其他替代方案。该调查证实了我们的发现,并提供了有关Disperabot的主要缺失功能的见解。根据我们的发现,我们得出并总结了理想的依赖管理机器人的关键特征,该机器人可以分为四个维度:可配置性,自主性,透明度和自动化性。

Dependency management bots automatically open pull requests to update software dependencies on behalf of developers. Early research shows that developers are suspicious of updates performed by dependency management bots and feel tired of overwhelming notifications from these bots. Despite this, dependency management bots are becoming increasingly popular. Such contrast motivates us to investigate Dependabot, currently the most visible bot on GitHub, to reveal the effectiveness and limitations of state-of-art dependency management bots. We use exploratory data analysis and a developer survey to evaluate the effectiveness of Dependabot in keeping dependencies up-to-date, interacting with developers, reducing update suspicion, and reducing notification fatigue. We obtain mixed findings. On the positive side, projects do reduce technical lag after Dependabot adoption and developers are highly receptive to its pull requests. On the negative side, its compatibility scores are too scarce to be effective in reducing update suspicion; developers tend to configure Dependabot toward reducing the number of notifications; and 11.3% of projects have deprecated Dependabot in favor of other alternatives. The survey confirms our findings and provides insights into the key missing features of Dependabot. Based on our findings, we derive and summarize the key characteristics of an ideal dependency management bot which can be grouped into four dimensions: configurability, autonomy, transparency, and self-adaptability.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源