2012-03-02 13 views
22

estoy haciendo mi primer paquete rlandscape, utilizando Roxygen2 y tratar de seguir la viñeta Roxygen llanura desde Roxygen2 no tiene uno.roxygen2 no actualizar plenamente archivo de descripción

Como en the vignette (página 3), creé un archivo llamado rlandscape-package.R que no contiene nada más que la documentación del paquete. En la viñeta, dicen

cada descripción Roxygen bloque debe ir seguido de una declaración, incluso material de cabecera que describe un fichero o paquete, en lugar de una función específica . roxygen() se proporciona como un (instrucción nula) NOOP se interponga en para estos casos.

pero si sigo el bloque de descripción con roxygen() una llamada a package.skeleton produce Error in eval(expr, envir, enclos) : could not find function "roxygen". Así que he intentado salir de la llamada roxygen() por completo, así como su sustitución por NA, los cuales parecen producir los mismos resultados: package.skeleton() trabajos con éxito (incluyendo rlandscape-package.R como uno de los argumentos code_files), y puedo entonces roxygenize

> roxygenize("rlandscape", roxygen.dir = "rlandscape") 
Updating collate directive in /Users/Gregor/Dropbox/rlandscape/rlandscape/DESCRIPTION 
Updating namespace directives 
Writing plot.landscape.Rd 
Writing rland.Rd 
Writing rland.gui.Rd 
Writing makePoints.Rd 
Writing rCluster.Rd 
Writing rlandscape-package.Rd 
Writing rlandscape.Rd 

que parece ejecutarse correctamente, pero el archivo DESCRIPTION tiene el campo "Intercalar" adjunto, pero no se ha modificado de lo que package.skeleton creó. ¿Por qué no se actualiza el resto del archivo de descripción?

+3

Una otra cosa. Con ** roxygen2 **, para los bloques de documentación que no son seguidos por el código, creo que la recomendación se pone como 'NULL' (donde se podría haber llamado a' roxygen() 'si se usa el roxygen anterior ** ** paquete). –

Respuesta

28

roxygen2 funciona de la manera prevista, pero experimenté la misma confusión cuando lo usé por primera vez para documentar un paquete. El bit es importante entender que hay un par de diferentes archivos de paquetes-descripción en la mezcla.

  • Cuando se procesa el marcado roxygen en rlandscape-package.R, produce un archivo en el directorio rlandscape-package.Rd hombre de su paquete fuente. Esto a su vez produce la documentación que se ve cuando se escribe ?rlandscape o ?"rlandscape-package".

  • El archivo DESCRIPTION en el directorio superior de su árbol fuente es una bestia completamente separada. A pesar de que suceda para producir un archivo de ayuda que se puede ver (a través de help(package="rlandscape")), tiene muchas otras funciones más importantes de dirigir la producción de paquetes. El única forma en que se toca/afectada por roxygen2 es que la función collate_roclet() (ejecutado cuando roxygenize() su paquete) llevará a cabo fusiones con el campo Intercalar en un archivo preexistente DESCRIPTION (como se describe en la página 10 de this pdf)

El mensaje principal que lleva a casa es que incluso cuando se utiliza roxygen2, si desea realizar cambios en el archivo de DESCRIPTION, tendrá que hacerlo editando directamente.

+10

Casi 2 años después, valdría la pena agregar que el paquete 'devtools' ahora proporciona funciones como' create_description' para crear automáticamente archivos de descripción. – Gregor

Cuestiones relacionadas