Question: CRAN policy and Bioconductor policy
0
gravatar for mattocci27
4.8 years ago by
mattocci270
United States
mattocci270 wrote:

Hi,

I made an R package and one of the function in the package creates a macro text file for other software. However, according to the CRAN policy, writing in the user’s home directory is regarded as malicious or anti-soiical. Is this function also prohibited in Bioconductor? I checked the Bioconductor policy but I didn’t find that kind of description.

Thanks,

Masatoshi

 

R cran • 896 views
ADD COMMENTlink modified 4.8 years ago by Henrik Bengtsson2.4k • written 4.8 years ago by mattocci270
Answer: CRAN policy and Bioconductor policy
1
gravatar for Dan Tenenbaum
4.8 years ago by
Dan Tenenbaum8.2k
United States
Dan Tenenbaum8.2k wrote:

This is probably more of a question for the bioc-devel list.

I don't think there is an official policy on this. But I'd like to have a better idea of what your package actually does. If it writes to a hidden file or directory in the users home directory just to save some state, that might be ok. But I'm not sure what a "macro text file for other software" is.

Dan

ADD COMMENTlink written 4.8 years ago by Dan Tenenbaum8.2k
1

It's probably good too to think of the CRAN policy as directing you toward good programming practice -- don't write to a user's directory without their explicit permission (e.g., add an argument 'destination' to the function that will generate the macro, perhaps with a default value tempfile()) -- rather than some kind of policy that you should try and avoid (e.g., by submitting to Bioconductor!).

ADD REPLYlink written 4.8 years ago by Martin Morgan ♦♦ 23k
Answer: CRAN policy and Bioconductor policy
1
gravatar for Gordon Smyth
4.8 years ago by
Gordon Smyth38k
Walter and Eliza Hall Institute of Medical Research, Melbourne, Australia
Gordon Smyth38k wrote:

You are presumably reacting to the following lines from the CRAN policy document:

"The code and examples provided in a package should never do anything which might be regarded as malicious or anti-social. The following are illustrative examples from past experience.

  • Packages should not write in the users’ home filespace, nor anywhere else on the file system apart from the R session’s temporary directory (or during installation in the location pointed to by TMPDIR: and such usage should be cleaned up). Installing into the system’s R installation (e.g., scripts to its bin directory) is not allowed."

This is presumably to dissuade packages from writing to a user's filespace without the user's knowledge, which is indeed antisocial.

There is however no problem with functions such as write.table() or writeLines() which write files at the user's request. I doubt that there is any major difference between CRAN and Bioconductor policy on this.

ADD COMMENTlink modified 4.8 years ago • written 4.8 years ago by Gordon Smyth38k
Answer: CRAN policy and Bioconductor policy
0
gravatar for mattocci27
4.8 years ago by
mattocci270
United States
mattocci270 wrote:

Hi all,

Thank you very much for the helpful comments. I understood the policy. Using tempfile( ) works this time.

ADD COMMENTlink written 4.8 years ago by mattocci270
Answer: CRAN policy and Bioconductor policy
0
gravatar for Henrik Bengtsson
4.8 years ago by
United States
Henrik Bengtsson2.4k wrote:

The R.cache package, for memoization, caches computational expensive results to file.  Ideally this cache lives beyond a single R session, which requires to write to a specific directory and therefore tempdir() is not sufficient.  What I ended up doing, was to ask the user to accepts to use '~/.Rcache/' when the package was loaded in an interactive session.  If not approved, the package uses a session-specific temporary directory.  If once approved, the directories will be used in all following sessions

The above approach meets the CRAN Policy, which also says "Limited exceptions may be allowed in interactive sessions if the package obtains confirmation from the user".

EXAMPLE:

A first-time user of R.cache experiences:

> file_test("-d", "~/.Rcache/")
[1] FALSE
> library("R.cache")
The R.cache package needs to create a directory that will hold cache files. It
is convenient to use one in the user's home directory, because it remains also
af ter restarting R. Do you wish to create the '~/.Rcache/' directory? If not,
a temporary directory (C:\Users\hb\AppData\Local\Temp\Rtmp8ajw0O/.Rcache) that
is specific to this R session will be used. [Y/n]: Y
R.cache v0.10.0 (2014-06-10) successfully loaded. See ?R.cache for help.
> file_test("-d", "~/.Rcache/")
[1] TRUE
ADD COMMENTlink written 4.8 years ago by Henrik Bengtsson2.4k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 199 users visited in the last hour