I am working on a function in a package that saves a file. I want to write an example to document the function so it must save a file, but when I do, the automatic CRAN checks reject the package because there is a non-standard file saved in the directory when the second test runs (first, it runs a test on Windows where the check error does not occur, then on Linux where it does). The relevant check output is: * checking for non-standard things in the check directory ... NOTE Found the following files/directories: ?Produc.csv? There is no file called Produc.csv anywhere in the directory (the error doesn't show up in the first run on Windows). It is generated by running the example code which automatic CRAN testing might be doing in between running the Windows and Linux checks? How do I write an example that must save a file to be an example of using the function without triggering this issue? Zach Flynn
[R-pkg-devel] Passing CRAN check when an examples must save a file
5 messages · Duncan Murdoch, Zachary Flynn, Tiago Olivoto +1 more
On 26/09/2019 11:43 p.m., Zachary Flynn wrote:
I am working on a function in a package that saves a file. I want to write an example to document the function so it must save a file, but when I do, the automatic CRAN checks reject the package because there is a non-standard file saved in the directory when the second test runs (first, it runs a test on Windows where the check error does not occur, then on Linux where it does). The relevant check output is: * checking for non-standard things in the check directory ... NOTE Found the following files/directories: ?Produc.csv? There is no file called Produc.csv anywhere in the directory (the error doesn't show up in the first run on Windows). It is generated by running the example code which automatic CRAN testing might be doing in between running the Windows and Linux checks? How do I write an example that must save a file to be an example of using the function without triggering this issue?
Save the file to the temporary directory, ?.g. filename <- file.path(tempdir(), "Prod?c.csv") write.csv(something, file = filename) You could clean up at the end of the example with unlink(filename) but you shouldn't rely on this alone to prevent the error: if you're writing files, you should *only* be doing it in the temporary directory. Duncan Murdoch
Thanks much, that solved the issue, Zach Flynn On Fri, Sep 27, 2019, 8:36 AM Duncan Murdoch <murdoch.duncan at gmail.com> wrote:
On 26/09/2019 11:43 p.m., Zachary Flynn wrote:
I am working on a function in a package that saves a file. I want to
write
an example to document the function so it must save a file, but when I
do,
the automatic CRAN checks reject the package because there is a non-standard file saved in the directory when the second test runs
(first,
it runs a test on Windows where the check error does not occur, then on Linux where it does). The relevant check output is: * checking for non-standard things in the check directory ... NOTE Found the following files/directories: ?Produc.csv? There is no file called Produc.csv anywhere in the directory (the error doesn't show up in the first run on Windows). It is generated by running the example code which automatic CRAN testing might be doing in between running the Windows and Linux checks? How do I write an example that must save a file to be an example of using the function without triggering this issue?
Save the file to the temporary directory, ?.g. filename <- file.path(tempdir(), "Prod?c.csv") write.csv(something, file = filename) You could clean up at the end of the example with unlink(filename) but you shouldn't rely on this alone to prevent the error: if you're writing files, you should *only* be doing it in the temporary directory. Duncan Murdoch
Dear all, I had the same problem when I submitted my R package 'metan' to CRAN for the first time. "Please ensure that your functions do not write by default or in your examples/vignettes/tests in the user's home filespace (including the package directory and getwd()). In your examples/vignettes/tests you can write to tempdir()" I have several 'summary()' functions like: *summary.waasb <- function(object, export = FALSE, file.name <http://file.name> = "summary_waasb", ...) { # do all I need here if (export == TRUE) { sink(paste0(file.name <http://file.name>, ".txt")) # do all I need here sink() }}* All 'export' arguments are set to 'FALSE'. So, no file is generated in the user's working directory. Is the above function not according to the CRAN policies? In two vignettes I have a code like: *```{r, eval=FALSE }summary(stat_ge, export = TRUE)```* Please, note that 'eval = FALSE'. Could this be the problem? The suggestion is to write to a tempdir() but even looking at the Duncan Murdoch's answer I cannot see how to do that in my case. Looking for any suggestion. Best regards, Tiago Olivoto ---------- Forwarded message --------- De: Duncan Murdoch <murdoch.duncan at gmail.com> Date: sex, 27 de set de 2019 ?s 09:44 Subject: Re: [R-pkg-devel] Passing CRAN check when an examples must save a file To: Zachary Flynn <zlflynn at gmail.com>, <r-package-devel at r-project.org>
On 26/09/2019 11:43 p.m., Zachary Flynn wrote:
I am working on a function in a package that saves a file. I want to
write
an example to document the function so it must save a file, but when I do, the automatic CRAN checks reject the package because there is a non-standard file saved in the directory when the second test runs (first, it runs a test on Windows where the check error does not occur, then on Linux where it does). The relevant check output is: * checking for non-standard things in the check directory ... NOTE Found the following files/directories: ?Produc.csv? There is no file called Produc.csv anywhere in the directory (the error doesn't show up in the first run on Windows). It is generated by running the example code which automatic CRAN testing might be doing in between running the Windows and Linux checks? How do I write an example that must save a file to be an example of using the function without triggering this issue?
Save the file to the temporary directory, ?.g. filename <- file.path(tempdir(), "Prod?c.csv") write.csv(something, file = filename) You could clean up at the end of the example with unlink(filename) but you shouldn't rely on this alone to prevent the error: if you're writing files, you should *only* be doing it in the temporary directory. Duncan Murdoch ______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Read the Posting Guide... sending html formatted email corrupts your message. Reading between the garbage... a) Pasting an extension is not necessary. b) using tempfile() in your example as an argument to sink( file=) is a straightforward way to illustrate that a file can be created.
On September 27, 2019 5:16:30 PM PDT, Tiago Olivoto <tiagoolivoto at gmail.com> wrote:
Dear all, I had the same problem when I submitted my R package 'metan' to CRAN for the first time. "Please ensure that your functions do not write by default or in your examples/vignettes/tests in the user's home filespace (including the package directory and getwd()). In your examples/vignettes/tests you can write to tempdir()" I have several 'summary()' functions like: *summary.waasb <- function(object, export = FALSE, file.name <http://file.name> = "summary_waasb", ...) { # do all I need here if (export == TRUE) { sink(paste0(file.name <http://file.name>, ".txt")) # do all I need here sink() }}* All 'export' arguments are set to 'FALSE'. So, no file is generated in the user's working directory. Is the above function not according to the CRAN policies? In two vignettes I have a code like: *```{r, eval=FALSE }summary(stat_ge, export = TRUE)```* Please, note that 'eval = FALSE'. Could this be the problem? The suggestion is to write to a tempdir() but even looking at the Duncan Murdoch's answer I cannot see how to do that in my case. Looking for any suggestion. Best regards, Tiago Olivoto ---------- Forwarded message --------- De: Duncan Murdoch <murdoch.duncan at gmail.com> Date: sex, 27 de set de 2019 ?s 09:44 Subject: Re: [R-pkg-devel] Passing CRAN check when an examples must save a file To: Zachary Flynn <zlflynn at gmail.com>, <r-package-devel at r-project.org> On 26/09/2019 11:43 p.m., Zachary Flynn wrote:
I am working on a function in a package that saves a file. I want to
write
an example to document the function so it must save a file, but when
I do,
the automatic CRAN checks reject the package because there is a non-standard file saved in the directory when the second test runs
(first,
it runs a test on Windows where the check error does not occur, then
on
Linux where it does). The relevant check output is: * checking for non-standard things in the check directory ... NOTE Found the following files/directories: ?Produc.csv? There is no file called Produc.csv anywhere in the directory (the error doesn't show up in the first run on Windows). It is generated by running the example code which automatic CRAN testing might be doing in between running the Windows and Linux checks? How do I write an example that must save a file to be an example of using the function without triggering this issue?
Save the file to the temporary directory, ?.g. filename <- file.path(tempdir(), "Prod?c.csv") write.csv(something, file = filename) You could clean up at the end of the example with unlink(filename) but you shouldn't rely on this alone to prevent the error: if you're writing files, you should *only* be doing it in the temporary directory. Duncan Murdoch
______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel [[alternative HTML version deleted]] ______________________________________________ R-package-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel
Sent from my phone. Please excuse my brevity.