CoDocBench: A Dataset for Code-Documentation Alignment in Software Maintenance
Kunal Pai, Premkumar Devanbu, Toufique Ahmed
TL;DR
CoDocBench introduces a large-scale dataset of coupled code-docstring changes mined from GitHub to study code-documentation alignment in software maintenance. It details a robust collection pipeline using PyDriller, regex-based function detection, and AST validation, producing per-version entries with code, docstrings, and diffs. The paper defines two tasks: align updated docstrings with code and generate updated code from revised docstrings, and evaluates Mixtral-8x22B and Llama-3.1-405B; results show current models struggle with temporal alignment, though docstring updates are relatively easier and contextual prompting yields some gains. The dataset provides a reproducible benchmark to push forward modeling of code-doc documentation maintenance.
Abstract
One of the central tasks in software maintenance is being able to understand and develop code changes. Thus, given a natural language description of the desired new operation of a function, an agent (human or AI) might be asked to generate the set of edits to that function to implement the desired new operation; likewise, given a set of edits to a function, an agent might be asked to generate a changed description, of that function's new workings. Thus, there is an incentive to train a neural model for change-related tasks. Motivated by this, we offer a new, "natural", large dataset of coupled changes to code and documentation mined from actual high-quality GitHub projects, where each sample represents a single commit where the code and the associated docstring were changed together. We present the methodology for gathering the dataset, and some sample, challenging (but realistic) tasks where our dataset provides opportunities for both learning and evaluation. We find that current models (specifically Llama-3.1 405B, Mixtral 8$\times$22B) do find these maintenance-related tasks challenging.
