Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
43 lines (28 sloc) 3.87 KB
---
title: How to keep up with CRAN policies and processes?
date: '2019-05-29'
slug: keep-up-with-cran
tags:
- help
- CRAN
---
CRAN, the Comprehensive R Archive Network, changes its rules and workflow every so often: see for instance [the new encoding setting of one of its check flavors](/2019/04/25/r-devel-linux-x86-64-debian-clang/). As a package developer, you'd better keep up with CRAN policies and processes to be able to safely retain your package(s) on CRAN and to prepare your next submissions with as much information as possible. We at R-hub are also every interested in not missing updates, in particular of the check setups, in order for our services to serve package developers as well as possible. In this post, we'll therefore answer this important question: **How** to keep up with CRAN policies and processes?
## Direct information sources
There is no direct hot flow of information from CRAN but there are at least two direct sources of information.
The first one is the [CRAN policy](https://cran.r-project.org/web/packages/policies.html) that has however no changelog. Thankfully, in 2013 Dirk Eddelbuettel [created and announced](http://dirk.eddelbuettel.com/blog/2013/10/23/) his creating a tool, the CRAN Repository Policy Watch, that works by mirroring the SVN repository of the policy. You can use the tool in two ways,
* Browse or even [watch](https://help.github.com/en/articles/watching-and-unwatching-repositories) the [mirror GitHub repository](https://github.com/eddelbuettel/crp) of the [original SVN account](https://svn.r-project.org/R-dev-web/) (there's even [this other GitHub mirror](https://github.com/gaborcsardi/R-dev-web/tree/master/trunk/CRAN/Policy)). _Watching only means you'll see the commits in your GitHub timeline, you will not get notifications since changes are not made by PRs_;
* Follow the [Twitter account that broadcasts the updates](https://twitter.com/CRANPolicyWatch).
The second direct source of information is an article that the CRAN team has been including in each issue of [the R Journal](https://journal.r-project.org/archive/) for a few years. In the code below we use the [rOpenSci package `bib2df` by Philipp Ottolinger ](https://docs.ropensci.org/bib2df/) to parse the .bib file of all R Journal issues and find these articles.
```{r, cache = TRUE, message = FALSE, warning = FALSE}
journal <- bib2df::bib2df("https://journal.r-project.org/archive/RJournal.bib")
knitr::kable(
journal[grepl("CRAN", journal$TITLE), c("TITLE", "MONTH", "YEAR", "URL")]
)
```
These articles have info about policy changes but also changes in the submission pipelines, check setups etc. Based on previous years we can expect the next update from the CRAN team this summer.
## Indirect information sources
Now there are also indirect information sources that can help you notice something changed.
First, your own packages are nice sentinels of new/updated CRAN checks: refer to [this section of a recent post of ours, about CRAN checks surveillance](/2019/04/25/r-devel-linux-x86-64-debian-clang/#cran-checks-surveillance). Ensure the email address you listed as maintainer email is still valid, because that's the way CRAN might communicate about a new failing check with you. If you fail to respond, your package could get orphaned or archived!
Then, other maintainers' experiences are useful to know. You cannot possibly talk to all maintainers of CRAN packages, but it's useful to listen to channels where they post: [subscribe to R-package-devel (or its daily digest)](/2019/04/11/r-package-devel/), lurk or participate in other venues where [help about package development](https://docs.r-hub.io/#pkg-dev-help) is given.
# Conclusion
In this post, we explained various strategies to follow the changes of CRAN's policies and processes, both via direct and less direct sources of information. Well informed maintainers more easily retain and get their packages on CRAN! :muscle:
You can’t perform that action at this time.