maintainer: a web-based dashboard for maintainers of cran packages

10
maintaineR maintaineR A web-based dashboard for main- A web-based dashboard for main- tainers of CRAN tainers of CRAN packages packages Maëlick Claes Tom Mens & Philippe Grosjean & 2 nd October 2014, ICSME 2014 Software Engineering Lab Numerical Ecology of Aquatic Systems Lab 2

Upload: tom-mens

Post on 25-Dec-2014

171 views

Category:

Software


1 download

DESCRIPTION

Tool demo presentation by Maelick Claes of UMONS (directed by T. Mens and Ph. Grosjean) during ICSME 2014 conference in Victoria, Canada (October 2014). Abstract: The R development community maintains thousands of packages through its Comprehensive R Archive Network CRAN. The growth and evolution of this archive makes it more and more difficult to maintain packages and their interdependencies, and the existing tools that aim to help developers in this process no longer suffice. We propose maintaineR, a web-based dashboard that allows CRAN package developers to understand and deal with the implications and problems raised by package updates. The dashboard complements existing analysis tools by providing additional support such as the visualisation of package dependencies and reverse dependencies, package conflicts, cross-package function clones, and so on.

TRANSCRIPT

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

maintaineRmaintaineRA web-based dashboard for main-A web-based dashboard for main-

tainers of CRAN tainers of CRAN packagespackages

Maëlick(ClaesTom$Mens$&$Philippe$Grosjean

&$

2nd$October$2014,$ICSME$2014

Software$Engineering$Lab$ Numerical$Ecology$of

Aquatic$Systems$Lab

2

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

IntroductionIntroduction

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

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$Rpackages?

hUp://www.rXproject.org

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

Previous workPrevious workPreliminary$empirical$study$using$CRAN$metaXdata

On$the$maintainability$of$CRAN$packages$(CSMRXWCRE$2014)

R$CMD$check$results$from$CRAN:

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

hUp://cran.rXproject.org/web/checks/

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

maintaineRmaintaineR

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

ArchitectureArchitecture

maintaineRextractoR

cloneR

RCurl + XML

hash

igraph

DB WebApp

VirtualBox +

VagrantShiny

rChartstimeline

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

Running maintaineRRunning maintaineR

Required:$igraph,$rCharts,$d3Network,$shiny,$timeline,$RCurl,

shinyIncubator,$extractoR.utils

hUps://github.com/ecosXumons/maintaineR

hUps://github.com/ecosXumons/CRANData

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)

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

DemoDemohUps://www.youtube.com/watch?v=q3RWTsVnPqg

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

Future workFuture workCLI$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

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

Thanks for your attentionThanks for your attention

Questions?Questions?Slides: Slides: http://maelick.net/presentations/icsme2014/http://maelick.net/presentations/icsme2014/