У меня есть пакет R на github.Этот пакет R имеет зависимости C ++, которые я включаю в /src
.
Правильный способ, которым я обычно это делаю (за пределами R), - это создавать подмодули в репозитории github, которые могут ссылаться на правильные коммиты как зависимости.
Проблема с выполнением этого в R заключается в том, что эти подкаталоги будут интерпретироваться как «пустые» и установка не будет работать, например,
> devtools::install_github("reponame/packagename")
* checking for file 'bambi/DESCRIPTION' ... OK
* preparing 'packagename':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
...
Таким образом, checking for empty or unneeded directories
вызываетошибки, потому что подмодули интерпретируются как пустые подкаталоги.Поэтому он не может найти необходимые зависимости, и я столкнусь с фатальной ошибкой при build
(1) Да, один из способов решить эту проблему - физически поместить зависимости в пакет R.Тем не менее, это побеждает назначение подмодулей, которые очень полезны.
(2) Похоже, что работает следующий аргумент:
devtools::install_git("reponame/packagename", args="--recursive")
Проблема в том, что это неповедение по умолчанию.Я нервничаю по поводу получения десятков проблем с github от пользователей, которые запускали devtools::install_git("reponame/packagename")
и не читали мелкий шрифт в README
(3). Есть ли лучший способ?Каков стандартный метод выпуска пакетов R в качестве репозитория github с использованием подмодулей?