Создайте пакет R, который зависит от другого R-пакета, расположенного на GitHub
Я создаю пакет R на GitHub, LW1949, который зависит от другого пакета R на GitHub, jvamisc. Когда я пытаюсь установить LW1949 с помощью
require(devtools)
devtools::install_github("user/LW1949")
Получаю сообщение: Skipping 1 packages not available: jvamisc
.
Как я могу указать часть import(jvamisc)
пакета LW1949 (в NAMESPACE) в Github вместо CRAN, чтобы найти эту зависимость?
Конечно, этот вопрос задавали и отвечали раньше, но я не добился успеха в его поиске (возможно, потому, что условия поиска настолько распространены - R, package, GitHub и т.д.). Я наткнулся на Travis CI и Packrat, ни один из которых я не использовал. Не знаю, помогут ли они. Я бы предпочел как можно более простое исправление. (Разве мы не все?)
Я использую R версию 3.1.3 для Windows в R Studio версии 0.98.1103.
Ответы
Ответ 1
Этот вопрос, как представляется, был полностью удовлетворен hqve совсем недавно, рассмотренным в этой проблеме в репозитории github от devtools.
Разработчик пакетов POV:
1) do:
devtools::use_package("jvamisc")
devtools::document()
чтобы добавить зависимость в поле Imports
вашего файла DESCRIPTION.
2) вручную добавьте поле "Remotes:" в файле DESCRIPTION, указав, где на github R следует искать пакет:
#in DESCRIPTION
Imports: ...,
jvamisc,
...
Remotes: JVAdams/jvamisc
конечный пользователь POV:
1) конечный пользователь должен иметь последнюю версию devtools (или, по крайней мере, соответствующую фиксации # f21ca3516c). Вам нужно как-то "заставить его" обновить версию devtools (я думаю, просто поместите это в инструкции по установке... Не могу придумать лучшего способа)
devtools::install_github("hadley/devtools", ref = "f21ca3516c")
2) Перезапустите сеанс R для разгрузки/перезагрузки пакета devtools
3) выполните обычную install_github
require(devtools)
devtools::install_github("user/LW1949")
Я предполагаю, что эта функциональность будет добавлена рано или поздно к версии devantool CRAN, поэтому пользователю не нужно будет выбирать версию dev, и он перейдет непосредственно к шагу 3).
Этапы и дополнительные параметры подробно описаны в этой виньетте
Ответ 2
Фактическое решение, похоже, добавит в ваш файл DESCRIPTION строку
Remotes: hadley/testthat
см. документацию devtools:
# Git
Remotes: git::https://github.com/hadley/ggplot2.git
# Bitbucket
Remotes: bitbucket::sulab/[email protected], dannavarro/lsr-package
# Bioconductor
Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase
# SVN
Remotes: svn::https://github.com/hadley/stringr
# URL
Remotes: url::https://github.com/hadley/stringr/archive/master.zip
# Local
Remotes: local::/pkgs/testthat
# Gitorious
Remotes: gitorious::r-mpc-package/r-mpc-package