A Machine Learning Approach to Determine the Semantic Versioning Type of npm Packages Releases
Rabe Abdalkareem, Md Atique Reza Chowdhury, Emad Shihab

TL;DR
This paper presents a machine learning approach to predict semantic versioning types of npm package releases, aiming to improve release accuracy and reduce dependency breakages by analyzing code changes and development activities.
Contribution
The study introduces a novel ML-based method using features from source code and repositories to predict release types, with extensive empirical evaluation on JavaScript packages.
Findings
XGBoost achieved the best ROC AUC scores for release type prediction.
Features related to change types are the most predictive.
The classifier generalizes well across different packages.
Abstract
Semantic versioning policy is widely used to indicate the level of changes in a package release. Unfortunately, there are many cases where developers do not respect the semantic versioning policy, leading to the breakage of dependent applications. To reduce such cases, we proposed using machine learning (ML) techniques to effectively predict the new release type, i.e., patch, minor, major, in order to properly determine the semantic versioning type. To perform our prediction, we mined and used a number of features about a release, such as the complexity of the changed code, change types, and development activities. We then used four ML classifiers. To evaluate the performance of the proposed ML classifiers, we conducted an empirical study on 31 JavaScript packages containing a total of approximately 6,260 releases. We started by extracting 41 release level features from historical data…
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 · Web Data Mining and Analysis · Open Source Software Innovations
