Hi Terry
I suspect many people struggle with similar issues.
The new version of mvbutils contains a number of routines that facilitate
creation & maintenance of a package, hopefully through its entire life-cycle:
from "documenting your own stuff for personal use", through "giving out
semi-documented code that your mates can use", through "getting it through all
the CRAN hoops", through "maintaining & changing an
already-installed-and-loaded package".
There is support for creating & editing functions (etc) in your own
"development" package while it's already loaded, plus speedy on-the-fly
updating of the installed version of the package. These in particular are
things that R does not make easy by default (probably for good reasons). Plus:
you don't have to learn Rd format if you don't want to-- the package-creator in
mvbutils will generate Rd documentation for you based on plain-text
documentation.
Use of these package-creation-maintenance routines does require some level of
buy-in to 'mvbutils's view of how your working life in R should be organized...
basically 'cd' and 'fixr'. I don't reckon this should be much of a drama for
most people, but there are so many different ways of working in R, so who knows?
I use these routines perpetually (maintaining about 6 packages), but as far as
the rest of the universe goes, they are still alpha-releases. They are geared
to the way I work, and so as yet might not do what others want; however, if
there's demand and feasibility, I'm happy to try to incorporate other features.
In particular, the documentation is incomplete at present, and I therefore
haven't over-advertised the package-maintenance stuff until I get time to write
a "how-to" article.
[I've had to release the package-maintenance stuff in a slightly undercooked
state, because it is intimately bound to the guts of mvbutils, and it became
necessary to roll out a maintenance release of mvbutils for other reasons.]
Let me know if this might be of further interest to you
Mark
--
Mark Bravington
CSIRO Mathematical & Information Sciences
Marine Laboratory
Castray Esplanade
Hobart 7001
TAS
ph (+61) 3 6232 5118
fax (+61) 3 6232 5012
mob (+61) 438 315 623
Terry Therneau wrote:
> I'm making the move of the survival package from my own environment
> to,
> and have stumbled into a vacuum. The R Extensions manual has really
> nice instructions about how to lay out the directories, order the
> files, and
> run tests for DISTRIBUTION of a product, but I can't find anything on
> how
> to set up a reasonable DEVELOPMENT environment.
> In my local world, I had the .c and .s files in a common
> directory, with
> a Makefile that I had created, and the test suite in a subdirectory.
> Debugging and development was quite nice.
> make
> cd test
> R
> attach("..")
> try something and perhaps it fails
> q()
> cd ..
> Fix and repeat. The Makefile took some time to create, but paid for
> itself a hundred times over.
>
> So, I've now rearranged everything into standard R order. Then I
> did the only thing I could find
> R CMD INSTALL ~/myRlib survival
> where "survival" is said directory. This turns out to be not useful
> at all. The survival package is large, and I rather suspected that I
> would goof something up, and I did, resulting in the following message
>
> Error in parse(n = -1, file = file) : unexpected end of input at
> 14450: }
> 14451:
>
> It is not exactly obvious which of the 132 files in my R/ directory
> is the culprit here.
>
> In general:
> 1. The library is large, and recompiling/reparsing everything is very
> far from instantaneous. It is not the edit/load cycle I desire.
>
> 2. I take testing seriously: the test suite takes on the order of 15
> minutes to run on a fast machine. I most certainly don't want to run
> it in the mid cycle.
>
> Someone must have tackled this. I'm hoping that there is some
> documentation that I have managed to overlook which discussess a good
> setup for this middle ground between concieving of a library and
> packaging it for delivery; the "build, test, make sure it acually
> works" part of development.
>
> Terry Therneau
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel