Speaker
Description
With over 23,000 packages, CRAN forms a large ecosystem of reviewed code. Additionally, its strict rules and dependency structure make it great for analyzing bug propagation in an ecosystem.
This talk presents a hypothetical scenario in which I introduce a bug into base R. I analyze the consequences for the entire ecosystem and whether packages themselves would catch those bugs with their unit tests before serving incorrect results unbeknownst to users. To do so, I prepared a pipeline that introduces a bug into one of the base functions and runs R CMD check on the packages that use this function the most, as well as the reverse dependencies of those packages. Then it compares these results with those obtained with unmodified R. This allows me to construct and analyse a dependency and failure network, which can be checked for resilience and the ability to capture bugs.
The main goal of this presentation is to show how I built and analyzed these networks. I will answer questions about how many packages caught the bugs, whether failures formed any interesting structures, and also hope to address a more general question about how well we test our packages. The talk also deep-dives into the tools used to alter base R and run R CMD check in its buggy state. I will also provide details on how everything was orchestrated using the checked package and subprocesses to maintain different R states. An approach that can be reused in different projects.
If you used AI tools or services to support the preparation of this submission, please state the name and reason for using each of them.
Grammarly was used to proofread the abstract, which may use AI tools in its suggestions. Other than that No AI tools/services were used
| Keywords: Please list up to 5 keywords to help us find the right session for your contribution. | bug propagation, social networks, reverse dependecies, CRAN case study |
|---|---|
| Virtual Option | This submission is for onsite presentation only |
| Video Recording | Video sharing is fine |
| The author(s) agree(s) to take responsibility and be accountable for the contents of the submission and is/are authorized to present it. | Confirm |
| Interested in serving as reviewer? | sz.maksymiuk@gmail.com |