>>>>> Gabe Becker <becker.g...@gene.com> >>>>> on Tue, 3 Apr 2018 21:16:12 -0700 writes:
> Martin et al, > I have submitted a patch on bugzilla which fixes all of the examples I > could easily find which were not already writing only to temporary files or > switching to a temp directory before writing files to the working > directory. https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17403 > Passes make check-devel so the examples run and the packages that were > modified pass check. Thank you very much, Gabe, I've committed most of it now (to R-devel only, to be ported to 3.5.0 alpha, later). There are some issues I've wanted to postpone and open for discussion, e.g., here (on R-devel): https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17403#c3 : 1) All(?) the file-based graphics devices have a default file name which resides in the current working directory, pdf(), postscript(), png(), ..., and pictex(). We may think that this *default* should be changed, rather than the documentation, e.g., for pictex() , from "Rplots.tex" to tempfile("Rplots.tex") 2) The write() function, for 30 years back compatibility with S, has a default 'file = "data"' Should we change the default to use "", the same as write.table() uses, or also something tempfile() based? https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17403#c4 : 3) prompt() and promptData() [and possibly other prompt*()] : I did not apply your proposed changes here, see the R-bugzilla for reasoning. Still one may want to propose changing the default behavior from using the getwd() working directory to tempdir() instead. Martin > On Tue, Apr 3, 2018 at 2:37 AM, Martin Maechler <maech...@stat.math.ethz.ch> > wrote: >> >>>>> Henrik Bengtsson <henrik.bengts...@gmail.com> >> >>>>> on Fri, 30 Mar 2018 10:14:04 -0700 writes: >> >> > So, the proposal would then be to write to tempdir(), >> > correct? If so, I see three alternatives: >> >> > 1. explicitly use file.path(tempdir(), filename), or >> > tempfile() everywhere. >> >> I think it should clearly be '1.', >> as both '2.' and '3.' would need new functionality in R. >> >> Ideally we'd get the patch within a day or two, so we can safely >> apply it also to R 3.5.0 alpha (before it turns beta!). >> >> I think the 'eval.path' argument to example() is a nice idea, >> but also changing its default to tempdir() is definitely out of >> the question for R 3.5.0. >> >> Martin >> >> >> > 2. wrap example code in a withTempDir({ ... }) call. >> >> > 3. Add an 'eval.path' (*) argument to example() and make >> > it default to eval.path = tempdir(). This would probably >> > be backward compatible and keep the code example clean. >> > The downside is when a user runs an example and can't >> > locate produced files. (*) or 'wd', 'workdir', ... >> >> > /Henrik >> >> > On Fri, Mar 30, 2018 at 9:25 AM, Uwe Ligges >> > <lig...@statistik.tu-dortmund.de> wrote: >> >> >> >> >> >> On 30.03.2018 00:08, Duncan Murdoch wrote: >> >>> >> >>> On 29/03/2018 5:23 PM, Hadley Wickham wrote: >> >>>> >> >>>> Hi all, >> >>>> >> >>>> Given the recent CRAN push to prevent examples writing >> >>>> to the working directory, is there any interest in >> >>>> fixing base R examples that write to the working >> >>>> directory? A few candidates are the graphics devices, >> >>>> file.create(), writeBin(), writeChar(), write(), and >> >>>> saveRDS(). I'm sure there are many more. >> >>>> >> >>>> One way to catch these naughty examples would be to >> >>>> search for unlink() in examples: e.g., >> >>>> >> >>>> https://github.com/wch/r-source/search?utf8=✓&q=unlink+ >> extension%3ARd&type= >> <https://github.com/wch/r-source/search?utf8=%E2%9C%93&q=unlink+extension%3ARd&type=> >> . >> >>>> Of course, simply cleaning up after yourself is not >> >>>> sufficient because if those files existed before the >> >>>> examples were run, the examples will destroy them. >> >>>> >> >>> >> >>> Why not put together a patch that fixes these? This >> >>> doesn't seem to be something that needs discussion, >> >>> fixing the bad examples would be a good idea. >> >> >> >> >> >> Seconded. CRAN would not accept these base packages, >> >> hence we should urgently give better examples. >> >> >> >> Best, Uwe >> >> >> >>> Duncan Murdoch > -- > Gabriel Becker, Ph.D > Scientist > Bioinformatics and Computational Biology > Genentech Research ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel