On the Relation of Method Popularity to Breaking Changes in the Maven Ecosystem
Software reuse is a common practice in modern software engineering to save time and energy while accelerating software delivery. Dependency managers like Maven offer a large ecosystem of reusable libraries that build the backbone of software reuse. Breaking changes, i.e., when an update to a library introduces incompatible changes that break existing client programs, are troublesome barriers to this library reuse. Semantic Versioning has been proposed as a practice to make it easier for the users to find safe updates by encoding the change impact in the version number. While this practice is widely studied from the framework perspective, no detailed insights exist yet into the ecosystem perspective. In this work, we study violations of semantic versioning in the Maven ecosystem for 13,876 versions of 384 artifacts to better understand the impact these violations have on the 7,190 dependent versioned packages. We found that 67% of the artifacts introduce at least one type of semantic versioning violation, either a breaking change or an illegal API extension in their history. An impact analysis on breaking methods that (direct or transitive) dependents reference, revealed strong centralization: 87% of publicly accessible methods are never used by dependents and among methods with at least one usage, half of the unique calls from dependents concentrate on only 35% of the defined methods. We also studied method popularity and could not find an indication that popularity affects stability: even popular methods break frequently. Overall, we confirm the previous result that Semantic Versioning is violated repeatedly in practice. Our results suggest that the frequency of breaking changes might be a sign of insufficient change-impact awareness on the ecosystem and we believe that developers require more adequate information, like method popularity, to improve their update strategies.
Thu 5 OctDisplayed time zone: Bogota, Lima, Quito, Rio Branco change
10:30 - 12:00 | Software ChangesResearch Track / Journal First Track / Industry Track / Tool Demo Track at Session 2 Room - RGD 04 Chair(s): Tushar Sharma Dalhousie University, Shurui Zhou University of Toronto | ||
10:30 16mTalk | CCBERT: Self-Supervised Code Change Representation Learning Research Track Xin Zhou Singapore Management University, Singapore, Bowen Xu North Carolina State University, DongGyun Han Royal Holloway, University of London, Zhou Yang Singapore Management University, Junda He Singapore Management University, David Lo Singapore Management University Pre-print | ||
10:46 16mTalk | Identifying Defect-Inducing Changes in Visual Code Industry Track Pre-print | ||
11:02 16mTalk | On the Relation of Method Popularity to Breaking Changes in the Maven Ecosystem Journal First Track Mehdi Keshani Delft University of Technology, Simcha Vos Delft University of Technology, Sebastian Proksch Delft University of Technology, Netherlands Link to publication | ||
11:18 11mTalk | Wait, wasn't that code here before? Detecting Outdated Software Documentation Tool Demo Track Wen Siang Tan The University of Adelaide, Markus Wagner Monash University, Australia, Christoph Treude University of Melbourne | ||
11:29 16mTalk | Recommending Code Reviews Leveraging Code Changes with Structured Information Retrieval Research Track Ohiduzzaman Shuvo Dalhousie University, Parvez Mahbub Dalhousie University, Masud Rahman Dalhousie University | ||
11:45 15mLive Q&A | 1:1 Q&A Research Track |