"When GitHub meets CRAN: An Analysis of Inter-Repository Package Dependency Problems"
Presentation of a research article on software ecosystems at the International Conference on Software Analysis, Evolution and Reengineering (SANER 2016, Osaka, Japan). Joint work by Alexandre Decan, Tom Mens, Maelick Claes, Philippe Grosjean, COMPLEXYS Research Institute, University of Mons, Belgium
15. SANER – Osaka, Japan, March 2016
Managing R
package dependencies
In which repository are package dependencies saUsfied?
ES SUFFER
OBLEMS?
around R’s
allation of R
repositories
available R
ojects filled
uages. Even
with the R
R package.
nts devtools
Additionally,
repositories
dependency
s hosted on
cy problems
of packages
by GitHub
t frequently.
er-repository
on GitHub depend on at least one package in CRAN, while
85.3% of all declared dependencies in R packages on GitHub
are satisfied by CRAN packages. Note that, if a package is
hosted by both CRAN and GitHub, we count it as a CRAN
package, because for dependency satisfaction we privilege
the officially distributed package over its development ver-
sion.
Other repositories
CRAN GitHub
0.5
1.598.0
85.3
10.7
4.00.8
1.8
61.5
70.6
11.8
8.6
Figure 5. Inter-repository package dependencies for CRAN and GitHub.
In blue: percentage of packages. In red: percentage of dependencies.
Because of the constraints imposed by CRAN’s daily
R CMD check, CRAN is self-contained. 98.0% of its
Blue = % of packages in repository A that
have a dependency sa@sfied by a package
in repository B
Red = % of dependencies of packages in
repository A that are sa@sfied by a package
in repository B
(BioConductor, OmegaHat, …)
CRAN is self-contained, so it does
not suffer from inter-repository
dependency problems.
But what about GitHub?
16. SANER – Osaka, Japan, March 2016
Managing R
package dependencies
In which repository are package dependencies saUsfied?
ES SUFFER
OBLEMS?
around R’s
allation of R
repositories
available R
ojects filled
uages. Even
with the R
R package.
nts devtools
Additionally,
repositories
dependency
s hosted on
cy problems
of packages
by GitHub
t frequently.
er-repository
on GitHub depend on at least one package in CRAN, while
85.3% of all declared dependencies in R packages on GitHub
are satisfied by CRAN packages. Note that, if a package is
hosted by both CRAN and GitHub, we count it as a CRAN
package, because for dependency satisfaction we privilege
the officially distributed package over its development ver-
sion.
Other repositories
CRAN GitHub
0.5
1.598.0
85.3
10.7
4.00.8
1.8
61.5
70.6
11.8
8.6
Figure 5. Inter-repository package dependencies for CRAN and GitHub.
In blue: percentage of packages. In red: percentage of dependencies.
Because of the constraints imposed by CRAN’s daily
R CMD check, CRAN is self-contained. 98.0% of its
Blue = % of packages in repository A that
have a dependency sa@sfied by a package
in repository B
Red = % of dependencies of packages in
repository A that are sa@sfied by a package
in repository B
(BioConductor, OmegaHat, …)