[Rd] Depending/Importing data only packages
csardi.gabor at gmail.com
Sat Dec 7 19:58:45 CET 2013
On Sat, Dec 7, 2013 at 1:35 PM, Paul Gilbert <pgilbert902 at gmail.com> wrote:
> On 13-12-07 12:19 PM, Gábor Csárdi wrote:
>> I don't know about this particular case, but in general it makes sense
>> to rely on a data package. E.g. I am creating a package that does
>> Bayesian inference for a particular problem, potentially relying on
>> prior knowledge. I think it makes sense to put the data that is used
>> to calculate the prior into another package, because it will be larger
>> than the code, and it does not change that often.
>> On Sat, Dec 7, 2013 at 11:51 AM, Paul Gilbert <pgilbert902 at gmail.com>
>>> Would "Suggests" not work in this situation? I don't understand why you
>>> would need Depends. In what sense do you rely on the data only package?
> HW> Because I want someone who downloads the package to be able to run
> HW> the examples without having to take additional action.
> HW> Hadley
> I went through this myself, including thinking it was a nuisance for users
> to need to attach other packages to run examples. In the end I decided it is
> not so bad to be explicit about what package the example data comes from, so
> illustrate it in the examples. Users may not always want this data, and
> other packages that build on yours probably do not want it.
> Even in the Bayesian inference case pointed out by Gábor, I am not
> convinced. It means the prior knowledge base cannot be exchanged for another
> one. The package would be more general if it allowed the possibility of
> attaching a different database of prior information. But this is clearly a
> more important case, since the code probably does not work without some
> database. (There are a few other situations where something like
> "RequireOneOf:" would be useful.)
First, as you say, you went through this yourself, which means that
the "right" answer to the problem is not obvious. This is (mainly) a
design decision, and if it is not obvious that depending on a data
package is always bad design. Then why not let the package developer
Second, I very much think that using 'Suggests' is misleading in this
case. The data package is clearly required. I, as a user, would expect
that if I downloaded all requirements, then the package will work,
which is not true any more.
(Let's not go into what 'Suggests' actually means, and how totally
confusing it is already.)
'RequireOneOf' would be indeed useful.
More information about the R-devel