From ripley at stats.ox.ac.uk  Thu Mar 10 17:27:02 2005
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Thu Mar 10 17:27:13 2005
Subject: [Rd] dealing with package bundles (was RE: [R] Gregmisc)
In-Reply-To: <3A822319EB35174CA3714066D590DCD50994E823@usrymx25.merck.com>
References: <3A822319EB35174CA3714066D590DCD50994E823@usrymx25.merck.com>
Message-ID: <Pine.LNX.4.61.0503101609000.2060@gannet.stats>

On Thu, 10 Mar 2005, Liaw, Andy wrote:

> Given the confusions that some users have regarding package bundles, I'd

Just one bundle, AFAICS.

> like to suggest some changes to how package bundles are handled.

The issue seems only to arise with one bundle that was formerly a package. 
I think re-naming that bundle would be the most effective solution. 
Alternatively, bundle 'gregmisc' could contain a package 'gregmisc' (there 
is an example of that already in CoCo) which told users what had happened 
(or even loaded all the components), which would also work with a rename.

> My understanding is that a package bundle is essentially a convenient way to
> distribute related packages, so that users can download/install them in one
> shot.  However, some users apparently get confused that one can do
> install.packages("abundle") but can't do library("abundle").  I think it
> might be worthwhile having library() (or it's to-be replacement(s)) do
> something more informative, if the argument is the name of a bundle, instead
> of a package.  Examples are:
>
> - Give an error that says that's a package bundle, and the constituent
> packages need to be loaded individually.

How can you know that?  The names of bundles are not known, and indeed 
`gregmisc' is a perfectly good package name and gregmisc 1.x might be what 
was intended.

> - Load all of the packages in the bundle, but issue an warning.
>
> - (More elaborate) give a menu of packages and ask the user to choose which
> one to load.
>
> (Come to think of it, it would be nice for library() to be able to load
> multiple packages in one go...)

In what order, and why, given that library() will already load all the 
dependencies in a sensible order?

> One problem that I can see is that it seems like once a package bundle is
> installed, R basically has no knowledge that the packages belong to one
> bundle, other than the fact that the DESCRIPTION files of the packages have
> entries that indicate that they are part of a bundle.  Are there ways to
> figure out such information other than checking packageDescription() of all
> installed packages?

No.

As from 2.1.0, install.packages() will install a bundle given the name of 
a package it contains (at least if the repositories supply the 
information), so there will be little need for users to know about 
bundles.

-- 
Brian D. Ripley,                  ripley@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


[Rd] dealing with package bundles (was RE: [R] Gregmisc)
Prof Brian Ripley