Hi everyone! Apologies for the delay in dataset processing but it turns out that LocAgent code was missing quite a few number of edge cases which would potentially corrupt the ground truth data. After fixing many of those, I have pushed the datasets to HuggingFace (
SWE-Bench Lite,
SWE-Bench Verified,
SWE-Smith,
SWE-Gym, and
SWE-rebench) and here is the
patched data processing code. Also I have analyzed all the datasets for multiple attributes (like # of functions edited/added, # of PRs with non-python files, # file edits, and many more corner cases) in
this spreadsheet (key takeaway is that SWE-smith is closest to SWE-Bench). I hope this analysis is helpful!
We need a better finish tool/prompt format where function name/class name is optional. The LocAgent prompt forces the model to always predict a function name with each file and an optional class name (if the fn belongs to a class). This is not ideal for the following frequent scenarios:
1. If the PR edited a class by adding a new function or just modifying its attributes, it will be present in ground truth but the model's prediction doesn't allow a filename and a class name alone. (such cases occur in 12% of test data (swe-bench) and 25% of SWE-Gym as shown in the sheet)
2. If the PR only changed global-level variables/imports and/or only added a new class/new global function they will only be detected at a file-level in ground truth but the agent has no way to predict a filename alone (such cases occur in 12% of test data, 16% of SWE-Gym, 30% of SWE-rebench).