Подтвердить что ты не робот

Управление внешними активами в пакете R

Я пишу R-пакет под названием slidify, который упрощает создание воспроизводимых слайдов HTML5 из ​​файлов R Markdown. Пакет использует файлы css и js из нескольких существующих фреймворков слайдов HTML5, таких как dzslides, deck.js и т.д. В настоящее время я организовал загруженные версии этих внешних активов в папке inst/libraries в slidify, так что он будет автоматически доступен для пользователей при установке. Хотя этот подход прост, есть некоторые недостатки:

  • Эти рамки постоянно обновляются на github. При текущей настройке мне придется подталкивать новую версию пакета каждый раз, когда обновляется какая-либо из этих фреймворков.

  • Если я сделаю какие-либо изменения по умолчанию css и js, которые поставляются с этими фреймворками, тогда мне нужно тщательно объединить обновления, чтобы я не потерял slidify определенные настройки.

У меня было несколько мыслей о том, как управлять этим.

  • Не упаковывайте эти библиотеки с помощью slidify. Вместо этого предоставьте function, который позволит пользователям добавлять необходимые им рамки.

  • Добавьте эти фреймворки в папку inst\libraries на slidify, но как submodules. Теперь я не знаю, добавить ли их как submodules, чтобы они были установлены, если кто-то должен был использовать devtools::install_github.

Итак, мой вопрос заключается в написании пакета R, как я могу управлять внешними зависимостями, отличными от R, которые постоянно обновляются?

4b9b3361

Ответ 1

Одна аналогичная ситуация - посмотреть пакеты xlsx и XLConnect.

Оба пакета зависят от библиотек Java. xlsx определяет (и зависит от) автономный пакет xlsxjars, который содержит только библиотеки.

Таким образом, нисходящий код отделен от библиотек.