Title
Watchman: monitoring dependency conflicts for Python library ecosystem
Abstract
ABSTRACTThe PyPI ecosystem has indexed millions of Python libraries to allow developers to automatically download and install dependencies of their projects based on the specified version constraints. Despite the convenience brought by automation, version constraints in Python projects can easily conflict, resulting in build failures. We refer to such conflicts as Dependency Confict (DC) issues. Although DC issues are common in Python projects, developers lack tool support to gain a comprehensive knowledge for diagnosing the root causes of these issues. In this paper, we conducted an empirical study on 235 real-world DC issues. We studied the manifestation patterns and fixing strategies of these issues and found several key factors that can lead to DC issues and their regressions. Based on our findings, we designed and implemented Watchman, a technique to continuously monitor dependency conflicts for the PyPI ecosystem. In our evaluation, Watchman analyzed PyPI snapshots between 11 Jul 2019 and 16 Aug 2019, and found 117 potential DC issues. We reported these issues to the developers of the corresponding projects. So far, 63 issues have been confirmed, 38 of which have been quickly fixed by applying our suggested patches.
Year
DOI
Venue
2020
10.1145/3377811.3380426
International Conference on Software Engineering
Keywords
DocType
ISSN
Python, dependency conflicts, software ecosystem
Conference
0270-5257
ISBN
Citations 
PageRank 
978-1-7281-6519-6
1
0.35
References 
Authors
9
10
Name
Order
Citations
PageRank
Ying Wang132.06
Ming Wen213711.70
Yepang Liu341524.58
Yibo Wang431.47
Zhenming Li510.35
Chao Wang6895190.04
Hai Yu728317.63
S. C. Cheung82657162.89
Chang Xu948736.94
Zhu Zhiliang10113.29