Migrating Code At Scale With LLMs At Google
Celal Ziftci, Stoyan Nikolov, Anna Sjövall, Bo Kim, Daniele Codecasa, Max Kim
TL;DR
This work tackles the challenge of large-scale code migrations by integrating change-location discovery with an LLM-driven editing workflow and automated validation in Google's infrastructure. The proposed pipeline operates nightly, identifies both direct and indirect references to a migration target, and uses an LLM to generate code changes that are rigorously validated before submission. In a case study spanning 39 migrations over 12 months, the approach yielded 595 code changes and 93,574 edits, with the LLM responsible for about 74.45% of changes and 69.46% of edits, while developers reported substantial time savings and high satisfaction. The study demonstrates the potential of LLM-assisted automation to scale migrations, while also highlighting challenges such as context-window limits, hallucinations, and language support, suggesting directions for broader adoption and refinement.
Abstract
Developers often evolve an existing software system by making internal changes, called migration. Moving to a new framework, changing implementation to improve efficiency, and upgrading a dependency to its latest version are examples of migrations. Migration is a common and typically continuous maintenance task undertaken either manually or through tooling. Certain migrations are labor intensive and costly, developers do not find the required work rewarding, and they may take years to complete. Hence, automation is preferred for such migrations. In this paper, we discuss a large-scale, costly and traditionally manual migration project at Google, propose a novel automated algorithm that uses change location discovery and a Large Language Model (LLM) to aid developers conduct the migration, report the results of a large case study, and discuss lessons learned. Our case study on 39 distinct migrations undertaken by three developers over twelve months shows that a total of 595 code changes with 93,574 edits have been submitted, where 74.45% of the code changes and 69.46% of the edits were generated by the LLM. The developers reported high satisfaction with the automated tooling, and estimated a 50% reduction on the total time spent on the migration compared to earlier manual migrations. Our results suggest that our automated, LLM-assisted workflow can serve as a model for similar initiatives.
