Conflict-aware Inference of Python Compatible Runtime Environments with Domain Knowledge Graph
Code sharing and reuse is a widespread use practice in software engineering. Although a vast amount of open-source Python code is accessible on many online platforms, programmers often find it difficult to restore a successful runtime environment. Previous studies validated automatic inference of Py...
        Saved in:
      
    
          | Published in | 2022 IEEE/ACM 44th International Conference on Software Engineering (ICSE) pp. 451 - 461 | 
|---|---|
| Main Authors | , , | 
| Format | Conference Proceeding | 
| Language | English | 
| Published | 
            ACM
    
        01.05.2022
     | 
| Subjects | |
| Online Access | Get full text | 
| ISSN | 1558-1225 | 
| DOI | 10.1145/3510003.3510078 | 
Cover
| Summary: | Code sharing and reuse is a widespread use practice in software engineering. Although a vast amount of open-source Python code is accessible on many online platforms, programmers often find it difficult to restore a successful runtime environment. Previous studies validated automatic inference of Python dependencies using pre-built knowledge bases. However, these studies do not cover sufficient knowledge to accurately match the Python code and also ignore the potential conflicts between their inferred dependencies, thus resulting in a low success rate of inference. In this paper, we propose PyCRE, a new approach to automatically inferring Python compatible runtime environments with domain knowledge graph (KG). Specifically, we design a domain-specific ontology for Python third-party packages and construct KGs for over 10,000 popular packages in Python 2 and Python 3. PyCRE discovers candidate libraries by measuring the matching degree between the known libraries and the third-party resources used in target code. For the NP-complete problem of dependency solving, we propose a heuristic graph traversal algorithm to efficiently guarantee the compatibility between packages. PyCRE achieves superior performance on a real-world dataset and efficiently resolves nearly half more import errors than previous methods. | 
|---|---|
| ISSN: | 1558-1225 | 
| DOI: | 10.1145/3510003.3510078 |