A Study of Backporting Code in Open-Source Software for Characterizing Changesets
Debasish Chakroborti, Chanchal Kumar Roy, Kevin A. Schneider · 2024
The software development process, shaped by stakeholder feedback, encompasses the creation of diverse versions tailored for customization and addressing hardware limitations. Maintaining these versions involves initiating the transfer of changes for reuse. In the context of a pull-based development model, where the development branch remains current, the term "backporting" is coined to sustain stable versions. Stability requirements may necessitate fewer changes, compatible modifications, or security checks. Consequently, we conducted an analysis of 37,460 backports from 223,602 pull requests in open-source GitHub projects, aiming to identify types of incompatibilities encountered in real-life scenarios. We manually pinpointed various reasons why pull requests may lack compatibility with other versions, including contextual differences, varying dependencies, and statement-level alterations. This study constitutes the inaugural comprehensive characterization of changesets during the porting process across different versions with incompatibilities. The acquired insights can serve as a foundation for automated slicing and adaptation of changesets in stable software versions.