[R-pkg-devel] Namespace problem with pre-R 3.0.0 package

Sebastien Moretti sebastien.moretti at unil.ch
Fri Mar 4 08:48:47 CET 2016


>> I have just found that R 2 filled by itself the NAMESPACE file with
>> # Export all names
>> exportPattern(".")
>>
>> # Import all packages listed as Imports or Depends
>> import(
>>     cluster
>> )
>>
>>
>> So I filled the NAMESPACE file with that and gave it to R 3
>> Now functions are found!
>>
>>
>> Is it enough to do that?
>
> Yes. Even in the latest version of R, "R CMD build" will create a
> default NAMESPACE file like that for you if one does not exist.

The package contained an empty NAMESPACE file.
That's maybe why it failed.

>> Is it good practice to do that?
>
> No. The Writing R Extensions manual says "such broad patterns are not
> recommended for production code: it is better to list all exports or
> use narrowly-defined groups"

Will export only required functions once identified.


Functions are available now!
Thanks

Will compare results with R 2 and 3 to see if I did not break something.

>> is .onLoad ... still required?
>
> Yes, if your package has compiled code (e.g. C, C++, Fortran) then the
> .onLoad function is required to load it into R.
>
> Martyn
>
>> Regards
>>
>>> Hi
>>>
>>> I have issues with an R package developed in 2004.
>>> It works perfectly in R < 3.
>>> It can be installed in R > 3 but functions are not available.
>>>
>>> Documentation I found is not really helpful for me who are not an R
>>> master.
>>> I have already fixed some problems with R CMD check but remaining
>>> ones
>>> are less trivial.
>>>
>>>
>>> For what I understand - with R < 3 - everything is loaded with this
>>> command in an R file in the R/ directory:
>>> .First.lib <- function(lib, pkg) library.dynam("jacop", pkg, lib);
>>> require("cluster")
>>>
>>> Now I replaced that with
>>> .onLoad <- function(lib, pkg) {library.dynam("jacop", pkg, lib);
>>> require("cluster")}
>>> but functions are not found when called.
>>>
>>> NAMESPACE exists but is empty.
>>>
>>>
>>> Any idea how to solve that?
>>>
>>>
>>> Regards

--
Sébastien Moretti



More information about the R-package-devel mailing list