Possible Directions for Improving Dependency Versioning in R
This addresses a critical infrastructure problem for R users and developers, but is incremental as it adapts existing solutions from other communities.
The paper identifies the lack of dependency versioning in R's package management infrastructure as a problem limiting reliability and growth, and suggests approaches from other open-source communities to address it through three defined use cases.
One of the most powerful features of R is its infrastructure for contributed code. The built-in package manager and complementary repositories provide a great system for development and exchange of code, and have played an important role in the growth of the platform towards the de-facto standard in statistical computing that it is today. However, the number of packages on CRAN and other repositories has increased beyond what might have been foreseen, and is revealing some limitations of the current design. One such problem is the general lack of dependency versioning in the infrastructure. This paper explores this problem in greater detail, and suggests approaches taken by other open source communities that might work for R as well. Three use cases are defined that exemplify the issue, and illustrate how improving this aspect of package management could increase reliability while supporting further growth of the R community.