[Rd] Base R examples that write to current working directory

Henrik Bengtsson
Fri, 30 Mar 2018 17:14:04 -0000

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
>
>