Migrating Client Code without Change Examples
Hao Zhong, Na Meng

TL;DR
AutoUpdate is a novel compiler-guided approach that automates client code migration across library versions by applying migration operators based on compilation errors, reducing manual effort and errors.
Contribution
The paper introduces AutoUpdate, a new compiler-directed method for automating client code migration without needing change examples, improving efficiency and accuracy.
Findings
AutoUpdate reduced migration errors in 92.7% of tutorial tasks.
It fully eliminated errors in 32.4% of tasks.
Successfully migrated real client projects passing all tests.
Abstract
API developers evolve software libraries to fix bugs, add new features, or refactor code. To benefit from such library evolution, the programmers of client projects have to repetitively upgrade their library usages and adapt their codebases to any library API breaking changes (e.g., API renaming). Such adaptive changes can be tedious and error-prone. Existing tools provide limited support to help programmers migrate client projects from old library versions to new ones. For instance, some tools extract API mappings be-tween library versions and only suggest simple adaptive changes (i.e., statement updates); other tools suggest or automate more complicated edits (e.g., statement insertions) based on user-provided exemplar code migrations. However, when new library versions are available, it is usually cumbersome and time-consuming for users to provide sufficient human-crafted samples in…
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 Engineering Research · Software System Performance and Reliability · Software Testing and Debugging Techniques
