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

page 1

page 2

page 3

page 4

research
07/05/2019

MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level

In this paper we introduce, MigrationMiner, an automated tool that detec...
research
05/06/2021

Migrating Client Code without Change Examples

API developers evolve software libraries to fix bugs, add new features, ...
research
01/20/2022

Providing Upgrade Plans for Third-party Libraries: A Recommender System using Migration Graphs

During the development of a software project, developers often need to u...
research
08/22/2023

Recommending Analogical APIs via Knowledge Graph Embedding

Library migration, which re-implements the same software behavior by usi...
research
05/15/2023

CompSuite: A Dataset of Java Library Upgrade Incompatibility Issues

Modern software systems heavily rely on external libraries developed by ...
research
08/28/2023

MELT: Mining Effective Lightweight Transformations from Pull Requests

Software developers often struggle to update APIs, leading to manual, ti...
research
03/07/2019

An Introduction to hpxMP -- A Modern OpenMP Implementation Leveraging Asynchronous Many-Tasking System

Asynchronous Many-task (AMT) runtime systems have gained increasing acce...

Please sign up or login with your details

Forgot password? Click here to reset