[Rd] Questions on package creation

Liaw, Andy andy_liaw at merck.com
Thu Nov 11 14:18:52 CET 2004


Gabor,

Here are my takes on these:

1: Not that I know of.  Only the package developer(s) see the code this way,
and is really not different from 3.  (A developer would not need 3, as R CMD
check can be done with 1.)

2 & 4: As Uwe said, the location is `whereever you like'.  You would create
them only for distribution (i.e., installation on other machines), so it
doesn't matter where it put them.  They only exist temporarily on the
developer's machine (assuming the source is version controlled via other
means), as only a user wanting to install the package would need the archive
forms.

Here's the sequence I use:

Start with a source tree for the package somewhere.

Testing/checking:

Run R CMD INSTALL -l mytest mypkg (making sure you create the `mytest'
directory first).  This installs the package in the `mytest' directory.  If
the install is not successful, make necessary changes.  If successful, start
up R (from the command line) and do library(mypkg, lib.loc="mytest") and run
some tests (e.g., example() for functions in the package).

After making sure the installed package looks good, run R CMD check mypkg.
Make changes to correct errors and warnings.

After successful check, run R CMD build --force mypkg to generate the source
tarball and update the INDEX file.  (The --force is only needed if you
add/remove/change help page topics since the last build.)

Run R CMD build --binary mypkg if you need to distribute the package in
binary form.

HTH,
Andy

> From: Gabor Grothendieck
> 
> I have some questions about 
> 
>    1. nomenclature, 
>    2. recommended file locations and 
>    3. overall procedure related to creating packages.
> 
> To the extent that it matters, examples here relate to Windows XP
> R 2.0.1 beta.  
> 
> The questions are interspersed and prefaced with ***.
> 
> My understanding is that there are actually 6 forms of a package
> that one should use in package development:
> 
> 1. original package.  This refers to the original source files, 
>    documentation and other files that the author develops.  
>    If source control, e.g. svn, is used then these are the files 
>    that are under source control.  They are kept in some arbitrary 
>    location on one's disk.  Let us say \usr\mypackage, for example.
> 
> *** Is there some standard name for this form of the package?
> 
> 2. source archive.  This is created from the original package
>    like this:
> 
>      cd \Program Files\rw2001beta
>      bin\R CMD build /usr/mypackage
> 
>    which creates, say
> 
>      \Program Files\rw2001beta\mypackage_1.0-1.tar.gz
> 
>    The source archive is distinct from the original archive since it
>    is specific to a version of R and excludes the files referenced
>    in \usr\mypackage\.Rbuildignore
> 
> *** Is \Program Files\rw2001beta the correct place to put this
>    .tar.gz file?
> 
> 3. source tree.  This is created from the gzipped tar archive in #2
>    like this:
> 
>      cd \Program Files\rw2001beta
>      gzip -d mypackage_1.0-1.tar.gz
>      cd src\library
>      tar xvf ..\..\mypackage_1.0-1.tar
> 
>    and is checked like this:
> 
>      cd \Program Files\rw2001beta
>      bin\R CMD check mypackage
> 
> 4. binary archive.  This is created from the source archive in #2
>    or the source tree in #3:
> 
>       cd \Program Files\rw2001beta
>       bin\R CMD build mypackage --binary
>     
>    which creates \Program Files\rw2001beta\myhpackage_1.0-1.zip
> 
> *** Is \Program Files\rw2001beta the correct place to put this?
> 
> 5. installed package.  This installed by:
> 
>      cd \Program Files\rw2001beta
>      bin\R CMD install mypackage
> 
>   which results in the source package being installed in:
>   
>      \Program Files\rw2001beta\library\mypackage
> 
>   This can alternately be done with the R GUI menu: 
> 
>     Packages | Install package(s) from local zip files
> 
> 6. loaded package.  In R using the command:
> 
>      library(mypackage)
> 
>    loads the package into R.  This can alternately be done
>    using the R GUI menu:
> 
>       Packages | Load package
> 
> One might initially skip #3 and #4 and just test the package out
> in R after #6 and once one is satisfied that it is in good shape
> repeat the sequence.
> 
> *** Is all the above the correct and recommended sequence?
> 
> *** Someone mentioned that --force is important.  How does that 
>     fit into all this?  I still have not used it and am not sure
>     about it.
> 
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
>



More information about the R-devel mailing list