Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics...

54
Department of Statistics Prospects and Challenges for CRAN – with a glance on Ubuntu binaries Uwe Ligges, Kurt Hornik, Duncan Murdoch, Brian Ripley, Stefan Theußl [email protected] The R Project for Statistical Computing useR! 2010, Gaithersburg

Transcript of Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics...

Page 1: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Department of Statistics

Prospects and Challenges for CRAN –with a glance on Ubuntu binaries

Uwe Ligges, Kurt Hornik, Duncan Murdoch,Brian Ripley, Stefan Theußl

[email protected]

The R Project for Statistical Computing

useR! 2010, Gaithersburg

Page 2: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Department of Statistics

Prospects and Challenges for CRAN –with a glance on 64-bit Windows binaries

Uwe Ligges, Kurt Hornik, Duncan Murdoch,Brian Ripley, Stefan Theußl

[email protected]

The R Project for Statistical Computing

useR! 2010, Gaithersburg

Page 3: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 2

Contents / Introduction

Cornerstones of R’s success:

Decentralized and modularized way of creating softwareStandardized format of packages and package systemAccessibility by a broad audience:standardized repositories

CRAN repository contains more than 2460 packages

Ease of installing packagesChecks help to provide at least some kind of quality

To support such a loosely coupled development model:verification of certain formal quality criteria

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 4: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 2

Contents / Introduction

Cornerstones of R’s success:

Decentralized and modularized way of creating softwareStandardized format of packages and package systemAccessibility by a broad audience:standardized repositories

CRAN repository contains more than 2460 packages

Ease of installing packagesChecks help to provide at least some kind of quality

To support such a loosely coupled development model:verification of certain formal quality criteria

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 5: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 2

Contents / Introduction

Cornerstones of R’s success:

Decentralized and modularized way of creating softwareStandardized format of packages and package systemAccessibility by a broad audience:standardized repositories

CRAN repository contains more than 2460 packages

Ease of installing packagesChecks help to provide at least some kind of quality

To support such a loosely coupled development model:verification of certain formal quality criteria

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 6: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 3

Contents / Introduction

Established quality assurance systems and collaborativeinfrastructures typically face several challenges

More and more has been or has to be automated:R package management system has gone a long andsuccessful way to also support repository maintainers,but we have to go further

Services:

Check result summariesBinariesOther support of the loosely coupled development model

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 7: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 4

Products

We can think of

packages as ‘products’,

potential users as ‘customers’,

package repositories like CRAN: ‘warehouse’-like storageareas.

If the ‘right’ product is not available:

Easy for customers to become contributors: creating newpackage to fill the gap

Decentralized and modularized way of creating software

Rather then reinventing the wheel, package authors wiselyreuse code of other packages

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 8: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 4

Products

We can think of

packages as ‘products’,

potential users as ‘customers’,

package repositories like CRAN: ‘warehouse’-like storageareas.

If the ‘right’ product is not available:

Easy for customers to become contributors: creating newpackage to fill the gap

Decentralized and modularized way of creating software

Rather then reinventing the wheel, package authors wiselyreuse code of other packages

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 9: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 5

Repositories

CRAN, BioConductor, Omega(hat), R-Forge, and manyothers

Publication mechanism for CRAN:

Submit contributed source package via ftp uploadNotify CRAN maintainersPackage checked by a CRAN maintainerIf fine, package is included for provision.Binary versions are created and checkedRegular checks

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 10: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 6

Other OSS Repositories

Other Open Source Software Repositories:

Debian GNU Linux

Other Linux distributions

Perl (CPAN)

. . .

Debian GNU Linux offers a very sophisticated packagemanagement system an pursues a approach similar to CRAN:

Relationships between packages declared in the package’scontrol file(Depends, Recommends, Suggests, Enhances, etc.)

Packages are checked for certain formal quality criteria

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 11: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 7

Dependencies

Packages might depend on other packages that againdepend on ...

Hierarchy of dependencies could be broken by a simplebug in one of the packages:implications on the interoperability between packages

Check system that allows for recursive checking

Check system for huge package repositories should beparallelized:deal with thousands of packages while respectingdependency structures

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 12: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 8

Dependency levels

Package maintainers specify dependencies in theDESCRIPTION file:

Depends: Package B depends on functionality in package Ain such a way that package A is loaded inadvance of B

Imports: Package B imports (parts of) the namespace ofpackage A into its own namespace

LinkingTo: Package B links to compiled code in package A

Suggests: Some functionality or examples in thedocumentation of package B depend on packageA

Enhances: Package B enhances packages A functionality butworks without A being present

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 13: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 9

