Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dbmanager
downloader
utilities
.gitignore
LICENSE
README.md
create_dataset.js
package.json
properties.js

README.md

Cyclopt rating

msr-2018-dataset

This repository contains the source code used to create the "NPM-MINER" dataset submitted at the Data Showcase Track of the "Mining Software Repositories (MSR)" conference.

The Dataset

DOI

The dataset contains the analysis results of 5 open source software quality tools eslint, escomplex, nsp, jsinspect and sonarjs for 2000 popular (in terms of stars and downloads) npm packages.

The Paper

The preprint.

The Web Application

npm-miner

Installation

In order to use msr-2018-dataset follow the next steps:

  1. Clone the repository AuthEceSoftEng/msr-2018-npm-miner using the following command:
$ git clone https://github.com/AuthEceSoftEng/msr-2018-npm-miner.git
  1. Move to the AuthEceSoftEng/msr-2018-npm-miner root directory and install the dependencies using the command:
$ npm install
  1. Install jssa locally following the instructions found at jssa documentation:

Usage

In order to reproduce the NPM-MINER dataset follow the steps:

  1. Set the results storing directory by modifying the properties.js file:
 getStoringFolder: function (){
    return "path_to_storing_folder"; // Place the path to your storing folder
}
  1. Run the analysis, which supports two modes: sequential and parallel
  • sequential mode
/**
   * @param {String} DB_URL - The URL through which the couchDB is accessible.
   * @param {String} DB_name - The name of the database.
   * @param {String} platform - "WINDOWS"/"LINUX".
   * @param {Number} from_index - The starting index of the projects to analyze.
   * @param {Number} to_index - The ending index of the projects to analyze.
   */
let analysis_results = [];
sequential_execution(DB_URL, DB_name, platform, from_index, to_index).then( val =>{
  console.log(analysis_results)
});

Example

// Analyze the projects from index 101-110
let analysis_results = [];
sequential_execution(DB_URL, DB_name, "WINDOWS", 101, 110).then( val =>{
  console.log(analysis_results)
});
  • parallel mode
/**
   * @param {String} DB_URL - The URL through which the couchDB is accessible.
   * @param {String} DB_name - The name of the database.
   * @param {String} platform - "WINDOWS"/"LINUX".
   * @param {Number} num_projects - The number of projects to analyze.
   * @param {Number} skip - The number of projects to skip.
   */
run_full_analysis(DB_URL, DB_name, platform, num_projects, skip)

Example

// Analyze the projects from index 101-110
run_full_analysis(DB_URL, DB_name, "WINDOWS", 10, 100)
You can’t perform that action at this time.