Hero: On the Chaos When PATH Meets Modules
Ying Wang, Liang Qiao, Chang Xu, Yepang Liu, Shing-Chi Cheung, Na, Meng, Hai Yu, Zhiliang Zhu

TL;DR
This paper investigates dependency management issues in Golang caused by incompatible library-referencing modes, characterizes their root causes, and introduces Hero, an automated tool that detects and suggests fixes, improving project stability.
Contribution
The paper provides an empirical analysis of Golang dependency issues and develops Hero, a tool that effectively detects and resolves these issues in real-world projects.
Findings
Hero achieves 98.5% detection accuracy on benchmark
Found 2,422 new dependency issues in popular projects
Most fixes adopted Hero's suggestions, improving project health
Abstract
Ever since its first release in 2009, the Go programming language (Golang) has been well received by software communities. A major reason for its success is the powerful support of library-based development, where a Golang project can be conveniently built on top of other projects by referencing them as libraries. As Golang evolves, it recommends the use of a new library-referencing mode to overcome the limitations of the original one. While these two library modes are incompatible, both are supported by the Golang ecosystem. The heterogeneous use of library-referencing modes across Golang projects has caused numerous dependency management (DM) issues, incurring reference inconsistencies and even build failures. Motivated by the problem, we conducted an empirical study to characterize the DM issues, understand their root causes, and examine their fixing solutions. Based on our findings,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Software Reliability and Analysis Research
