Ein R-Paket kommuniziert mit einer kommerziellen Datenbank unter Verwendung eines privaten Benutzernamens und Kennworts, um eine Verbindung herzustellen. In der package_vignette.Rmd Datei gibt es ein Stück Code:Der R-Code in der Paketvignette kann aus Sicherheitsgründen nicht auf CRAN ausgeführt werden. Wie man eine solche Vignette verwaltet?
```{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)
```
I tatsächliche user_name und ein Passwort CRAN nicht die Rechte haben zu bieten, so kann ich echt ‚connection.config‘ Datei nicht liefern mit das Paket. Natürlich führt dieses Codefragment bei CRAN-Prüfungen zu einem Fehler.
Ich kenne zwei Möglichkeiten, um CRAN Kontrolle zu bekommen:
Verwenden knitr Option:
eval = FALSE
.Machen Sie static vignette with help of the R.rsp Paket.
Der erste Weg ist zu zeitaufwendig, weil es eine Menge Stücke ist, und ich umschreiben/die Vignette oft wieder aufzubauen. Der zweite Weg ist besser für mich. Aber gibt es ein besseres Muster, wie man solche Vignette unterstützt? Zum Beispiel verwende ich in den Tests des Pakets testthat::skip_on_cran()
, um CRAN-Prüfungen zu vermeiden.
enthalten Beispieldaten in Ihrem Paket, z. fetch_sample_all_metrics(), mit nicht sensiblen/anonymisierten Daten, und verwenden Sie es in Ihrer Vignette –
Sie können alle Chunks auf 'eval = F' setzen, indem Sie' knitr :: opts_chunk $ set (eval = F) 'innerhalb des ersten Chunks aufrufen. – gregmacfarlane