Toward Better Dependency Management in Python Projects

Gorde:
Xehetasun bibliografikoak
Argitaratua izan da:ProQuest Dissertations and Theses (2025)
Egile nagusia: Sakib, Sadman Jashim
Argitaratua:
ProQuest Dissertations & Theses
Gaiak:
Sarrera elektronikoa:Citation/Abstract
Full Text - PDF
Etiketak: Etiketa erantsi
Etiketarik gabe, Izan zaitez lehena erregistro honi etiketa jartzen!

MARC

LEADER 00000nab a2200000uu 4500
001 3213664514
003 UK-CbPIL
020 |a 9798315754534 
035 |a 3213664514 
045 2 |b d20250101  |b d20251231 
084 |a 66569  |2 nlm 
100 1 |a Sakib, Sadman Jashim 
245 1 |a Toward Better Dependency Management in Python Projects 
260 |b ProQuest Dissertations & Theses  |c 2025 
513 |a Dissertation/Thesis 
520 3 |a Modern software development heavily relies on third-party packages to accelerate progress, yet two critical challenges persist: managing dependency conflicts during package installation and addressing the frequent absence or incompleteness of configuration files in Python projects. These issues disrupt workflow efficiency, degrade system stability, and hinder reproducibility. This research aims to solve both problems by introducing two separate tools. First, we introduce SMTpip, a tool leveraging Satisfiability Modulo Theories (SMT) solvers to resolve third-party package dependency conflicts and Python version incompatibilities during package installation, ensuring a reproducible and conflict-free environment for Python projects. SMTpip constructs a comprehensive dependency knowledge graph by analyzing metadata from the Python Package Index (PyPI) and translates client project requirements—such as Python version constraints and library dependency constraints—into SMT expressions to find an optimal, conflict-free installation process. Evaluations using four different datasets from open-source software repositories show that SMTpip achieves significant speedups: 39× faster than pip, 37× faster than Conda, 3.2× faster than smartPip, and 4× faster than PyEGo. Additionally, SMTpip is able to determine when a set of dependency constraints is inconsistent, meaning that the constraints are mutually contradictory and there is no way of meeting them all simultaneously. Second, we introduce an automated approach to generating requirements.txt files for Python projects lacking dependency specifications. Our approach addresses the challenges of identifying packages and their compatible versions through code parsing. When tested on 3,081 notebooks, our proposed generator tool successfully generated requirements.txt files and enabled the execution of 1,230 notebooks, achieving a 39.92% success rate—nearly twice that of pipreqs (20.84%, or 642 notebooks). Failures were primarily due to non-dependency issues, highlighting challenges beyond dependency resolution. By ensuring consistent software environments and automating dependency specification, these tools enhance project reproducibility. The implementation of SMTpip and the generator tool are publicly available to facilitate reproducibility. 
653 |a Computer science 
653 |a Computer engineering 
773 0 |t ProQuest Dissertations and Theses  |g (2025) 
786 0 |d ProQuest  |t ProQuest Dissertations & Theses Global 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3213664514/abstract/embedded/H09TXR3UUZB2ISDL?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3213664514/fulltextPDF/embedded/H09TXR3UUZB2ISDL?source=fedsrch