Dependency levels

Depends, Imports and LinkingTo must be fulfilled atinstallation time

Suggests must typically be available when a package ischecked

Usually two different types of dependency graphs have tobe calculated

Graphs needed for finding the correct installation orderGraphs needed for finding what have to be checked

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 14: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 10

(Reverse) dependencies

Consider

package B depends on package A;formally denoted A ∈ d(B), where d(B) entails alldependencies of B

packages C and D depend on package B ,i.e. A ∈ dR(C ), A ∈ dR(D)

dR(D) denotes all recursive dependencies of package D,i.e. the transitive closure of all dependencies of D.

then once A is updated, we definitely need to

re-check packages A, B , C , and D,

because newly introduced features or changes in A could havebroken something somewhere else.

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 15: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 11

(Reverse) dependencies

Reverse dependencies of A denoted d−1(A), i.e., allpackages depending on A.

Recursive reverse dependencies: C ∈ d−1R (A) has to be

considered for re-checking interoperability.

With growth of CRAN: frequently an update of onepackage P breaks code in some dependent package(s)d−1

R (P).

Wonder why CRAN worked fairly well until 2008 withoutthese checks

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 16: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 11

(Reverse) dependencies

Reverse dependencies of A denoted d−1(A), i.e., allpackages depending on A.

Recursive reverse dependencies: C ∈ d−1R (A) has to be

considered for re-checking interoperability.

With growth of CRAN: frequently an update of onepackage P breaks code in some dependent package(s)d−1

R (P).

Wonder why CRAN worked fairly well until 2008 withoutthese checks

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 17: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 12

(Reverse) dependencies

We even may need – in addition to a new binary for A –some updated binary packages for B, C and D:e.g. if S4 classes and/or saved images are involved

Find out which other packages are ‘involved’ (inclusivethe recursive dependencies) in an update of a givenpackage using

tools::dependsOnPkgs(pkgs,dependencies = c("Depends", "Imports", "LinkingTo"),recursive = TRUE, lib.loc = NULL,installed = installed.packages(lib.loc,

fields = "Enhances"))

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 18: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 13

(Reverse) dependencies

Number of CRAN packages with 0, 1, . . . , and max. numberof (recursive / reverse) dependencies:

dependencies 0 1 2 3 4 5 6 max

flat 809 573 365 227 180 97 57 19recursive 809 265 182 126 93 120 110 33

flat reverse 1614 336 132 83 33 37 20 313recursive reverse 1614 245 106 66 52 25 20 1141

based on dependency levels

Depends, Imports, LinkingTo

plus Suggests for flat reverse and recursive reversedependencies

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 19: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 14

(Reverse) dependencies

Selected CRAN packages with extreme number of (recursive /reverse) dependencies

dependencies MASS survival Metabonomic sisus

flat 4 4 19 18recursive 4 4 33 31

flat reverse 313 127 0 0recursive reverse 1065 1141 0 0

based on dependency levels

Depends, Imports, LinkingTo

plus Suggests for flat reverse and recursive reversedependencies

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 20: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 15

(Reverse) dependencies

CRAN’s dependency matrix is sparse

Roughly half (> 1000) of all CRAN packages ‘depend’(recursively) on packages MASS or survival

This is a problem given the runtime and many packageupdates a day — at least without allowing for parallelchecks (and installs)

Let us take look at dependency graphs created with thehelp of package igraph

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 21: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 15

(Reverse) dependencies

CRAN’s dependency matrix is sparse

Roughly half (> 1000) of all CRAN packages ‘depend’(recursively) on packages MASS or survival

This is a problem given the runtime and many packageupdates a day — at least without allowing for parallelchecks (and installs)

Let us take look at dependency graphs created with thehelp of package igraph

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 22: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 16

(Reverse) dependencies

Dependency graph for package TIMP

dependency levels: Depends, Imports and LinkingTo

cluster

stats

nnls

methods

graphics

MASS

utils

tcltk

minpack.lm

splinescolorspace

gtools

gdata

fields

grDevices

spam

odesolve

grid

vcdgplots

caTools

bitops

TIMP

gclus

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 23: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 17

(Reverse) dependencies

Graph representing the recursive reverse dependencies of packageMatrix as needed in every new check of the given package;

dep. levels: Depends, Imports, LinkingTo, and Suggests

ADaCGHHmisc

AERlmtest

sandwichstrucchange

zoodynlm

mlogitplm

pscl

sampleSelectionsystemfittseries

Amelia

Zelig

AnalyzeFMRI

R.matlab

BARDmaptools

