From romain.francois at dbmail.com  Mon Sep 28 20:25:10 2009
From: romain.francois at dbmail.com (Romain Francois)
Date: Mon, 28 Sep 2009 20:25:10 +0200
Subject: [Rd] build time dependency
In-Reply-To: <4AC0CA8A.40500@statistik.tu-dortmund.de>
References: <4ABC8E7C.2060004@dbmail.com>	<4ABFAEAE.2030103@statistik.tu-dortmund.de>
	<4AC06218.4010802@dbmail.com>
	<4AC0CA8A.40500@statistik.tu-dortmund.de>
Message-ID: <4AC0FF86.6000504@dbmail.com>

On 09/28/2009 04:39 PM, Uwe Ligges wrote:
> Romain Francois wrote:
>> On 09/27/2009 08:27 PM, Uwe Ligges wrote:
>>>
>>> Romain Francois wrote:
>>>> Hello,
>>>>
>>>> Is there such thing as a build time dependency between packages :
>>>> package B needs package A so that it can build, but once built it
>>>> lives without it.
>>>
>>>
>>> Do you mean at a) "R CMD build" time or at b) "R CMD INSTALL" time?
>>
>> I meant R CMD INSTALL (but probably also R CMD build --binary), I need
>> to check the code to see where this overlaps.
>
> Are you sure you *really* need those dependencies at INSTALL rather than
> build time? I haven't looked closely into roxygen so far, but if it is
> designed to work at INSTALL time, the task is to move this to the build
> time of the package from my point of view.
>
> Since the roxygen author, Manuel Eugster, is in Dortmund today, I will
> discuss this point.

Hi Uwe,

I think you are supposed to do this kind of sequence:

R CMD roxygen yourRoxygenablePackage
R CMD build yourRoxygenablePackage_roxygen

... but I don't like this because what you upload to cran is not the 
actual source but somethingalready pre-processed. (This also applies to 
packages shipping java code, most people just compile the java code on 
their machine and only supply a jar of compiled code, but that's another 
story I suppose ...)

I'd prefer the roxygenation to be part of the standard build/INSTALL 
system, so my plan is to write configure and configure.win which would 
call roxygenize to generate Rd.

I am not aware of any hook similar to configure[.win] you can use so 
that "R CMD build" does something extra. I probably just missed it.

Romain


> Best,
> Uwe Ligges
>
>
>
>
>>
>>
>>> For a), you probably do not need to declare it in DESCRIPTION at all
>>> (untested).
>>> For b), you need to declare it. I feel uncomfortable to change the
>>> Depends field between source and binary version of a package. At least,
>>> it is not documented to work and if it works (have you tested that?), it
>>> might not work in some future release of R.
>>> But since you gave at least 2 reasonable examples for a
>>> INSTALL-time-only dependency, you might want to contribute some patches
>>> to handle such a thing.
>>
>> Sure. I'll have a look to add a "InstallDependencies" (or whatever
>> other spelling) field along the lines of Depends, but for INSTALL time.
>>
>> Romain
>>
>>>
>>> Best wishes,
>>> Uwe
>>>
>>>
>>>> For example depending on the ant package to compile java code, or
>>>> depend on roxygen to roxygenize the code, ...
>>>>
>>>> Adding roxygen to Depends works, but then the installed package does
>>>> not depend on it and therefore loads it for nothing. Maybe I can
>>>> remove roxygen from the Depends as part of the ./configure[.win] ...
>>>>
>>>> Romain
>>>>
>>
>
>


-- 
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr
|- http://tr.im/ztCu : RGG #158:161: examples of package IDPmisc
|- http://tr.im/yw8E : New R package : sos
`- http://tr.im/y8y0 : search the graph gallery from R



[Rd] build time dependency
Romain Francois