Uwe Ligges
2018-Mar-30 16:25 UTC
[Rd] Base R examples that write to current working directory
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=. >> >> 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 > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Henrik Bengtsson
2018-Mar-30 17:14 UTC
[Rd] Base R examples that write to current working directory
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. 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 <ligges at 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=. >>> 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 >> >> ______________________________________________ >> R-devel at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Martin Maechler
2018-Apr-03 09:37 UTC
[Rd] Base R examples that write to current working directory
>>>>> Henrik Bengtsson <henrik.bengtsson at 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 > <ligges at 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=. >>>> 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 >>> >>> ______________________________________________ >>> R-devel at r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-devel >> >> >> ______________________________________________ >> R-devel at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel
Reasonably Related Threads
- Base R examples that write to current working directory
- Base R examples that write to current working directory
- Base R examples that write to current working directory
- Base R examples that write to current working directory
- utils::install.packages with quiet=TRUE fails for source packages on Windows