homestuck r roxygen2

roxygen homestuck



¿Por qué roxygen2 no actualiza automáticamente "Importaciones" en el archivo de DESCRIPCIÓN? (3)

Con respecto a las dos balas sobre las que te preguntas al final:

  • Las actualizaciones del archivo de DESCRIPCIÓN se podrían automatizar aún más con roclets adicionales, sin embargo, hace ya más de 4 años que se aplazó dicha solicitud de extracción: https://github.com/klutometis/roxygen/pull/76
  • Debo suponer que los chicos prefieren que utilices el paquete devtools para actualizar el archivo de DESCRIPCIÓN, en lugar de agregarlo a roxygen2 . Así que en ese sentido, los devtools serían la primera opción disponible.

Estoy tratando de seguir de cerca el book @ hadley para aprender las mejores prácticas al escribir paquetes R. Y me emocionó leer estas líneas sobre la philosophy del libro:

Cualquier cosa que pueda ser automatizada, debe ser automatizada. Haz lo menos posible a mano. Haz todo lo posible con las funciones.

Entonces, cuando estaba leyendo acerca de las dependencias y las diferencias (más o menos confusas) entre las directivas de importación en el archivo NAMESPACE y el campo "Importaciones:" en el archivo de DESCRIPCIÓN, esperaba que roxygen2 manejara automáticamente. Después de todo

Cada paquete mencionado en NAMESPACE también debe estar presente en los campos Imports o Depends.

Esperaba que roxygen2 tomara todas las @inportes en mis funciones y me asegurara de que estuviera incluido en el archivo de DESCRIPCIÓN. Pero no lo hace automáticamente.

Así que tengo que agregarlo manualmente al archivo de DESCRIPCIÓN o casi manualmente usando devtools::use_package .

Buscando una respuesta, encontré esta question en SO, donde @hadley confirma en los comentarios que

Actualmente, el espacio de nombres roclet modificará NAMESPACE pero no DESCRIPTION

y otras publicaciones (por ejemplo, here o aquí ) donde se analiza collate_roclet , pero " Esto solo importa si su código tiene efectos secundarios; más comúnmente porque está usando S4 ".

Me pregunto:

  • la razón por la que la DESCRIPCIÓN no se actualiza automáticamente (en roxygen2 contradice la filosofía mencionada anteriormente, que presumiblemente es compartida por roxygen2 ) y
  • Si alguien ya ha creado una forma de hacerlo.

El namespace_roclet edita el archivo NAMESPACE función de las etiquetas agregadas en el script antes de la función. Como hay tres tipos de dependencias ( Depends , Imports y Suggests ), un método similar utilizado por namespace_roclet requeriría tres etiquetas diferentes (el aviso Imports debe ser diferente, para diferenciarlo de los paquetes que se deben adjuntar en NAMESPACE ).

Si está dispuesto a realizar un proceso semiautomático, puede identificar los paquetes que ha utilizado y agregar los que faltan a la DESCRIPTION , en las secciones adecuadas.

library(reinstallr) package.dir <- getwd() base_path <- normalizePath(package.dir) files <- list.files(file.path(base_path, "R"), full.names = TRUE) packages <- unique(reinstallr:::scan_for_packages(files)$package) packages