spdep

BB

BHH2

FrF2

BSDA

e1071

BSagri

multcomp

mratiosMCPANpairwiseCI

geepack

BaMmice

BayesX

colorspace

Bergm

networkergm

BiodiversityR

vegan mgcv

Rcmdr

effectsBiplotGUI

BoolNet

igraph

BootPR

Boruta

mlbenchBradleyTerry

brglmBradleyTerry2

lme4 CADFtest

CADStat

gmodels

CCA

fda

fields

CORREP

COZIGAM

CPE DesignChainLadder

Matrix

CircSpatial

spam

CollocInfer

CorrBinCprob

DAKS

relations

sets

DAMisc

DCluster

DSpat

spatstat

Daimipred

mboost

Deducerggplot2

lawstat

DeducerPlugInExample

DescribeDisplay

DierckxSpline

DoE.base

vcd

DoE.wrapperDoseFinding

EMDETCSimComp

Ecdat

EnQuireR

EquiNorm

FAiR

nFactors

FD

ade4

geometry

FSelector

RWekaFTICRMS

FactoClass

FinTS

psych

FrF2.catlg128

FunCluster

FunNet

sna

G1DBN

GGMselect

GGally

GLMMarpaccuracy

GOSimflexmix

GRRGIarm

GenABELhaplo.stats GeneReg

GeneclustGenelandGeoXp

GrassmannOptim

Guerry

HDMD

HGLMMM

HH

HSAURcoin

party

HSAUR2

Haplin

HaploSimpedigree

HistData

IBrokers

xts

ICS

survey

ICSNP

IFP

IQCC

micEcon

JointModeling

LLdecomp

LogConcDEAD

MAc

MAclinical st

MAd

MCMCglmm

MEMSS MFDF

MNM

SpatialNP

MatchItcem

McompforecastMetabonomic

clusterSim

MortalitySmooth

svcm

MplusAutomation

gsubfnMuMIn

MultEq

NMRS

NeatMap

OjaNP PASWR

PBSadmb

PBSmodelling

PBSmapping

PKgraph

PairViz

TSP

PerformanceAnalytics

ProbForecastGOP

QT

RBloomberg

RC

REEMtree

RExcelInstaller

RGraphics

RKEA

tm

RLRsim

amer

RODM

verification

RPPanalyzer

RPyGeoRSAGA

RQDA

gstat

RSiena

RSurvey

RcmdrPlugin.DoERcmdrPlugin.Export

RcmdrPlugin.FactoMineR

RcmdrPlugin.HH

RcmdrPlugin.IPSUR

RcmdrPlugin.MAcRcmdrPlugin.MAd

RcmdrPlugin.PTRcmdrPlugin.SLCRcmdrPlugin.SurvivalTRcmdrPlugin.TeachingDemos

RcmdrPlugin.doex

RcmdrPlugin.epack

RcmdrPlugin.orlocaRcmdrPlugin.qcc

RcmdrPlugin.qualRcmdrPlugin.sosRcmdrPlugin.steepnessRcmdrPlugin.survival

RcsdpRecordLinkage

RthroughExcelWorkbooksInstaller

SASmixed

SDMToolsadehabitat

raster

SDaA

SDisc

SGCS

SHARE

SMIR

gnm

SNPassoc

SQLiteMap

STAR

Snowball

SpatialEpi

SpherWave

StatDA

StatFingerprintslabdsv

StatMatch

proxy

StreamMetabolism

TIMPTSA

TSMySQLtframePlusTSdbiTShistQuoteTSPostgreSQLTSSQLiteTSfame

TSodbcTSpadi

TTR

TWIX

TinnR

TreeRank

UScensus2000UScensus2000tractUScensus2000cdpUScensus2000addUScensus2000blkgrp

UsingR

VDCutil

VHDClassification

VIMVhayuR

YaleToolkit

adabag

ade4TkGUIadegenet

pegasadephylophylobase

ads

agricolae

klaR

anacor

analogue

anesrake

aqp

archetypes

arrayImpute

arrayMissPattern

arulespmml

arulesNBMinerarulesSequences

asbio

ascii

aspace

asuR

atmi

automap

bbmleemdbook

rms

bear

betaper

betareg

bfast

biclustflexclust

isa2

bifactorial

bindata

bipartite

blockmodelingboolean

profileModel

caMassClass

candisc

heplots

caret

glmnet

rocchda

catnet

cba

chemometrics

classGraph

classInt

classifly

clue

clustTool

fpc

clusterfly

cocorrespcodep

coenoflex

contrast

corrplot

seriation

