Maintaining software is an ongoing process that stretches beyond the initial release. Stable software versions continuously evolve to fix bugs, add improvements, address security issues, and ensure compatibility. This ongoing support involves Backporting, which means taking a fix or update from a newer version and applying it to an older version of the same software. As software versions evolve, new technical debt can arise during backport maintenance activities. This study examines the technical debt involved in fixing 105,396 commits from 31,076 backport sources across 87 repositories in three software ecosystems (Apache, Eclipse, and Python). The goal is to identify when and why new technical debt arises during backporting in stable source code. Our results indicate that approximately 4.3% of backports introduce new technical debt. Apache contributes the most absolute instances, while Python and Eclipse exhibit nearly three times higher debt-to-commit ratios than Apache. Feature migrations make older Apache releases debt-prone in the early phase, whereas Python and Eclipse releases tend to accumulate technical debt mostly during the middle phase of their release cycles. Additionally, developers who are inexperienced, under high workloads, or non-owners are more likely to introduce technical debt during backporting.
翻译:软件维护是一个持续的过程,其范围远超初始版本发布。稳定的软件版本会持续演进以修复缺陷、增加改进、解决安全问题并确保兼容性。这一持续支持过程涉及向后移植,即从较新版本中提取修复或更新,并将其应用于同一软件的旧版本。随着软件版本演进,在向后移植维护活动中可能产生新的技术债务。本研究分析了来自三个软件生态系统(Apache、Eclipse和Python)中87个代码库的31,076个向后移植源所产生的105,396次提交所涉及的技术债务,旨在识别稳定源代码向后移植过程中新债务产生的时间节点与成因。研究结果表明,约4.3%的向后移植会引入新的技术债务。Apache在绝对数量上贡献最多,而Python和Eclipse的债务-提交比约为Apache的三倍。功能迁移使早期Apache版本易产生债务,而Python和Eclipse版本则主要在发布周期中期积累技术债务。此外,经验不足、工作负荷过高或非代码所有者的开发者在向后移植过程中更易引入技术债务。