中文

打破良好:基于构建分析解释依赖关系更新

软件工程 2025-01-14 v2

摘要

依赖关系更新常常会导致编译错误,因为新版本的依赖关系会引入与现有客户端代码不兼容的更改。修复破坏的依赖关系更新极具挑战性,其根本原因可能隐藏在依赖树的深处。我们提出了 Breaking-Good—a 一个自动为破坏性更新生成解释的工具。Breaking-Good 提供了对编译错误的详细分类,识别了与直接与间接依赖更改有关的多个因素、Java 版本之间的不兼容性,以及客户端特定的配置。通过对日志与依赖树进行综合分析,Breaking-Good 为每个破坏性更新生成详细的解释。这些解释帮助开发者理解破坏性更新的原因,并建议可能的修复措施。我们在 243 个真实世界的破坏性依赖关系更新上对 Breaking-Good 进行了评估。结果表明,Breaking-Good 在 70% 的这些破坏性更新中准确识别根本原因并生成自动解释。我们的用户研究表明,所生成的解释对开发者有帮助。Breaking-Good 是首个自动识别破坏性依赖关系更新原因并据此生成解释的技术。

关键词

引用

@article{arxiv.2407.03880,
  title  = {Breaking-Good: Explaining Breaking Dependency Updates with Build Analysis},
  author = {Frank Reyes and Benoit Baudry and Martin Monperrus},
  journal= {arXiv preprint arXiv:2407.03880},
  year   = {2025}
}