cshapes

cxxPack

degreenet

denstrip

difR

diffusionMap

digeR

diseasemapping

doBy

dtw

dyn

its

ecespa

egonet

ensembleBMA

epinet

esd4all

expectreg

expsmooth

ez

fExtremes

fGarch

fNonlinear

fRegression

favir

flubase

fma

trimcluster

prabclus

fractalrockquantmodfrontiermiscTools

ftsafxregime

gamlss.add

gamlss.utilgamlss.demo gamm4gap gcExplorer

genefusurvcomp

genoPlotR

geosphere

geozoo

tourr

glmdm

glmmBUGS

gmm

gogarch

vars

granova

gregmisc

gsDesign

haplo.ccs

hergm

hts

hydrosanity

playwith

hyperSpec

ibr

ic.inferrelaimpoinfluence.ME

intamapintamapInteractive

spcosa

integrativeME

mixOmics

intervalpermipw

isopam

kernelPop

klin

kst

languageR

latentnet

latticeExtra

latticedl

mlmRevlatticist

lcd

ldalordif

lsa

mFiltertsDyn

mar1s

marginTreemclogit

mebootmediation

mefa

mi

micEconAidsmicEconCESmicEconSNQP

migui

mirfmixAK

modTempEff

monoProc

monomvn

mugnet

multcompView

pgirmess

multmod

munsell

mvgraph

neldermead

optimbase

optimsimplex

netmodels

statnet

nlrwr

nnDiagyaImpute

nonparaeff

nonrandom

nparcomp

oblique.tree

ocodfWeave.survey

ofw

openNLP

optBiomarker

optpart

ordinal

pARccs

packdeppaleoMAS

paltran

pamctdp

pamm

parcor

pcalgpcurve

pec

pedantics

pedigreemm

penalizedSVM

pendensity

phmm

phybase

phyloclim

picante

popPK

prefmod

primer

profr

pseudo

psgp

psychotreeqgen

qlspack

rEMM

ramps

random.polychor.pa

rangeMapper

rattle

recommenderlab

reldistremix

rioja

ripa

rmetasim

rpsychi

rworldmap

samplingbook

scaRabee

scape

sdcMicro

sdesdtalt

season

seqinr

simPopulationsimba

simex

skmeans

snpXpert

soil.spec

solaRspaa

sparrspatialsegregation

speedglm

spefspgwr

sphet

sqldf

stringkernels

surveillance

surveyNG

svcR

tawny

termstrctgram

tiger

tileHMM

tlemix

tm.plugin.mail

tnettopicmodels

tossm

tourrGui

triadstrio

trip

tripEstimation

ttrTests

twang

untb

vcdExtra

vegdata

wasim

wnominate

wqwvioplot

(558 packages)

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 24: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 17

(Reverse) dependencies

Graph representing the recursive reverse dependencies of packageMatrix as needed in every new check of the given package;

dep. levels: Depends, Imports, LinkingTo, and Suggests

ADaCGHHmisc

AERlmtest

sandwichstrucchange

zoodynlm

mlogitplm

pscl

sampleSelectionsystemfittseries

Amelia

Zelig

AnalyzeFMRI

R.matlab

BARDmaptools

spdep

BB

BHH2

FrF2

BSDA

e1071

BSagri

multcomp

mratiosMCPANpairwiseCI

geepack

BaMmice

BayesX

colorspace

Bergm

networkergm

BiodiversityR

vegan mgcv

Rcmdr

effectsBiplotGUI

BoolNet

igraph

BootPR

Boruta

mlbenchBradleyTerry

brglmBradleyTerry2

lme4 CADFtest

CADStat

gmodels

CCA

fda

fields

CORREP

COZIGAM

CPE DesignChainLadder

Matrix

CircSpatial

spam

CollocInfer

CorrBinCprob

DAKS

relations

sets

DAMisc

DCluster

DSpat

spatstat

Daimipred

mboost

Deducerggplot2

lawstat

DeducerPlugInExample

DescribeDisplay

DierckxSpline

DoE.base

vcd

DoE.wrapperDoseFinding

EMDETCSimComp

Ecdat

EnQuireR

EquiNorm

FAiR

nFactors

FD

ade4

geometry

FSelector

RWekaFTICRMS

FactoClass

FinTS

psych

FrF2.catlg128

FunCluster

FunNet

sna

G1DBN

GGMselect

GGally

GLMMarpaccuracy

GOSimflexmix

GRRGIarm

GenABELhaplo.stats GeneReg

GeneclustGenelandGeoXp

GrassmannOptim

Guerry

HDMD

