Estoy escribiendo un paquete R llamado slidify
que hace que sea fácil generar diapositivas HTML5 reproducibles a partir de archivos R Markdown. El paquete hace uso de los archivos css
y js
de varios marcos de generación de diapositivas existentes HTML5 como dzslides
, deck.js
etc. Actualmente, he organizado las versiones descargadas de estos activos externos en la carpeta inst/libraries
de slidify
, de modo que esté automáticamente disponible para los usuarios en instalación. Si bien este enfoque es simple, hay algunas desventajas:Administración de activos externos en el paquete R
Estos marcos se actualizan constantemente en
github
. Bajo la configuración actual, tendría que presionar una nueva versión del paquete cada vez que se actualice cualquiera de estos marcos.Si hago ningún ajuste a los valores predeterminados
css
yjs
que vienen con estos marcos, entonces necesidad de fusionar los cambios con cuidado para que no pierdaslidify
personalizaciones específicas.
Tenía un par de ideas sobre cómo gestionar esto.
No empaque estas bibliotecas con
slidify
. En su lugar, proporcione unfunction
que permita a los usuarios agregar los marcos que deseen.Agregue estos marcos a la carpeta
inst\libraries
enslidify
, pero comosubmodules
. Ahora, no tengo idea de si agregarlos comosubmodules
los instalaría si alguien usaradevtools::install_github
.
Así que mi pregunta es, al escribir un paquete de R cómo puedo gestionar dependencias no-R externos que se actualizan constantemente?
Me gusta mucho su pregunta; modificó el fraseo al final para evitar votos "no constructivos". – joran
Gracias por la edición. Hace la pregunta más limpia. – Ramnath
Una posibilidad es mirar los paquetes 'xlsx' y' XLConnect'. Ambos dependen de las bibliotecas de Java. 'xlsx' define (y depende de) un paquete independiente' xlsxjars' que solo contiene las bibliotecas. De esta forma, el código descendente se desacopla de las bibliotecas. – Andrie