[R] Issue with Imports in NAMESPACE

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Jun 25 17:36:08 CEST 2013


On 25/06/2013 14:50, luke-tierney at uiowa.edu wrote:
> On Tue, 25 Jun 2013, Duncan Murdoch wrote:
>
>> On 13-06-25 7:14 AM, Søren Højsgaard wrote:
>>> Dear Duncan,
>>>
>>> Excellent, thanks!
>>>
>>> Maybe this is worth a remark in a future version of "Writing R
>>> Extensions" (including that those "local copies" are not exported
>>> again with exportPattern("^[[:alpha:]]+")).
>>
>> It is mentioned that they can be exported.  The fact that
>> exportPattern doesn't see them might be a bug.
>
> I don't think it's a bug -- including all imports would usually bring
> in way too much.

Not least as most packages import way too much (they import whole 
packages unselectively).

Namespace scoping helps a lot with code in packages, but not with code 
in examples and demos.  I believe that if you want to use maxClique from 
RBGL other than in the package's own functions you should either use 
RBGL::maxclique or put RBGL on the search path: but I don't think gRbase 
should do it for you.

> In general re-exporting is probably not such a great idea since the
> help system isn't aware of the import/export chain. I don't know if R
> CMD check complains if you don't provide your own help page; if it

It does, as Søren found out when he submitted to CRAN.

> doesn't it probably should.  I also don't recall if we have a
> mechanism for such a help page on an import/export to just link to the
> real page.

We do, the \link[RBGL]{maxClique} form.

>
> Best,
>
> luke
>
>
>>
>> Duncan
>>
>>>
>>> Thanks!
>>>
>>> Søren
>>>
>>> -----Original Message-----
>>> From: Duncan Murdoch [mailto:murdoch.duncan at gmail.com]
>>> Sent: 25. juni 2013 13:02
>>> To: Søren Højsgaard
>>> Cc: R hELP (r-help at stat.math.ethz.ch)
>>> Subject: Re: [R] Issue with Imports in NAMESPACE
>>>
>>> On 13-06-25 6:50 AM, Søren Højsgaard wrote:
>>>> Dear all,
>>>> In my gRbase package I have up until now "Depend"-ed on RBGL (from
>>>> Bioconductor), but good people have convinced me that I should use
>>>> "Import"-it instead because I only use few functions from RBGL.
>>>>
>>>> In DESCRIPTION I therefore now have
>>>> Imports: Matrix,RBGL
>>>>
>>>> In NAMESPACE I now have
>>>> importFrom(RBGL, maxClique, is.triangulated, separates)
>>>>
>>>> The package compiles without complaints, but I have noticed that if
>>>> I start a fresh R-session, then maxClique etc. from RBGL is NOT
>>>> available for "interactive use" in my session:
>>>>> library(gRbase)
>>>>> maxClique
>>>> Error: object 'maxClique' not found
>>>>
>>>> 1) Is this as it should be?
>>>>
>>>> 2) If yes, is there any other way in which maxClique can be imported
>>>> for interactive use without Depend-ing the whole RBGL package?
>>>
>>> The importFrom directive effectively makes local copies of those
>>> functions in your package (with the usual caveats that copies aren't
>>> as inefficient as you might think).  If you want to export them, you
>>> need to add them to the exports list.
>>>
>>> Duncan Murdoch
>>>
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list