HGLMMM

HH

HSAURcoin

party

HSAUR2

Haplin

HaploSimpedigree

HistData

IBrokers

xts

ICS

survey

ICSNP

IFP

IQCC

micEcon

JointModeling

LLdecomp

LogConcDEAD

MAc

MAclinical st

MAd

MCMCglmm

MEMSS MFDF

MNM

SpatialNP

MatchItcem

McompforecastMetabonomic

clusterSim

MortalitySmooth

svcm

MplusAutomation

gsubfnMuMIn

MultEq

NMRS

NeatMap

OjaNP PASWR

PBSadmb

PBSmodelling

PBSmapping

PKgraph

PairViz

TSP

PerformanceAnalytics

ProbForecastGOP

QT

RBloomberg

RC

REEMtree

RExcelInstaller

RGraphics

RKEA

tm

RLRsim

amer

RODM

verification

RPPanalyzer

RPyGeoRSAGA

RQDA

gstat

RSiena

RSurvey

RcmdrPlugin.DoERcmdrPlugin.Export

RcmdrPlugin.FactoMineR

RcmdrPlugin.HH

RcmdrPlugin.IPSUR

RcmdrPlugin.MAcRcmdrPlugin.MAd

RcmdrPlugin.PTRcmdrPlugin.SLCRcmdrPlugin.SurvivalTRcmdrPlugin.TeachingDemos

RcmdrPlugin.doex

RcmdrPlugin.epack

RcmdrPlugin.orlocaRcmdrPlugin.qcc

RcmdrPlugin.qualRcmdrPlugin.sosRcmdrPlugin.steepnessRcmdrPlugin.survival

RcsdpRecordLinkage

RthroughExcelWorkbooksInstaller

SASmixed

SDMToolsadehabitat

raster

SDaA

SDisc

SGCS

SHARE

SMIR

gnm

SNPassoc

SQLiteMap

STAR

Snowball

SpatialEpi

SpherWave

StatDA

StatFingerprintslabdsv

StatMatch

proxy

StreamMetabolism

TIMPTSA

TSMySQLtframePlusTSdbiTShistQuoteTSPostgreSQLTSSQLiteTSfame

TSodbcTSpadi

TTR

TWIX

TinnR

TreeRank

UScensus2000UScensus2000tractUScensus2000cdpUScensus2000addUScensus2000blkgrp

UsingR

VDCutil

VHDClassification

VIMVhayuR

YaleToolkit

adabag

ade4TkGUIadegenet

pegasadephylophylobase

ads

agricolae

klaR

anacor

analogue

anesrake

aqp

archetypes

arrayImpute

arrayMissPattern

arulespmml

arulesNBMinerarulesSequences

asbio

ascii

aspace

asuR

atmi

automap

bbmleemdbook

rms

bear

betaper

betareg

bfast

biclustflexclust

isa2

bifactorial

bindata

bipartite

blockmodelingboolean

profileModel

caMassClass

candisc

heplots

caret

glmnet

rocchda

catnet

cba

chemometrics

classGraph

classInt

classifly

clue

clustTool

fpc

clusterfly

cocorrespcodep

coenoflex

contrast

corrplot

seriation

cshapes

cxxPack

degreenet

denstrip

difR

diffusionMap

digeR

diseasemapping

doBy

dtw

dyn

its

ecespa

egonet

ensembleBMA

epinet

esd4all

expectreg

expsmooth

ez

fExtremes

fGarch

fNonlinear

fRegression

favir

flubase

fma

trimcluster

prabclus

fractalrockquantmodfrontiermiscTools

ftsafxregime

gamlss.add

gamlss.utilgamlss.demo gamm4gap gcExplorer

genefusurvcomp

genoPlotR

geosphere

geozoo

tourr

glmdm

glmmBUGS

gmm

gogarch

vars

granova

gregmisc

gsDesign

haplo.ccs

hergm

hts

hydrosanity

playwith

hyperSpec

ibr

ic.inferrelaimpoinfluence.ME

intamapintamapInteractive

spcosa

integrativeME

mixOmics

intervalpermipw

isopam

kernelPop

klin

kst

languageR

latentnet

latticeExtra

latticedl

mlmRevlatticist

lcd

ldalordif

lsa

mFiltertsDyn

mar1s

marginTreemclogit

mebootmediation

mefa

mi

micEconAidsmicEconCESmicEconSNQP

migui

mirfmixAK

modTempEff

monoProc

monomvn

mugnet

multcompView

pgirmess

multmod

munsell

mvgraph

neldermead

optimbase

optimsimplex

netmodels

