ICSME 2023
Sun 1 - Fri 6 October 2023 Bogotá, Colombia
Thu 5 Oct 2023 11:02 - 11:18 at Session 2 Room - RGD 04 - Software Changes Chair(s): Tushar Sharma, Shurui Zhou

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 Oct

Displayed 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
16m
Talk
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
16m
Talk
Identifying Defect-Inducing Changes in Visual Code
Industry Track
Kalvin Eng Electronic Arts, Abram Hindle University of Alberta, Alexander Senchenko Electronic Arts
Pre-print
11:02
16m
Talk
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
11m
Talk
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
16m
Talk
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
15m
Live Q&A
1:1 Q&A
Research Track