r repository package cran

¿Hay alguna herramienta de gestión de repositorio de paquetes R?



repository package (1)

Estoy creando un repositorio de paquetes R personalizado y me gustaría replicar la estructura de archivo CRAN, por lo que las versiones anteriores de paquetes se almacenan en el directorio src/contrib/Archive/packageName/ . Me gustaría usar la función install_version en devtools (fuente here ), pero esa función depende de tener una estructura de archivo similar a CRAN en lugar de tener todas las versiones de paquetes en src/contrib/ .

¿Existen herramientas de administración de repositorio de paquetes R que faciliten la creación de esta estructura de directorios y otras tareas relacionadas (por ejemplo, la actualización del archivo Archive.rds)?

También sería bueno si las herramientas de administración manejaran la lógica de type paquete en el lado del repositorio para que pueda usar el mismo código install.packages() o install_version() en un servidor Linux como en mi Mac local (es decir, no lo hago). tiene que usar type="both" o type="source" cuando se instala localmente en una Mac).


Respuesta corta: no es realmente para uso comercial.

Respuesta larga: hay un par de herramientas que se pueden usar para administrar su repositorio, pero aún no existe un ecosistema de venta coherente.

Los mantenedores de CRAN mantienen una gran cantidad de scripts here para administrar el repositorio de CRAN, pero no está claro cómo funcionan todos juntos o qué partes son necesarias para actualizar el índice de paquetes, ejecutar verificaciones de paquetes o administrar la estructura de directorios.

La función tools::write_PACKAGES se puede usar para actualizar el índice del paquete, pero esto debe actualizarse cada vez que se agrega, actualiza o elimina un paquete del repositorio.

M.eik Michalke ha creado el package roxyPackage , que tiene la capacidad de actualizar automáticamente un repositorio determinado, instalarlo, etc. El desarrollador también ha agregado recientemente la capacidad de hacer que la estructura del archivo sea similar a la de CRAN con la función archive_structure . La desventaja es que el paquete no está en CRAN y probablemente sería mejor si se integra con devtools . También es nuevo y aún no está listo para un uso amplio.

Finalmente, creé una pequeña script Ruby que vigila un repositorio determinado y actualiza el índice del paquete si algún archivo cambia. Sin embargo, esto está hecho para funcionar para mi organización específica y tendrá que ser refactorizado para uso externo. Puedo hacerlo más general si alguien está interesado en él.