Journal
Zenodo (CERN European Organization for Nuclear Research)
Publisher
European Organization for Nuclear Research
Record source
OpenAlex Research Library
Abstract / Description
Software rots. Between refactors for new features, bug fixes, the continual march of cybersecurity advisories, and the slow drift of dependencies toward end-of-life, code must change or cease to exist. The simple act of keeping up can be overwhelming for research software engineers tasked with maintaining long-lived scientific codebases. To address this maintenance burden, the community has developed a vibrant ecosystem of language- and framework-specific tools, such as Dependabot for dependency bumps [1], Clang-Tidy for C++ static analysis [2], and Python Refurb for idiom modernization [3], alongside a host of similar utilities. These tools, while monumental in their contribution, are necessarily limited in scope: they encode a fixed catalog of transformations, they tend to operate on a single file or a single dependency at a time, and they presumably cannot reason about the broader architectural or semantic consequences of a change. More recently, agentic AI systems have arrived. Unlike single-shot code completion, agentic systems can read across a repository, run tests, observe failures, and iterate, and these behaviors, in principle, may enable a different class of modernization task. In this talk, we present concrete examples of modernizing Mantid [4], a more than 20-year-old C++ and Python project with roughly two million lines of code. We attempted to leverage agentic AI to perform maintenance work and modernization work on research software. Changes proposed by the agents were validated against the project's existing automated test suite and reviewed by human maintainers before merging. By exploring successes and failures, the presentation will improve attendees' understanding of when, and with what guardrails, to use AI to assist in modernizing their code. References Dependabot. GitHub Docs. Retrieved 2026-05-21. https://docs.github.com/en/code-security/dependabot Clang-Tidy. LLVM Project. Retrieved 2026-05-21. https://clang.llvm.org/extra/clang-tidy/ Refurb: A tool for refurbishing and modernizing Python codebases. dosisod. Retrieved 2026-05-21. https://github.com/dosisod/refurb Mantid code repository https://github.com/mantidproject/mantid/ Acknowledgements Funding for this research was provided by the US Department of Energy, Office of Science (contract No. DE-AC05-00OR22725).