On the Developers' Attitude Towards CRAN Checks

Abstract

R is a package-based, multi-paradigm programming language for scientific software. It provides an easy way to install third-party code, datasets, tests, documentation and examples through CRAN (Comprehensive R Archive Network). Prior works indicated developers tend to code workarounds to bypass CRAN’s automated checks (performed when submitting a package) instead of fixing the code–doing so reduces packages’ quality. It may become a threat to those analyses written in R that rely on miss-checked code. This preliminary study card-sorted source code comments and analysed StackOverflow (SO) conversations discussing CRAN checks to understand developers’ attitudes. We determined that about a quarter of SO posts aim to bypass a check with a workaround; the most affected are code-related problems, package dependencies, installation and feasibility. We analyse these checks and outline future steps to improve similar automated analyses.

Publication
in IEEE/ACM 30th International Conference on Program Comprehension (ICPC), 2022


Preliminary Results

Preliminary results indicate that coverage calculations are prone to manipulation since developers alter it with the nocov tags in comments. Source code comments indicate the introduction of “Build Debt”, followed by “Code” and “Defect Debt”, with checks related to “R Code Quality” being the most exposed.

In StackOverflow, checks about “Description”, “R Code”, and “Package Structure” are the most queried, with about a third of enquiries resulting in an avoidance behaviour. Moreover, there was a peak of enquiries of any type during 2020.



Citation

@INPROCEEDINGS {Kumar2022,
author = {P. Kumar and D. Ie and M.  Vidoni},
booktitle = {IEEE/ACM 30th International Conference on Program Comprehension (ICPC)},
title = {On the Developers' Attitude Towards CRAN Checks},
year = {2022},
volume = {},
issn = {},
pages = {570-574},
doi = {10.1145/3524610.3528389},
publisher = {IEEE Computer Society},
address = {Pittsburng, USA},
}