Combines the preprocessing, documentation, and build steps into one.
Usage
package_build(
packageName = NULL,
vignettes = FALSE,
log = INFO,
deps = TRUE,
install = FALSE,
...
)Arguments
- packageName
characterpath to package source directory. Defaults to the current path when NULL.- vignettes
logicalspecify whether to build vignettes. Default FALSE.- log
log level
INFO,WARN,DEBUG,FATAL- deps
logicalshould we pass data objects into subsequent scripts? Default TRUE- install
logicalautomatically install and load the package after building. Default FALSE- ...
additional arguments passed to
install.packageswheninstall=TRUE.
Details
Note that if package_build returns an error when rendering an .Rmd
internally, but that same .Rmd can be run successfully manually using rmarkdown::render,
then the following code facilitates debugging. Set options(error = function(){ sink(); recover()})
before running package_build . This will enable examination of the active function calls at the time of the error,
with output printed to the console rather than knitr's default sink.
After debugging, evaluate options(error = NULL) to revert to default error handling.
See section "22.5.3 RMarkdown" at https://adv-r.hadley.nz/debugging.html for more details.
Examples
if(rmarkdown::pandoc_available()){
f <- tempdir()
f <- file.path(f,"foo.Rmd")
con <- file(f)
writeLines("```{r}\n tbl = data.frame(1:10) \n```\n",con=con)
close(con)
pname <- basename(tempfile())
datapackage_skeleton(name=pname,
path=tempdir(),
force = TRUE,
r_object_names = "tbl",
code_files = f)
package_build(file.path(tempdir(),pname), install = FALSE)
}
#> ✔ Creating /tmp/RtmpdppTBQ/file5b5533914d1/.
#> ✔ Setting active project to "/tmp/RtmpdppTBQ/file5b5533914d1".
#> ✔ Creating R/.
#> ✔ Writing DESCRIPTION.
#> Package: file5b5533914d1
#> Title: What the Package Does (One Line, Title Case)
#> Version: 0.0.0.9000
#> Authors@R (parsed):
#> * First Last <first.last@example.com> [aut, cre]
#> Description: What the package does (one paragraph).
#> License: `use_mit_license()`, `use_gpl3_license()` or friends to
#> pick a license
#> Encoding: UTF-8
#> Roxygen: list(markdown = TRUE)
#> RoxygenNote: 7.3.3
#> ✔ Writing NAMESPACE.
#> ✔ Setting active project to "/tmp/RtmpdppTBQ/file5b52986aa27".
#> ✔ Setting active project to "/tmp/RtmpdppTBQ/file5b5533914d1".
#> ✔ Added DataVersion string to 'DESCRIPTION'
#> ✔ Creating data-raw/.
#> ✔ Creating data/.
#> ✔ Creating inst/extdata/.
#> ✔ Copied foo.Rmd into 'data-raw'
#> ✔ configured 'datapackager.yml' file
#>
#> ✔ 1 data set(s) created by foo.Rmd
#> • tbl
#> ☘ Built all datasets!
#> Non-interactive NEWS.md file update.
#> * Added: tbl
#>
#> ✔ Creating vignettes/.
#> ✔ Creating inst/doc/.
#> ℹ Loading file5b5533914d1
#> Writing NAMESPACE
#> Writing file5b5533914d1.Rd
#> Writing tbl.Rd
#> ── R CMD build ─────────────────────────────────────────────────────────────────
#> * checking for file ‘/tmp/RtmpdppTBQ/file5b5533914d1/DESCRIPTION’ ... OK
#> * preparing ‘file5b5533914d1’:
#> * checking DESCRIPTION meta-information ... OK
#> * checking for LF line-endings in source and make files and shell scripts
#> * checking for empty or unneeded directories
#> * looking to see if a ‘data/datalist’ file should be added
#> * building ‘file5b5533914d1_1.0.tar.gz’
#>
#> Next Steps
#> 1. Update your package documentation.
#> - Edit the documentation.R file in the package sourcedata-rawsubdirectory and update the roxygen markup.
#> - Rebuild the package documentation with document().
#> 2. Add your package to source control.
#> - Call git init . in the package source root directory.
#> - git add the package files.
#> - git commit your new package.
#> - Set up a github repository for your pacakge.
#> - Add the github repository as a remote of your local package repository.
#> - git push your local repository to gitub.
#> [1] "/tmp/RtmpdppTBQ/file5b5533914d1_1.0.tar.gz"
