r - Overwriting NAMESPACE and Rd with roxygen2 -
i create new package rstudio. in "configure build tools", check "generate documentation roxygen".
the first time click on "document" in "build" pane, works fine:
==> roxygen2::roxygenize('.', roclets=c('rd', 'collate', 'namespace')) first time using roxygen2. upgrading automatically... writing hello.rd writing namespace documentation completed i namespace:
# generated roxygen2: not edit hand export(hello) and file hello.rd:
% generated roxygen2: not edit hand % please edit documentation in r/hello.r \name{hello} \alias{hello} \title{hello} \usage{ hello(x) } \arguments{ \item{x}{string} } \value{ string } but now, modify file hello.r, , 2 problems. firstly, window appears:
if click on "yes", nothing happens.
secondly, seems roxygen2 cannot overwrite hello.rd, because text in "build" pane:
==> roxygen2::roxygenize('.', roclets=c('rd', 'collate', 'namespace')) error: specified file not readable: u:\data\rtests\testpackage\man/hello.rd execution halted exited status 1. the way found update documentation run:
roxygen2::roxygenize(clean=true) this command firstly cleans everything, namespace , rd files, , generates namespace , rd files.
i don't know whether issue path of rtools. tried set path doing:
sys.setenv(path="%path%;c:/program files/rtools/gcc-4.6.3/bin;c:/program files/rtools/gcc-4.6.3/bin64;c:/program files/rtools/gcc-4.6.3/i686-w64-mingw32/bin;c:/program files/rtools/bin") but not solve issue.
i'm using:
roxygen2 5.0.1rstudio 0.99.892
windows 7
r version 3.3.1
cause of problem.
the roxygen2 package depends on digest package. error (the specified file not readable) generated digest function of digest package, @ moment when function calls file.access function: https://github.com/eddelbuettel/digest/blob/master/r/digest.r#l102.
i get:
> file.access("u:/data", 4) u:/data -1 that means u:/data has not read permission. not true: has read permission. problem u: drive "network drive", , there issues file.access function network drives, can see here example: https://github.com/eddelbuettel/digest/issues/13.
a workaround
the problem solved if r.utils::fileaccess used instead of file.access in digest::digest function.
so, firstly take code of digest::digest function , modify follows.
mydigest <- function (object, algo = c("md5", "sha1", "crc32", "sha256", "sha512", "xxhash32", "xxhash64", "murmur32"), serialize = true, file = false, length = inf, skip = "auto", ascii = false, raw = false, seed = 0, errormode = c("stop", "warn", "silent")) { file.access <- r.utils::fileaccess .... code of digest function here ... } then do:
library(digest) r.utils::reassigninpackage("digest", "digest", mydigest) and documentation can updated doing:
roxygen2::roxygenize() 
Comments
Post a Comment