-
Notifications
You must be signed in to change notification settings - Fork 10
/
dashboard.Rmd
117 lines (98 loc) · 3.5 KB
/
dashboard.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
---
title: "CRAN incoming dashboard"
date: "`r format(Sys.time(), '%F %R UTC%z')`"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Vignette Title}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
warning = FALSE,
message = FALSE,
echo = FALSE
)
```
The data in this table stems from our querying ftp://cran.r-project.org/incoming/.
We update it every hour. [See below](#cran-review-workflow) for a description of each
folder meaning.
# Dashboard
```{r get-data}
library(dplyr)
standard_folders <- c(
"pretest", "inspect", "recheck", "pending", "publish", "newbies", "waiting"
)
cran_raw <- cransays::take_snapshot()
cran_incoming <- cran_raw %>%
arrange(subfolder, howlongago) %>%
filter(subfolder != "archive") %>%
mutate(
folder = ifelse(subfolder %in% standard_folders, subfolder, "human"),
subfolder = ifelse(subfolder %in% standard_folders, NA, subfolder)
)
cran_incoming %>%
select(package, version, snapshot_time, folder, subfolder) %>%
arrange(package, version) %>%
write.csv(
paste0("cran-incoming-", format(Sys.time(), "%Y%m%dT%H%M"), ".csv"),
row.names = FALSE,
quote = FALSE
)
```
```{r}
library("reactable")
colours <- c(
"pretest" = "#F8F3BA",
"inspect" = "#F8F3BA",
"human" = "#F1D9A1",
"recheck" = "#E5CADB",
"publish" = "#A5D6C8"
)
cran_incoming %>%
dplyr::select(package, version, submission_time, folder, subfolder) %>%
reactable(
columns = list(
folder = colDef(style = function(value) {
val <- as.character(value)
if (val %in% names(colours)) {
list(background = colours[[val]])
} else {
list()
}
}),
submission_time = colDef(cell = function(value, index) {
prettyunits::time_ago(value)
})
),
filterable = TRUE,
defaultPageSize = 50
)
```
# CRAN review workflow
Your package will be stored in a different folder depending on its current state
in the review process. The exact meaning of each folder is detailed in an
[article from the
R Journal](https://journal.r-project.org/archive/2018-1/cran.pdf) as well as in [another article from the same journal](https://journal.r-project.org/archive/2019-1/cran.pdf):
- **inspect**: this is your first submission or the automated tests found an
error that requires human review.
- **newbies**: a specific queue for the manual inspection of first time CRAN submissions.
- **pending**: the CRAN maintainers are waiting for an action on your side. You
should check your emails!
- **waiting**: packages for which the CRAN team waits for an answer from the maintainer.
- **pretest**: the CRAN maintainers restarted automated tests on your package to
see whether an issue has been fixed by your action or is still here.
- **recheck**: your package seems ready for publication. This step checks
whether reverse dependencies will still work after the update.
- **publish**: you're all set! Your package has passed the review process and
will soon be available on CRAN.
This information is summarised in the following diagram by Hadley Wickham,
available in the [cran-stages Github](https://github.com/edgararuiz/cran-stages)
repository:
```{r, out.width="50%", fig.align='center'}
knitr::include_graphics("cran-diagram.png")
```
# Need help with your R package?
Get in touch with us about how we at Locke Data can help you get your package CRAN ready. Fill out [our contact page](//itsalocke.com/#contact).