Un pacchetto R comunica con un database commerciale utilizzando un nome utente e una password privati per stabilire la connessione. Nel file package_vignette.Rmd c'è un pezzo di codice:Il codice R nella scenografia del pacchetto non può essere eseguito su CRAN per motivi di sicurezza. Come gestire tale vignetta?
```{r, eval = TRUE}
# set user_name and password from user's configuration file
set_connection(file = "/home/user001/connection.config")
# ask data base for all metrics it has
my_data <- get_all_metrics()
# display names of fetched metrics
head(my_data$name)
```
non ho il diritto di fornire nome_utente reale e la password per CRAN, quindi non posso fornire il file vero e proprio 'connection.config' con il pacchetto. Quindi, naturalmente, questo frammento di codice porta ad Errore durante i controlli CRAN.
Conosco due modi per aggirare il check CRAN:
Utilizzare knitr opzione:
eval = FALSE
.Fare il pacchetto static vignette with help of the R.rsp.
Il primo modo è troppo tempo, perché ci sono un sacco di pezzi, e riscrivo/ricostruire la vignetta spesso. Il secondo modo è migliore per me. Ma potrebbe esserci un modello migliore per supportare tale vignetta? Ad esempio, nei test del pacchetto, utilizzo testthat::skip_on_cran()
per evitare i controlli CRAN.
include dati di esempio nel pacchetto, ad es. fetch_sample_all_metrics(), con dati non sensibili/resi anonimi, e usarli nella tua vignetta –
Puoi impostare tutti i chunk su 'eval = F' chiamando' knitr :: opts_chunk $ set (eval = F) 'all'interno del primo blocco. – gregmacfarlane