PyMigBench and PyMigTax: A Benchmark and Taxonomy for Python Library Migration

07/03/2022
by   Mohayeminul Islam, et al.
0

Developers heavily rely on Application Programming Interfaces (APIs) from libraries to build their projects. However, libraries might become obsolete, or new libraries with better APIs might become available. In such cases, developers need to replace the used libraries with alternative libraries, a process referred to as library migration. When done manually, library migration can be tedious, time-consuming, and error-prone. Most of the current research on automated library migration techniques focus on Java libraries, and even more so on version migrations of the same library. Despite the increasing popularity of Python, limited research work has investigated migration between Python libraries. In this paper, we investigate the nature of Python library migrations in open-source systems. We analyze the code changes that happen during library migration and build PyMigBench, a manually verified migration benchmark. PyMigBench contains 436 migration-related code changes from 74 commits in 57 client repositories, and includes migrations between 34 unique pairs of libraries. Additionally, we manually analyze the migration-related code changes and create a taxonomy of migrations, PyMigTax, that categorizes migrations across various dimensions. Our contributions provide the necessary foundations for developing automated Python library migration tools and techniques.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset