#r #devtools #roxygen2
#r #devtools #roxygen2
Вопрос:
Начинающий разработчик пакета!
Я пытаюсь превратить некоторый код в локальный R-пакет в самый первый раз. Я создал пакет с помощью usethis::create_package()
, добавил документацию с помощью devtools::document()
.
Теперь, поиграв с ним некоторое время, я столкнулся со следующей ошибкой при попытке установить новейшую версию с помощью devtools::install()
:
Error: HTTP error 403.
API rate limit exceeded for [my IP]. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Rate limit remaining: 0/60
Rate limit reset at: 2019-03-18 16:32:05 UTC
To increase your GitHub API rate limit
- Use `usethis::browse_github_pat()` to create a Personal Access Token.
- Use `usethis::edit_r_environ()` and add the token as `GITHUB_PAT`.
Проблема все еще существует, если я использую devtools:install_local("my_folder_name")
. Что меня действительно смущает, так это то, что я превышаю лимит скорости GitHub, пытаясь установить пакет, находящийся в локальной папке.
Я допустил ошибку при настройке пакета, или использование devtools::install()
всегда связано с GitHub API? Могу ли я что-нибудь изменить, чтобы сохранить процесс установки моего пакета локальным и, таким образом, избежать проблемы с ограничением скорости?
Редактировать: Мой файл ОПИСАНИЯ ссылается на другие пакеты:
Depends:
R (>= 3.4.3),
dplyr
Imports:
RMariaDB,
dbplyr,
DBI,
reshape2,
RColorBrewer,
knitr,
kableExtra,
scales,
magrittr,
DT,
formattable,
testthat,
ggplot2,
rmarkdown
Комментарии:
1. у вас есть зависимости? может быть, вы можете показать
DESCRIPTION
файл вашего пакета?2. и у вас ничего нет под
Remotes:
, правильно?3. Да, верно, в разделе Remotes ничего нет.
4. @RolandASc Большое спасибо за указатель, похоже, что поведение зависимостей по умолчанию
install()
на самом деле было проблемой!
Ответ №1:
Похоже, что по умолчанию devtools::install()
проверяется наличие всех пакетов, перечисленных в качестве зависимостей в Depends
, Imports
и LinkingTo
в DESCRIPTION
файле (см. Объяснение dependencies = NA
опции в справочном руководстве devtools здесь). Это также верно для remotes::install_local()
, на который devtools::install_local()
даны ссылки.
Решение этой проблемы заключается в явном отключении проверки зависимостей пакетов: если вы используете devtools::install("my_local_package", dependencies = FALSE)
вместо этого, вам больше не нужно подключаться к api.github.com
. Это имеет смысл, когда вы знаете, что у вас уже установлены необходимые зависимости, как в случае, когда вы повторно упаковываете свой собственный код.
(Также стоит отметить: параметры по умолчанию в devtools::install()
требуют подключения к Интернету для установки любых пакетов, но, настроив dependencies = FALSE
, также можно установить локальный пакет в автономном режиме!)