🤖 AI Summary
Semantic version upgrades of software dependency libraries frequently break backward compatibility, necessitating automated code migration solutions. This paper proposes AIMigrate, an LLM-based migration method that innovatively incorporates version-diff information as critical contextual input to the LLM, substantially improving migration accuracy. To support this work, we construct and publicly release the first benchmark dataset specifically designed for code migration tasks, along with the end-to-end tool AIMigrate. Experimental results on real-world migration scenarios show that AIMigrate identifies 65% of necessary changes in a single inference pass and achieves 80% coverage under multiple sampling; among the generated changes, 47% are fully correct. Compared to baseline approaches using source code alone, the diff-augmented strategy consistently outperforms across multiple evaluation metrics.
📝 Abstract
Modern software programs are built on stacks that are often undergoing changes that introduce updates and improvements, but may also break any project that depends upon them. In this paper we explore the use of Large Language Models (LLMs) for code migration, specifically the problem of maintaining compatibility with a dependency as it undergoes major and minor semantic version changes. We demonstrate, using metrics such as test coverage and change comparisons, that contexts containing diffs can significantly improve performance against out of the box LLMs and, in some cases, perform better than using code. We provide a dataset to assist in further development of this problem area, as well as an open-source Python package, AIMigrate, that can be used to assist with migrating code bases. In a real-world migration of TYPHOIDSIM between STARSIM versions, AIMigrate correctly identified 65% of required changes in a single run, increasing to 80% with multiple runs, with 47% of changes generated perfectly.