wiki:RBuild

Version 42 (modified by cedric, 13 years ago) (diff)

--

Procédure de construction du package 13/mars 2010

Retour à la page de démarrage ..


Note : ce fichier est pour mémoire pour Cédric

Références :

La source R : http://cran.us.r-project.org/doc/manuals/R-exts.pdf téléchargé dans pdf/R/R-exts.pdf
Making R packages under windows : http://www1.appstate.edu/~arnholta/Software/MakingPackagesUnderWindows.pdf

Cookbook

pré requis

  1. Installation de Rtools (je ne sais pas si éclipse à besoin de ça mais le build semble utiliser cygwin)
  2. Installation de mikTex
  3. les packages sont dans stacomR0.4 ou stacomiR0.5, pour stacomiR0.5 il faudra faire un merge....
  4. Sous subversion il y a deux packages sur le site de Rforge

source:stacomi/trunk/docs/trac/image_Rforge.jpg

svn+ssh://briand@scm.r-forge.r-project.org/svnroot/stacomir
svn+ssh://briand@scm.r-forge.r-project.org/svnroot/stacomir/branch/stacomir0.5

cmd-check

pré requis

  1. supprimer prog/STACOMIR03 (sinon garde l'ancienne version!!)
  2. Lancer package.build.R (crée dans le working directory)pour les deux (seulement les parties package.skeleton)
  3. Copier le fichier DESCRIPTION mettre à jour les numéros de licence et les dates dans DESCRIPTION et dans man/stacomiR-package.Rd
  4. Lancer la commande (après avoir chargé roxygenize.ced) dans stacomiR_oxygenize.r

roxygenize.ced est une modif verbeuse et qui permet d'éviter les classes héritée qui font planter le pg. Pour résumer

  • les fonctions sont bien documentées à l'aide d'éclipse et Roxygen,
  • tout ce qui concerne les classes S4 ne fonctionne pas,
  • => Il faut donc copier les fichiers .Rd correspondant aux fonctions dans StacomiR03Ox/man mais pas ceux correspondant aux classes S4 (fichiers -class.Rd et -methods.Rd) qui sont à récupérer dans le répertoire StacomiR03/man ou ils ont été créés par la fonction package.skeleton. Pour les classes il faut reprendre les commentaire (titre, description ...) depuis les fichiers Rd dans prog/STACOMIR03Ox/man et les copier vers le fichier prog/man (en controle de source). Cette action n'est à réaliser que pour les nouvelles classes, les anciennes sont déjà documentées.
  • Une fois que la doc est clean la copier depuis le fichier prog/man (en controle de source) vers stacomiR03/man qui va servir de base à la construction du package.
  • Supprimer le fichier read_and_deleteme constitué par la fonction package.skeleton
    roxygenize.ced(package.dir="prog/STACOMIR03",roxygen.dir='prog/STACOMIR03Ox',
    		copy.package=FALSE,overwrite=TRUE,unlink.target=FALSE,use.Rd2=FALSE,
    avoid=c("BilanMigrationPar.r",
            "PasDeTempsJournalier.r",
            "Refparqual.r",
    	"Refparquan.r",
    	"RequeteODBC.r",
    	"RequeteODBCwhere.r",
    	"RequeteODBCwheredate.r"))
    
  1. Remplacer le contenu de ggplot2usr-package par celui de ggplot2usr.Rd de ggplot2usrpk
  2. Rcmd check <repertoire> ou run>External tool>check

Cette Commande permet de vérifier que les infos nécessaires à la construction du package (RBuild) sont présentes...

(dans eclipse vérifier la configuration version+ pointer vers le repertoire construit lors des procédures précédentes dans project external tools)

Vérifier que les arguments working directory (onglet Rconfig)

${workspace_loc:/STACOMIR0.3/prog/STACOMIR03}

et package directory (onglet main) sont :

${workspace_loc:/STACOMIR0.3}

Les résultats de l'installation (fichier install00.out et 00cjheck.log sont écrits dans le répertoire

STACOMIR03.Rcheck

Cette commande plante généralement au chargement des dépendances et je ne sais pas pourquoi...

* install options are ' --no-html'
* installing *source* package 'stacomiR' ...
** R
** inst
** preparing package for lazy loading
Chargement de Tcl/Tk... terminé
Loading required package: grid
Loading required package: reshape
Loading required package: plyr
Loading required package: digest
Avis dans gzfile(file, mode) :
  impossible d'ouvrir le fichier compressé 'C:\DOCUME~1\cedric\LOCALS~1\Temp\RtmphMvUe6/libloc_C%3a%2fDOCUME%7e1%2fcedric%2fMESDOC%7e1%2fMIGRAT%7e1%2fPROGRA%7e1%2fWORKSP%7e1.5%2fSTACOM%7e1.3%2fprog%2fSTACOM%7e1.RCHVersion,Priority,Bundle,Contains,Depends,Imports,LinkingTo,Suggests,Enhances,OS_type,License,Built.rds', cause probable : 'No such file or directory'
Error in gzfile(file, mode) : impossible d'ouvrir la connexion
Error : .onLoad failed in 'loadNamespace' for 'gWidgets'
Error : package 'gWidgets' could not be loaded
ERROR: lazy loading failed for package 'stacomiR'
* removing 'C:/DOCUME~1/cedric/MESDOC~1/MIGRAT~1/PROGRA~1/WORKSP~1.5/STACOM~1.3/prog/STACOM~1.RCH/stacomiR'

Cette erreur n'empêche pas de passer à l'étape ultérieure

  1. Rcmd build c:/base/stacomi ou via eclipse run>External tool>check configurer comme Rcmd Check ci dessus. Cette étape permet notamment de vérifier les fichiers de documentation

    source:stacomi/trunk/docs/trac/R-cmd-check.jpg
  2. Rcmd INSTALL stacomi_0.2.tar.gz : ...Le tar.gz est mis dans bin ou id dans eclipse On peut aussi lancer build dans eclipse avec les options --binary et --auto-zip
  3. Pour faire un windows distribuable il faut ensuite compresser le répertoire stacomi dans C:\Program Files\R\R-2.9.1\library\
  4. L'installation en mode commande se fait avec R.exe -f stacomi.zip ou Rcmd install dans eclipse