Hello,
I wonder if it is unwise to name a bundle the same as one of its
packages. For instance, I now have a huge package called 'aroma' that
I basically want to split up in several smaller packages, say
'aroma.core', 'aroma.io', 'aroma.explore', 'aroma.trial',
'aroma.deprecated' etc, which simplifies maintenance but also the
overview. For convenience, one could have a wrapper package
'aroma.all' that loads all the above packages.
As a typically user will make use of methods in the, say, three
packages 'aroma.core', 'aroma.io' and 'aroma.explore' I would also
like to have a wrapper package that loads these three "typical"
packages. This package I would like to call 'aroma', just like the
bundle. Is this wise, or should I rename the bundle to say 'AROMA'?
I would prefer that the user could install the bundle by
install.packages("aroma")
without having to care if I distribute the methods in one package
called 'aroma' or bundle of packages called 'aroma'. Moreover,
'library(aroma)' will also do for the typical user too. To turn it
around, what I'm trying to do is to emulate the concept of
"subpackages".
Another advantage is that if you first start out with a package
'aroma' that people installs, then you can without having to tell the
users, change it to be a bundle. 'update.package()' will still work;
Same if you want to revert to a package. I haven't tested if it works
in practice, though.
BTW: I remember reading some r-help/r-devel(?) comments about not
supporting bundles in the future and just keeping the concept of
packages. Is this something that should we expected to happen?
Personally I think a bundle is a convenient way to distribute packages
that are used together, but not necessarily loaded at the same time.
Best wishes
Henrik Bengtsson
Dept. of Mathematical Statistics @ Centre for Mathematical Sciences
Lund Institute of Technology/Lund University, Sweden
(Sweden +1h UTC, Melbourne +11 UTC, Calif. -8h UTC)
+46 708 909208 (cell), +46 46 320 820 (home),
+1 (508) 464 6644 (global fax),
+46 46 2229611 (off), +46 46 2224623 (dept. fax)
h b @ m a t h s . l t h . s e, http://www.maths.lth.se/~hb/
Is it ok to use the name on a bundle and one if its packages?
2 messages · Henrik Bengtsson, Paul Gilbert
1 day later
Henrik Bengtsson wrote:
Hello, I wonder if it is unwise to name a bundle the same as one of its packages. For instance, I now have a huge package called 'aroma' that I basically want to split up in several smaller packages, say 'aroma.core', 'aroma.io', 'aroma.explore', 'aroma.trial', 'aroma.deprecated' etc, which simplifies maintenance but also the overview. For convenience, one could have a wrapper package 'aroma.all' that loads all the above packages. As a typically user will make use of methods in the, say, three packages 'aroma.core', 'aroma.io' and 'aroma.explore' I would also like to have a wrapper package that loads these three "typical" packages. This package I would like to call 'aroma', just like the bundle. Is this wise, or should I rename the bundle to say 'AROMA'?
I'm not sure if there would be problems. I have one of the few bundles
that exist, and I as far as I know, no one has tried this. (I would find
it a bit confusing myself.) If the packages have a hierarchy, then you
can get the behavior you want just by having require("whatever") in the
start up for each package. So, for example, if aroma.explore needs
aroma.core and aroma.io, the .First.lib for aroma.explore can have
lines require("aroma.core"); require("aroma.io"). Then users would just
load the highest package they need in the hierarchy.
I would prefer that the user could install the bundle by
install.packages("aroma")
without having to care if I distribute the methods in one package
called 'aroma' or bundle of packages called 'aroma'.
I don't think there is a problem here.
Moreover, 'library(aroma)' will also do for the typical user too.
This could be a problem that your idea may work around, but you may be creating more confusion than help. If the set of functions that are being loaded changes, then it is not such a bad idea to change the name.
To turn it around, what I'm trying to do is to emulate the concept of "subpackages". Another advantage is that if you first start out with a package 'aroma' that people installs, then you can without having to tell the users, change it to be a bundle. 'update.package()' will still work;
It is possible your suggestion would make this work better than it works if you avoid having a subpackage with the same name as the bundle. Without replicating the name in a package of the bundle, the update of the bundle may leave the original "aroma" package in place. That would not be good.
Same if you want to revert to a package. I haven't tested if it works in practice, though.
There may be problems here. I don't think the packages of the bundle would be removed, and that would cause users a certain amount of confusion.
BTW: I remember reading some r-help/r-devel(?) comments about not supporting bundles in the future and just keeping the concept of packages. Is this something that should we expected to happen? Personally I think a bundle is a convenient way to distribute packages that are used together, but not necessarily loaded at the same time.
The mechanism works very well right now, but there are not many of us using it. I am moving more toward unbundling myself (because my package hierarchy is changing with additional packages, not because of any problems). Paul Gilbert
Best wishes Henrik Bengtsson Dept. of Mathematical Statistics @ Centre for Mathematical Sciences Lund Institute of Technology/Lund University, Sweden (Sweden +1h UTC, Melbourne +11 UTC, Calif. -8h UTC) +46 708 909208 (cell), +46 46 320 820 (home), +1 (508) 464 6644 (global fax), +46 46 2229611 (off), +46 46 2224623 (dept. fax) h b @ m a t h s . l t h . s e, http://www.maths.lth.se/~hb/
______________________________________________ R-devel@stat.math.ethz.ch mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-devel