hacking
roxyPackage: a workflow utility to maintain R packages
roxyPackage is an R package which should help package authors to build and share their R packages. it uses the fantastic roxygen2 package for the creation of documentation, but tries to keep any further dependencies to a minimum.
the most recent stable release should be available via CRAN. the most recent develpment version of roxyPackage can be installed from my own package repository http://R.reaktanz.de, e.g. directly from an R session:
#development:
install.packages("roxyPackage", repo="http://R.reaktanz.de")
there's also a debian/ubuntu package (needs recent R packages from CRAN as a dependecy).
- download: roxyPackage_0.03-9.tar.gz (10.05.2013, 328,4 kb)
- NEWS/ChangeLog
- license: GPL >= 3
- documentation: roxyPackage.pdf
- vignette: roxyPackage_vignette.pdf
features
the package provides basically one function, roxy.package(), which can automate the following actions, individually or in combination:
- generate *-package.R, DESCRIPTION files
- generate CITATION files
- roxygenize() the package to generate docs
- generate PDF documentation (incl. vignettes)
- initialize and update/manage ChangeLog files
- generate NEWS.Rd from ChangeLog files
- check source packages
- build source packages
- create binary packages for windows and mac OS X (pure R code only, though)
- create debian source and binary packages (including debianizing the R sources and maintainance of a repository)
- build against multiple installations of R in one go
- create a local repository for source and binary packages
- keep PACKAGES files of the repository up to date (handles multiple packages in one repository)
- create and update archives of older packages (via
archive.packages()) - generate HTML index and info pages for all maintained packages (pages were automatically generated by roxyPackage)
- generate NEWS.html and RSS feeds from NEWS.Rd files and include them in the package HTML index
- run all tasks in sandbox mode
in other words: except for your actual coding of the package, roxy.package() should take over the complete workflow from packaging to updating your personal repository. i've been using earlier versions of this function since about 2009, and have now packed it for this release, in case others find such a thing useful, too.
note that the package doesn't upload anything anywhere (yet?). so if you want your packages to be publicly available, you still have to, e.g., rsync the local repository root directory with a web server or your webspace at a hosting provider.
citation information
in case you need to cite roxyPackage for reference, consider the CITATION file.
Michalke, M. (2013, February). roxyPackage -- und R-Pakete bauen sich von selbst. Paper presented at the Köln R User Group (KölnRUG), Köln.
work in progress
although roxyPackage does a flawless job for me personally (the package built this very repository it's hosted on itself ;-)), you might of course run into problems if you try to do things i just haven't thought of (hence for the same reason i can't name examples...). please think of backups, and let me know if you discover bugs or miss helpful features. as always, any feedback is most welcome!