Neural Transition-based Parsing of Library Deprecations
This addresses the problem of maintaining codebases when libraries update, though it is incremental as it builds on existing parsing techniques.
The paper tackles the problem of automating code updates for deprecated API usages by analyzing library release notes, introducing a transition-based parser that outperforms a neural machine translation baseline on a dataset of 426 API deprecations from 7 Python libraries.
This paper tackles the challenging problem of automating code updates to fix deprecated API usages of open source libraries by analyzing their release notes. Our system employs a three-tier architecture: first, a web crawler service retrieves deprecation documentation from the web; then a specially built parser processes those text documents into tree-structured representations; finally, a client IDE plugin locates and fixes identified deprecated usages of libraries in a given codebase. The focus of this paper in particular is the parsing component. We introduce a novel transition-based parser in two variants: based on a classical feature engineered classifier and a neural tree encoder. To confirm the effectiveness of our method, we gathered and labeled a set of 426 API deprecations from 7 well-known Python data science libraries, and demonstrated our approach decisively outperforms a non-trivial neural machine translation baseline.