statnet

nlrwr

nnDiagyaImpute

nonparaeff

nonrandom

nparcomp

oblique.tree

ocodfWeave.survey

ofw

openNLP

optBiomarker

optpart

ordinal

pARccs

packdeppaleoMAS

paltran

pamctdp

pamm

parcor

pcalgpcurve

pec

pedantics

pedigreemm

penalizedSVM

pendensity

phmm

phybase

phyloclim

picante

popPK

prefmod

primer

profr

pseudo

psgp

psychotreeqgen

qlspack

rEMM

ramps

random.polychor.pa

rangeMapper

rattle

recommenderlab

reldistremix

rioja

ripa

rmetasim

rpsychi

rworldmap

samplingbook

scaRabee

scape

sdcMicro

sdesdtalt

season

seqinr

simPopulationsimba

simex

skmeans

snpXpert

soil.spec

solaRspaa

sparrspatialsegregation

speedglm

spefspgwr

sphet

sqldf

stringkernels

surveillance

surveyNG

svcR

tawny

termstrctgram

tiger

tileHMM

tlemix

tm.plugin.mail

tnettopicmodels

tossm

tourrGui

triadstrio

trip

tripEstimation

ttrTests

twang

untb

vcdExtra

vegdata

wasim

wnominate

wqwvioplot

(558 packages)

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 25: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 18

(Reverse) dependencies

Graph representing the recursive reverse dependencies of packageclue as needed in every new check of the given package;

dep. levels: Depends, Imports, LinkingTo, and Suggests

DAKS

relations

biclust

flexclust

isa2

clue

clustTool

corrplotseriation

gcExplorer

kst

rattle

skmeans

topicmodels

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 26: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 19

Resources

Combinations of different flavors of R:

branches: devel, patched, and releaseplatforms: Linux, Mac OS X, Solaris, Windowsarchitectures: SPARC, ix86, x86 64

Building and checking of packages on all combinationscan become rather time consuming, particularly forchecking reverse recursive dependencies

development version of R changes over time:regular checks (up to daily)

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 27: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 20

Computer resources

Desirable to get check results for development processesearly

Build/check system required that

finished within (at least!) 24 hoursfor each flavor of R in order toprovide the check results when needed, not thereaftermake binaries available in time during an R release cycle(e.g. the day after alpha/beta/rc/release)

http://CRAN.R-project.org/web/checks/check_

timings.html

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 28: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 21

Computer resources

Why should we ‘improve’ computer resources?

Tasks of a CRAN auto-build-and-check machine

Make R-devel (3 times a week?)

Build and check new and updated packages at least forR-release, R-devel, and R-oldrelease (?):

including reverse dependencieseach 6 hours

Notifications for developers (at least in case of ERRORs?)

Check summaries

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 29: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 21

Computer resources

Why should we ‘improve’ computer resources?

Tasks of a CRAN auto-build-and-check machine

Re-check all packages for R-devel (and R-patched?) on aregular (weekly?) basisAim: make it possible to look out for errors for both RCore developers and package developers

Provide the ftp check system for package developers as aservice

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 30: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 22

CRAN Windows Binaries’ Package Check

Last updated on 2006-06-13 17:51:39 (useR! 2006) (simplified)

No Package Version R-2.3.1 Inst. time Check time

... ... ... ... ... ...742 wavelets 0.2-1 OK 26 88743 waveslim 1.5 OK 58 109744 wavethresh 2.2-8 OK 30 75745 wccsom 1.1.0 OK 18 87746 wle 0.9-2 OK 24 365747 xgobi 1.2-13 ReadMe748 xtable 1.3-2 OK 22 52749 zicounts 1.1.4 WARNING 26 46750 zoo 1.1-0 OK 23 60

SUM (in hours) on Xeon 3.06 GHz: 6.34 19.77≈ 26 hours

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 31: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 23

CRAN Windows Binaries’ Package Check2010

Last updated on 2010-07-16 19:50:06 (last Friday) (simplified)

No Package Version R-2.11.1 Inst. time Check time

... ... ... ... ... ...2458 zic 0.5-3 OK 36 172459 zipfR 0.6-5 OK 7 632460 zoeppritz 1.0-2 OK 1 162461 zoo 1.6-4 OK 4 622462 zyp 0.9-1 OK 1 18

Sum (in hours), 2x Xeon E5430 Quad: 6.9/8 50.6/8≈ 8 hours

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 32: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 24

Parallel installations

Due to the requirements for the CRAN maintenance, parallelpackage installation has been made possible since R-2.9.0

Per package locks rather than per library locks (00LOCK)

