The ‘Changes on CRAN’ article from the 2018-1 issue.
In the past 7 months, 1178 new packages were added to the CRAN package repository. 18 packages were unarchived, 493 archived and none removed. The following shows the growth of the number of active packages in the CRAN package repository:
On 2018-06-30, the number of active packages was around 12582.
The package check pages now also show issues found by checks with alternative BLAS/LAPACK implementations (ATLAS, MKL and OpenBLAS), provided by Brian D. Ripley (see https://www.stats.ox.ac.uk/pub/bdr/Rblas/README.txt for more information).
Package maintainers who submitted packages this year found the automated submission system has been extended again. Incoming packages are automatically checked under both Linux and Windows. Based on these checks, the auto-check service (and in later steps possibly a CRAN team member) will take one of several actions:
reject the package, if the package does not pass the checks cleanly and the problem are not likely to be false positives.
triggers a manual inspection of the package, this always happens for first time submissions and also for packages that show possible problems that are likely to be false positives. In both cases some human action is required.
if a decision is pending a response from the package maintainer: If an additional issue was present in the package that we cannot check for in the incoming checks (such as the BLAS issues mentioned in the section above), the maintainer is automatically asked whether these issues have been fixed. Same is true for change of maintainer (or maintainer’s mail address) where the old maintainer (old address) is automatically asked to confirm the maintainer change. The answers have to be processed manually.
during a manual inspection, a human may trigger a new auto-check of the package for various reasons, e.g., after problems in the initial check or after updates of dependencies.
publish the package, if the package is already well established on CRAN, passes the checks cleanly, and does not have any reverse dependencies.
if the package cleanly passes the checks and has at least one reverse dependency, this action moves the package into a queue for auto-checking the package’s reverse dependencies. If the check status of at least one of the package’s reverse dependencies changes to a worse state, the maintainer is asked whether this is expected and the other maintainers of affected packages have been informed and hence action pending is triggered. If no change to a worse state is discovered, the next action is publish.
All these actions include an informative e-mail message to the package maintainer. The package is also moved to a corresponding subdirectory of the incoming directory on CRAN. Once an action is inspect or pending, a CRAN team member will trigger the next action. The additional directory pretest is the one that contains the yet unprocessed packages.
During June 2018, CRAN received 2122 package submissions. For these, 3571 actions took place of which 2433 (68.1%) were auto processed actions and 1138 (31.9%) manual actions.
Minus some special cases, a summary of the auto-processed and manually triggered actions follows:
action | archive | inspect | pending | pretest | publish | recheck |
---|---|---|---|---|---|---|
auto | 530 | 890 | 118 | 0 | 664 | 231 |
manual | 412 | 36 | 81 | 50 | 449 | 110 |
These include the final decisions for the submissions which were as follows:
action | archive | publish |
---|---|---|
auto | 470 (23.6%) | 578 (29.0%) |
manual | 410 (20.6%) | 535 (26.8%) |
where we only count those as auto processed whose publication happened automatically in all steps.
The large number of 1467 manual action items (not counting additional mail communication) shows that even more automation is needed and will follow.
As the CRAN team is no longer able to respond to individual help requests or being involved in lengthy discussions for exceptions, please really use the corresponding mailing lists such as R-package-devel (see https://www.r-project.org/mail.html).
The Policy now says the following:
CRAN hosts packages in publication quality and is not a development platform. A package’s contribution has to be non-trivial.
Packages should not write in the user’s home filespace (including
clipboards), nor anywhere else on the file system apart from the R
session’s temporary directory (or during installation in the
location pointed to by TMPDIR
: and such usage should be cleaned
up). Installing into the system’s R installation (e.g., scripts to
its bin
directory) is not allowed.
Packages should not attempt to disable compiler diagnostics.
Uploads must be source tarballs created by R CMD build
and
following the PACKAGE``_``VERSION``.tar.gz
naming scheme. This
should be done with current R-patched or the current release of R.
For packages which have recently been archived, a snapshot of the CRAN results page at the time of archival may be available under https://cran-archive.r-project.org/web/checks/. (Note that only a few of the links from the snapshot will work: normally those to listed ‘Alternative issues’ will.)
As of 2018-07, a full CRAN mirror takes about 176 G, which is quite a lot, in particular taking into account that a considerable part is not needed for current versions of R and contributed packages. CRAN mirrors already only provide Mac and Windows binaries for R versions not older than 5 years (currently, from R 3.0 onwards), with disk usages of 65 G (about 39%) and 46 G (about 26%), respectively, for Mac and Windows. Older versions are available from the CRAN archive service available at https://CRAN-archive.R-project.org (but not the CRAN mirrors). For the CRAN package repository, sources currently use 52 G, with 44 G used for archived (non-current) versions. Given that the source archive area takes up about 25% of the whole CRAN mirror area, with material most likely needed only very occasionally, we will thus move the source archive area to the CRAN archive server during 2018-08. Archived source packages can then be obtained directly via https://CRAN-archive.R-project.org/src/contrib/Archive, and of course via the “Old sources” download links on the package web pages on every CRAN mirror.
Currently, there are 100 official CRAN mirrors, 66 of which provide both
secure downloads via https
and use secure mirroring from the CRAN
master (via rsync through ssh tunnels). Since the R 3.4.0 release,
chooseCRANmirror()
offers these mirrors in preference to the others
which are not fully secured (yet).
InformativeCensoring, Mediana, ThreeArmedTrials, clusterPower, crmPack, dfped, dfpk, ewoc, gsbDesign.
OrthoPanels, dlsem, pder, wooldridge, zTree.
DoE.MIParray, FMC, MBHdesign, PBIBD, bioOED, edesign, idefix, minimalRSD, odr, optbdmaeAT, optrcdmaeAT, rsurface, sFFLHD, skpr\(^*\), soptdmaeA, unrepx.
POT.
CIAAWconsensus, ConfoundedMeta, MetaSubtract, RandMeta, TFisher, clubSandwich, effsize, forestmodel, getmstatistic, metaBMA, metacart, metaforest, nmaINLA, psychmeta, ratesci, rma.exact.
alineR, ore, rel, stm, stringdist.
PythonInR, SnakeCharmR, XR, XRJulia, XRPython, expint, feather, findpython, fourierin, interp, logOfGamma, reticulate, tripack.
ABCoptim, CVXR, ManifoldOptim, Rtnmin, SACOBRA, colf, coneproj, ecr, flacco, metaheuristicOpt, mize, n1qn1, ompr, optimr, optimsimplex, quadprogXT, sdpt3r.
dLagM, fpp2, freqdom, freqdom.fda, ftsa, funtimes, influxdbr, odpc, sweep, timetk, tscount, wktmo.
This article is converted from a Legacy LaTeX article using the texor package. The pdf version is the official version. To report a problem with the html, refer to CONTRIBUTE on the R Journal homepage.
Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".
For attribution, please cite this work as
Hornik, et al., "Changes on CRAN", The R Journal, 2018
BibTeX citation
@article{RJ-2018-1-cran, author = {Hornik, Kurt and Ligges, Uwe and Zeileis, Achim}, title = {Changes on CRAN}, journal = {The R Journal}, year = {2018}, note = {https://rjournal.github.io/}, volume = {10}, issue = {1}, issn = {2073-4859}, pages = {556-559} }