Analyzing Linter Usage and Warnings Through Mining Software Repositories: A Longitudinal Case Study of JavaScript Packages

Tjaša Heričko, Boštjan Šumak · 2022 45th Jubilee International Convention on Information, Communication and Electronic Technology (MIPRO) · 2022

Linters are static analysis tools supporting developers by automatically detecting possible code errors, bad coding practices, violations of coding conventions, and styling issues while offering actionable advice on how to resolve these concerns to prevent inconsistencies in the codebase, errors, and degrading software quality. They are especially beneficial for software projects based on dynamically-typed languages, e.g., JavaScript, which are more prone to development errors and inconsistencies due to languages’ dynamic nature. However, little is known about how their usage and generated warnings evolve throughout the entire development histories of real-world software projects. This paper performs source code-based commit history analysis on 15 JavaScript npm packages. The empirical analysis of 16,562 commits revealed that the choice of linter and their configurations are rarely subjected to change once introduced to a package. When configurations do change, most modifications are minor. Unresolved violations of rules, which produce warnings, generally increase. Though, the density of warnings was found to be slightly decreasing with the maturity of a package – overall and for each distinct group of warnings.

Read the paper · More papers on PaperTik