maintaineR 
A web-based dashboard for main-tainers 
of CRAN packages 
Maëlick(Claes 
Tom$Mens$&$Philippe$Grosjean 
&$ 
Software$Engineering$Lab$ Numerical$Ecology$of 
Aquatic$Systems$Lab 
2nd$October$2014,$ICSME$2014 
2
Introduction
hUp://www.rXproject.org 
Statistical$environment$based$on$the$S$language 
Packages$with 
Code$(R,$C,$Fortran,...) 
Documentation 
Examples 
Tests 
Datasets 
... 
CRAN$(Comprehensive$R$Archive$Network) 
Official$R$package$repository 
Strict$policy$for$package$acceptance 
Package$quality$regularly$checked$&$archive$process 
Complaints$in$the$community$Hornik$2012,$Are$there$too$many$R 
packages?
Previous work 
Preliminary$empirical$study$using$CRAN$metaXdata 
On$the$maintainability$of$CRAN$packages$(CSMRXWCRE$2014) 
R$CMD$check$results$from$CRAN: 
hUp://cran.rXproject.org/web/checks/ 
Most$errors$resolved$quickly$without$developer$intervention 
Maintenance$effort$needs$to$focus$on$fixing$errors$caused$by$others 
Need$for$a$more$specific$tool$to$detect$problems$related$to 
dependency$changes
maintaineR
Architecture 
VirtualBox 
+ 
Vagrant 
extractoR maintaineR 
cloneR 
igraph 
RCurl + XML 
hash 
Shiny 
DB WebApp 
timeline rCharts
Running maintaineR 
hUps://github.com/ecosXumons/maintaineR 
hUps://github.com/ecosXumons/CRANData 
Required:$igraph,$rCharts,$d3Network,$shiny,$timeline,$RCurl, 
shinyIncubator,$extractoR.utils 
install.packages(c("igraph", "d3Network", "shiny", "RCurl", "devtools")) 
devtools::install_github("rstudio/shiny-incubator") 
devtools::install_github("ramnathv/rCharts") 
devtools::install_github("ecos-umons/extractoR/extractoR.utils") 
devtools::install_github("ecos-umons/maintaineR") 
shiny::runApp(system.file("webapp", package="maintaineR"), port=3000)
Demo 
hUps://www.youtube.com/watch?v=q3RWTsVnPqg
Future work 
CLI$check$tool$on$a$new$package$version 
General$UI$improvement 
Performance$optimization 
Global$CRAN$view 
View$all$packages$of$a$maintainer 
Present$information$about$package$tests 
Function$call$graph
Thanks ffoorr yyoouurr aatttteennttiioonn 
Questions? 
SSlliiddeess:: hhttttpp::////mmaaeelliicckk..nneett//pprreesseennttaattiioonnss//iiccssmmee22001144//

maintaineR: A web-based dashboard for maintainers of CRAN packages

  • 1.
    maintaineR A web-baseddashboard for main-tainers of CRAN packages Maëlick(Claes Tom$Mens$&$Philippe$Grosjean &$ Software$Engineering$Lab$ Numerical$Ecology$of Aquatic$Systems$Lab 2nd$October$2014,$ICSME$2014 2
  • 2.
  • 3.
    hUp://www.rXproject.org Statistical$environment$based$on$the$S$language Packages$with Code$(R,$C,$Fortran,...) Documentation Examples Tests Datasets ... CRAN$(Comprehensive$R$Archive$Network) Official$R$package$repository Strict$policy$for$package$acceptance Package$quality$regularly$checked$&$archive$process Complaints$in$the$community$Hornik$2012,$Are$there$too$many$R packages?
  • 4.
    Previous work Preliminary$empirical$study$using$CRAN$metaXdata On$the$maintainability$of$CRAN$packages$(CSMRXWCRE$2014) R$CMD$check$results$from$CRAN: hUp://cran.rXproject.org/web/checks/ Most$errors$resolved$quickly$without$developer$intervention Maintenance$effort$needs$to$focus$on$fixing$errors$caused$by$others Need$for$a$more$specific$tool$to$detect$problems$related$to dependency$changes
  • 5.
  • 6.
    Architecture VirtualBox + Vagrant extractoR maintaineR cloneR igraph RCurl + XML hash Shiny DB WebApp timeline rCharts
  • 7.
    Running maintaineR hUps://github.com/ecosXumons/maintaineR hUps://github.com/ecosXumons/CRANData Required:$igraph,$rCharts,$d3Network,$shiny,$timeline,$RCurl, shinyIncubator,$extractoR.utils install.packages(c("igraph", "d3Network", "shiny", "RCurl", "devtools")) devtools::install_github("rstudio/shiny-incubator") devtools::install_github("ramnathv/rCharts") devtools::install_github("ecos-umons/extractoR/extractoR.utils") devtools::install_github("ecos-umons/maintaineR") shiny::runApp(system.file("webapp", package="maintaineR"), port=3000)
  • 8.
  • 9.
    Future work CLI$check$tool$on$a$new$package$version General$UI$improvement Performance$optimization Global$CRAN$view View$all$packages$of$a$maintainer Present$information$about$package$tests Function$call$graph
  • 10.
    Thanks ffoorr yyoouurraatttteennttiioonn Questions? SSlliiddeess:: hhttttpp::////mmaaeelliicckk..nneett//pprreesseennttaattiioonnss//iiccssmmee22001144//