Published February 2, 2025 | Version 1

Understanding the Popularity of Packages in Maven Ecosystem

  • 1. ROR icon University of Windsor

Description

Maven Package Analysis

Overview

This repository contains scripts and notebooks for analyzing Maven packages. The analysis includes:

  1. Distribution of Maven packages across different ranges of star counts.
  2. Correlation matrix of popularity metrics for Maven packages.
  3. Comparison of features across the top and bottom 20% of packages, along with P-value and Cohen’s d for effect size.
  4. Hierarchical clustering to handle multi-collinearity among features, with selected metrics listed.
  5. Logistic regression analysis to generate final results.

Prerequisites

  • Python 3.8 or higher
  • All required Python packages listed in requirements.txt

Installation

  1. Clone the repository:
    git clone <repository_url>
    cd <repository_folder>
     
  2. Install the required dependencies:
    pip install -r requirements.txt
     

Usage

1. Distribution of Maven Packages by Star Count

To find the distribution of Maven packages across different ranges of star counts, run the following command:

python .\star_count_distribution.py

2. Correlation Matrix of Popularity Metrics

To generate the correlation matrix for Maven package popularity metrics, run the following command:

python .\cluster_corelation.py

3. Feature Comparison Across Top and Bottom 20%

To compare features across the top and bottom 20% of packages, including P-value and Cohen’s d for effect size, run the following command:

python .\minmaxmedian.py
 

4. Hierarchical Clustering for Feature Selection

To apply hierarchical clustering and handle multi-collinearity among features:

  1. Open hierarchical_clustering.ipynb in a Jupyter Notebook environment.
  2. Run all the cells in the notebook.

This step will identify the following metrics:

  • License
  • Commits Count
  • Readme Exists
  • About Info
  • Dependencies
  • Usages
  • Closed Issues Percentage
  • Release Frequency
  • Vulnerabilities

Figure 3 will also be generated during this process.

5. Logistic Regression Analysis

To perform logistic regression analysis and generate the final results, run the following command:

python .\Logistic_Regression.py
 

 

Contact

For any questions or issues, please reach out to the repository maintainer.

Files

combined_metrics.csv

Files (35.5 MB)

Name Size Download all
md5:4f789401007bd3439bb3939feac21e26
2.7 kB Download
md5:c84a94ed1013b0e6004f8e1209b1ab82
26.5 MB Preview Download
md5:d68afd657d03838d90431246ec0e8e98
4.7 kB Preview Download
md5:4d378d61aa73d767371592fd6f7edfc6
297.2 kB Preview Download
md5:5600427c81a4d4325dfa0a037da1564e
8.7 MB Preview Download
md5:2bb6db46285b986c68c88d2376907bfb
7.1 kB Download
md5:16ffe8134400b4a061dc19fcd7b060fc
7.1 kB Download
md5:1d0d1c3f0e93525cbd2e141d0d625d3e
2.9 kB Preview Download
md5:1f642b2bf6282dd2c88f22f165c890ff
560 Bytes Preview Download
md5:17c06f8ea1cd92a88d5ed5beda4eeda7
1.2 kB Download

Additional details

Dates

Accepted
2025-01-12
MSR 2025 Mining Challenge