Roseau: Fast, Accurate, Source-based API Breaking Change Analysis in Java
Corentin Latappy (LaBRI), Thomas Degueule (LaBRI), Jean-R\'emy Falleri (LaBRI), Romain Robbes (LaBRI), Lina Ochoa (TU/e)

TL;DR
Roseau is a static analysis tool that accurately and efficiently detects API breaking changes in Java libraries from source or bytecode, enabling large-scale longitudinal studies of API evolution.
Contribution
Roseau introduces a novel, technology-agnostic API model construction approach that surpasses existing tools in accuracy and performance for analyzing API evolution.
Findings
Achieves higher accuracy (F1=0.99) than JApiCmp and Revapi.
Detects BCs in under two seconds for large libraries.
Enables tracking API evolution over 14 years and thousands of commits.
Abstract
Understanding API evolution and the introduction of breaking changes (BCs) in software libraries is essential for library maintainers to manage backward compatibility and for researchers to conduct empirical studies on software library evolution. In Java, tools such as JApiCmp and Revapi are commonly used to detect BCs between library releases, but their reliance on binary JARs limits their applicability. This restriction hinders large-scale longitudinal studies of API evolution and fine-grained analyses such as commit-level BC detection. In this paper, we introduce Roseau, a novel static analysis tool that constructs technology-agnostic API models from library code equipped with rich semantic analyses. API models can be analyzed to study API evolution and compared to identify BCs between any two versions of a library (releases, commits, branches, etc.). Unlike traditional approaches,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Software Engineering Research · Advanced Software Engineering Methodologies
