一句话:通过混合方法实证研究,揭示 Python 生态包级弃用的公告、接收与处理实践及开发者与用户间的期望差距。
Python 生态中大量第三方包维护不善,带来功能与安全风险,亟需建立包级弃用机制,但学界对其现状缺乏系统理解。本文采用混合方法实证研究,结合数据分析与问卷调查,考察包级弃用的公告、接收与处理实践,评估弃用公告对不活跃维护包的收益,并调查开发者与用户面临的挑战及期望。关键发现包括:75.4% 的不活跃包开发者无意发布弃用声明,而 89.5% 的用户希望收到弃用通知,凸显开发者与用户之间的鸿沟;弃用发生时常常没有替代方案,说明需要探索无缝交接与低维护成本的实践。该工作旨在增进对 Python OSS 包级弃用模式的理解,并为未来弃用实践提供依据。
Open-source software (OSS) plays a crucial role in modern software development. Utilizing OSS code can greatly accelerate software development, reduce redundancy, and enhance reliability. Python, a widely adopted programming language, is renowned for its extensive and diverse third-party package ecosystem. However, a significant number of OSS packages within the Python ecosystem are in poor maintenance, leading to potential risks in functionality and security. Consequently, it is essential to establish a deprecation mechanism to assist package developers and users in managing packages effectively. To facilitate the establishment of the package-level deprecation mechanism, this paper presents a mixed-method empirical study, including data analysis and surveys. We investigate the current practices of announcing, receiving, and handling package-level deprecation in the Python ecosystem. We also assess the benefits of having deprecation announcements for inactively maintained packages. Furthermore, we investigate the challenges faced by package developers and users and their expectations for future deprecation practices. Our findings reveal that 75.4% of inactive package developers have no intention of releasing deprecation declarations for various reasons, while 89.5% of users express a desire to be notified about the deprecation, highlighting a gap between developers and users; in many cases, no alternative solutions are available when deprecation occurs, emphasizing the need to explore practical approaches that enable seamless package handover and require less maintenance effort. Our work aims to enhance the understanding of existing package-level deprecation patterns within the Python OSS realm and facilitate the development of deprecation practices for the Python community in the future.
DOI 原文 ·
@inproceedings{paperbot8889,
title = {An Empirical Study on Package-Level Deprecation in Python Ecosystem},
author = {Zhiqing Zhong and Shilin He and Haoxuan Wang and Boxi Yu and Haowen Yang and Pinjia He},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00046}
}