Package dependencies are calculated in R

Written to a Makefile

Finally resolved by ‘make -jX’

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 33: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 25

Parallel installations

Makefile (as used on CRAN):

PKG := packageA packageB packageC

PKG_INST := $(PKG:=-install.out)

all: $(PKG_INST)

%-install.out: %

MAKE=make MAKEFLAGS= R -f install.R\

--vanilla --quiet --args Path/to/library\

build $< R_default_packages=NULL

packageA-install.out: packageB-install.out

...

[one line for each package]

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 34: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 26

Parallel installations

Parallel installations on user level

within R

install.packages(pkgs, lib, .....,

Ncpus = getOption("Ncpus"), ...)

which generates the Makefile and several instances of

R CMD INSTALL --pkglock .....

are used (which is also possible on user level).

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 35: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 27

Human resources

It is all automated, so what?

Tasks of a repository maintainer

Maintaining and adapting the scripts themselves

Maintaining the hardware of a devoted machine

Setting up repositories for new versions of R

Handling errors that were not covered by the scripts

Answering questions (for developers and users)

Asking package maintainers to fix their packages

Quality management can be improved by moving as manytasks as possible from human to computational resources.

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 36: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 28

Base system vs. packages

Functionality of the base R system is defined, well tested,and the code base of the current “stable” branch doesnot change significantly

New version of R is released twice a year

Only bugfixes are provided between releases (‘patched’flavor of R)

For packages, contributors upload code without a specificschedule

Release vs. (current) development platforms

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 37: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 29

Solutions: R-Forge

