Knowledge-Based Environment Dependency Inference for Python Programs
Hongjie Ye, Wei Chen, Wensheng Dou, Guoquan Wu, Jun Wei
Abstract
Besides third-party packages, the Python interpreter and system libraries are also critical dependencies of a Python program. In our empirical study, 34% programs are only compatible with specific Python interpreter versions, and 24% programs require specific system libraries. However, existing techniques mainly focus on inferring third-party package dependencies. Therefore, they can lack other necessary dependencies and violate version constraints, thus resulting in program build failures and runtime errors.
This paper proposes a knowledge-based technique named PyEGo, which can automatically infer dependencies of third-party packages, the Python interpreter, and system libraries at compatible versions for Python programs. We first construct the dependency knowledge graph PyKG, which can portray the relations and constraints among third-party packages, the Python interpreter, and system libraries. Then, by querying PyKG with extracted program features, PyEGo constructs a program-related sub-graph with dependency candidates of the three types. It finally outputs the latest compatible dependency versions by solving constraints in the sub-graph. We evaluate PyEGo on 2,891 single-file Python gists, 100 open-source
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext d33bb9bc-47d9-4577-8507-f6b3f5bfb93fCited by top-tier papers10
- Generative Type Inference for PythonYun Peng, Chaozheng Wang, Wenxuan Wang, Cuiyun Gao et al.ASE 2023 · 29 citations
- Demystifying Dependency Bugs in Deep Learning StackKaifeng Huang, Bihuan Chen, Susheng Wu, Junming Cao et al.FSE 2023 · 20 citations
- Compatibility Issues in Deep Learning Systems: Problems and OpportunitiesJun Wang, Guanping Xiao, Shuai Zhang, Huashan Lei et al.FSE 2023 · 13 citations
- Automatically Resolving Dependency-Conflict Building Failures via Behavior-Consistent Loosening of Library Version ConstraintsHuiyan Wang, Shuguan Liu, Lingyu Zhang, Chang XuFSE 2023 · 8 citations
- Knowledge-Based Version Incompatibility Detection for Deep LearningZhongkai Zhao, Bonan Kou, Mohamed Yilmaz Ibrahim, Muhao Chen et al.FSE 2023 · 7 citations
Builds on6
- Watchman: monitoring dependency conflicts for Python library ecosystemYing Wang, Ming Wen, Yepang Liu, Yibo Wang et al.ICSE 2020 · 65 citations
- Fixing dependency errors for Python build reproducibilitySuchita Mukherjee, Abigail Almanza, Cindy Rubio-GonzálezISSTA 2021 · 55 citations
- Restoring Execution Environments of Jupyter NotebooksJiawei Wang, Li Li, Andreas ZellerICSE 2021 · 49 citations
- Interactive, effort-aware library version harmonizationKaifeng Huang, Bihuan Chen, Bowen Shi, Ying Wang et al.FSE 2020 · 32 citations
- Taming behavioral backward incompatibilities via cross-project testing and analysisLingchao Chen, Foyzul Hassan, Xiaoyin Wang, Lingming ZhangICSE 2020 · 30 citations
Related papers
- Less is More? An Empirical Study on Configuration Issues in Python PyPI EcosystemYun Peng, Ruida Hu, Ruoke Wang, Cuiyun Gao et al.ICSE 2024 · 5 citations
- Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge GraphWei Cheng, Xiangrong Zhu, Wei HuICSE 2022 · 16 citations
- smartPip: A Smart Approach to Resolving Python Dependency Conflict IssuesChao Wang, Rongxin Wu, Haohao Song, Jiwu Shu et al.ASE 2022 · 15 citations
- A Large-Scale Empirical Study on Semantic Versioning in Golang EcosystemWenke Li, Feng Wu, Cai Fu, Fan ZhouASE 2023 · 7 citations
- Impact analysis of cross-project bugs on software ecosystemsWanwangying Ma, Lin Chen, Xiangyu Zhang, Yang Feng et al.ICSE 2020 · 18 citations
