一句话:提出 UPCY,用 min-(s,t)-cut 与 Maven Central 图数据库计算依赖更新路径,最小化不兼容性。
开发者因担心引入不兼容而回避依赖更新,且对 Dependabot 等自动化工具缺乏信任,因为这些工具仅对单个过时库给出朴素更新,不保证与项目内其他依赖兼容。UPCY 利用 Maven Central 的图数据库,应用 min-(s,t)-cut 算法,为依赖到目标版本的更新识别出一组有效更新步骤,同时最小化与其他库的不兼容性。在 380 个项目上执行 29,698 次更新,并与现有工具的朴素更新进行对比。结果显示,在朴素方法失败的案例中,41.1% 的情况下 UPCY 能生成不兼容更少的更新,且其生成的更新中有 70.1% 零不兼容。
Recent research has shown that developers hesitate to update dependencies and mistrust automated approaches such as Dependabot, since they are afraid of introducing incompatibilities that break their project. In fact, such approaches only suggest naïve updates for a single outdated library but do not ensure compatibility with other dependent libraries in the project. To alleviate this situation and support developers in finding updates with minimal incompatibilities, we present UPCY. UPCY applies the min-(s,t)-cut algorithm and leverages a graph database of Maven Central to identify a list of valid update steps to update a dependency to a target version while minimizing incompatibilities with other libraries. By executing 29,698 updates in 380 projects, we compare the effectiveness of UPCY with the naïve updates applied by state-of-the-art tools. We find that in 41.1% of the cases where the naïve approach fails UPCY generates updates with fewer incompatibilities, and even 70.1% of the generated updates have zero incompatibilities.