MELT: Mining Effective Lightweight Transformations from Pull Requests
Daniel Ramos, Hailie Mitchell, In\^es Lynce, Vasco Manquinho, Ruben, Martins, Claire Le Goues

TL;DR
MELT is a novel approach that automatically mines and generalizes API migration rules from pull requests in open-source libraries, enabling efficient and accurate API updates in client projects.
Contribution
MELT introduces a method to extract, generalize, and apply lightweight API migration rules directly from pull request data, streamlining API updates without waiting for client migrations.
Findings
Successfully mined 575 migration rules from pull requests and auto-generated examples.
Generalization increased rule applicability by 9 times.
Applying rules reduced warnings and fixed test cases in client projects.
Abstract
Software developers often struggle to update APIs, leading to manual, time-consuming, and error-prone processes. We introduce MELT, a new approach that generates lightweight API migration rules directly from pull requests in popular library repositories. Our key insight is that pull requests merged into open-source libraries are a rich source of information sufficient to mine API migration rules. By leveraging code examples mined from the library source and automatically generated code examples based on the pull requests, we infer transformation rules in \comby, a language for structural code search and replace. Since inferred rules from single code examples may be too specific, we propose a generalization procedure to make the rules more applicable to client projects. MELT rules are syntax-driven, interpretable, and easily adaptable. Moreover, unlike previous work, our approach enables…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Advanced Software Engineering Methodologies
MethodsLib