R-Forge (http://R-Forge.R-project.org), for thedistributed development approach of packages, offers:

Central platform for the development of R packages andother projects

Organized in ‘project’

Various tools and web-based features for softwaredevelopment, communication and other services

SVN repository

CRAN-style repository of R packages built from thecommitted source code

Reflecting the development progress made in therepository

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 38: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 30

Solutions: R-Forge

Social networking?

Allow developer to check if some package update willbreak code in other packages before the CRAN release(expensive!)

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 39: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 30

Solutions: R-Forge

Social networking?

Allow developer to check if some package update willbreak code in other packages before the CRAN release(expensive!)

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 40: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 31

Solutions: Build and check systems

Package developers without access to Windows machines forbuilding or testing purposes may use

special service called win-builder

http://win-builder.R-project.org

Allows to upload source packages and providescorresponding Windows binaries and check results

Such services may appear for more than just the Windowsplatform on R-Forge ‘soon’

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 41: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 32

... glance on 64-bit Windows binaries

64-bit Windows binaries are available since early 2010

Shortly after a suitable compiler collection (gcc-4.4.x,MinGW beta) was released

Notification by Arm Gong on January 04, 2010

First official release with R-2.11.0

Allows for processes using > 2Gb

Binaries distributed separately:separate installer, separate checks, separate binaryrepositories:CRAN-mirror/bin/windows/contrib/2.11

CRAN-mirror/bin/windows64/contrib/2.11

Speed: Seems to be faster than 32-bit – but with adifferent more recent compiler version

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 42: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 33

CRAN checks (July 20, 2010)

http://cran.r-project.org/web/checks/check_summary.html:

Flavor OK WARN ERROR Totalr-devel-linux-ix86 2195 248 17 2460r-devel-linux-x86 64-gcc-debian 2188 244 28 2460r-devel-linux-x86 64-gcc-fedora 2197 244 20 2461r-patched-linux-ix86 2229 220 11 2460r-patched-linux-x86 64 2218 219 23 2460r-patched-solaris-sparc 2128 197 113 2438r-patched-solaris-x86 2128 202 108 2438r-release-linux-ix86 2230 221 9 2460r-release-macosx-ix86 2160 208 90 2458r-release-windows-ix86 2196 216 13 2425r-release-windows64-x86 64 2170 196 39 2405r-oldrel-macosx-ix86 2159 172 113 2444r-oldrel-windows-ix86 2217 168 40 2425

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 43: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 34

64-bit Windows binaries for R-2.12.x

We aim at having bi-arch binaries for R-2.12.x(release to be in October?)

Both 32-bit and 64-bit binary parts in one package

Many parts of base R and binary packages areindependent of 32-bit vs. 64-bit

Just one repository required

Install and check time reduced:Only parts depending on ‘bit’ have to be done twice

Shared libraries (DLLs) in ‘./libs/i386/’, ‘./libs/x64/’

Same true for directories ‘./bin/.’ and ‘./etc/.’ in base R

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 44: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 35

64-bit Windows binaries for R-2.12.x

MinGW-w64 ‘1.0’ changed to gcc pre-4.5.1(underscore conventions changed)

Package authors using ‘configure.win’ or ‘Makefile.win’are encouraged to switch to ‘Makevars.win’, if applicable

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 45: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 36

Prospects and Challenges

Prospects of a loosely-coupled development approach arediverse:

Rapid development

Diversity

Alternative approaches facing different aspects ofimplementations such as speed vs. accuracy

Challenges are diverse, many solutions that have beenimplemented / are shortly before being implemented:

(Recursive / reverse) dependency calculations

Parallelized checks

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 46: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 37

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Given a package is updated, all its reverse dependenciesare re-built for a binary repository ...

... and distributed through all the CRAN mirrors

Sometimes more than 300 packages on a single day ...

... while just a few of them really need to be re-built inbinary form

Infrastructure that supports calculation of the necessity ofa binary re-built not yet in place

No mechanism in place to make update.packages()collect such (required) rebuilds

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 47: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 37

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Given a package is updated, all its reverse dependenciesare re-built for a binary repository ...

... and distributed through all the CRAN mirrors

Sometimes more than 300 packages on a single day ...

... while just a few of them really need to be re-built inbinary form

Infrastructure that supports calculation of the necessity ofa binary re-built not yet in place

No mechanism in place to make update.packages()collect such (required) rebuilds

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 48: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 37

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Given a package is updated, all its reverse dependenciesare re-built for a binary repository ...

... and distributed through all the CRAN mirrors

Sometimes more than 300 packages on a single day ...

... while just a few of them really need to be re-built inbinary form

Infrastructure that supports calculation of the necessity ofa binary re-built not yet in place

No mechanism in place to make update.packages()collect such (required) rebuilds

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 49: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 37

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Given a package is updated, all its reverse dependenciesare re-built for a binary repository ...

... and distributed through all the CRAN mirrors

Sometimes more than 300 packages on a single day ...

... while just a few of them really need to be re-built inbinary form

Infrastructure that supports calculation of the necessity ofa binary re-built not yet in place

No mechanism in place to make update.packages()collect such (required) rebuilds

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 50: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 37

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Given a package is updated, all its reverse dependenciesare re-built for a binary repository ...

... and distributed through all the CRAN mirrors

Sometimes more than 300 packages on a single day ...

... while just a few of them really need to be re-built inbinary form

Infrastructure that supports calculation of the necessity ofa binary re-built not yet in place

No mechanism in place to make update.packages()collect such (required) rebuilds

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 51: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 38

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Some better database like system for each library (noneed to parse thousands of DESCRIPTION files) / eachrepository

Moving rest of perl code to R (as we have seen a speedgain when porting the INSTALL script from perl to R),‘Rd2 parser’ (Duncan Murdoch), and hopefully also forthe ported check scripts

Being much stricter in CRAN maintenance

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 52: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 38

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Some better database like system for each library (noneed to parse thousands of DESCRIPTION files) / eachrepository

Moving rest of perl code to R (as we have seen a speedgain when porting the INSTALL script from perl to R),‘Rd2 parser’ (Duncan Murdoch), and hopefully also forthe ported check scripts

Being much stricter in CRAN maintenance

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 53: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 38

Questions?

Questions?

Indeed, there are some open questions!

Open issues and questions:

Some better database like system for each library (noneed to parse thousands of DESCRIPTION files) / eachrepository

Moving rest of perl code to R (as we have seen a speedgain when porting the INSTALL script from perl to R),‘Rd2 parser’ (Duncan Murdoch), and hopefully also forthe ported check scripts

Being much stricter in CRAN maintenance

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg

Page 54: Prospects and Challenges for CRAN with a glance on … · 2011-01-12 · Department of Statistics Prospects and Challenges for CRAN {with a glance on 64-bit Windows binaries Uwe Ligges,

Introduction (Reverse) dependencies Resources Parallel Solutions 64-bit Windows Prospects and Challenges 39

References

Csardi G, Nepusz T (2006): The igraph software packagefor complex network research. InterJournal ComplexSystems: 1695.

Jackson I, Schwarz C, et al. (2010): Debian PolicyManual, version 3.8.4.0.

Theußl S, Ligges U, Hornik K (2010): Prospects andChallenges in R Package Development. ComputationalStatistics, to appear.

Theußl S, Zeileis A (2009): Collaborative softwaredevelopment using R-Forge. The R Journal 1(1): 9–14.

Uwe Ligges et al.: Prospects and Challenges for CRAN useR! 2010, Gaithersburg