2016-01-04 4 views
4

Поздравления и Приветствия,Travis CI R ошибка пакета в документации

Я недавно подключили github repo содержащий R пакет для Travis CI. Я думал, что репозиторий будет построен отлично, однако возникает несколько ошибок проверки, которые я не могу реплицировать при локальных установках Windows, OS X или Ubuntu 14.04 LTS.

Ошибки происходящие от функций, которые разделяют следующие общие черты:

  1. У roxygen2 справочной документации, закодированная с @keyword внутренним.
  2. Написаны с использованием Rcpp/RcppArmadillo.

В частности, я получаю следующее предупреждение от Travis CI:

Functions or methods with usage in documentation object 'internal function here' but not in code:

Это не является особенно проблематичным, поскольку это является предупреждением. A previous post обратился к другой форме этого примера, используя @method и @export. Однако функции Rcpp не относятся к классу OO (S3/S4/RR).

Однако, когда Travis CI начинает оценивать примеры программ пакета, это предупреждение становится ошибка:

Error: could not find function "internal function here"

и приводит к выпадению сборки. Хотя сама сборка должна пройти проверку, так как функция существует.

Travis CI настраивается с помощью recommended guidelines следующим образом:

language: r 
sudo: required 
warnings_are_errors: true 

r_packages: 
- ggplot2 
- devtools 
- RcppArmadillo 
- knitr 
- gridExtra 
- grid 

r_build_args: "--no-build-vignettes" 
r_check_args: "--no-build-vignettes --as-cran" 

Примечание В --no-BUILD-виньетки был добавлен, так как Трэвис будет ошибка при построении их, так как код R называет один из внутренние функции, перечисленные в документах.

Вот я считаю, что последняя сборка общественного облицовочный: Travis CI report (v1.0.1)

И результаты от первой версии на CRAN: CRAN report (v1.0.0)

Любые мысли будут приветствоваться.

ответ

4

Я могу воспроизвести предупреждения/ошибки на своем ноутбуке (работает OS X). Я также уверен, что если вы проверите свой репозиторий, построите шарик tar, а затем запустите R CMD check на нем, вы получите те же предупреждения/ошибки, что и на Travis CI. (Я предполагаю, что вы только проверили свой пакет внутри R Studio.)

Насколько я могу сказать, что проблема в том, что вы добавили R/RcppExports.R и src/RcppExports.cpp к вашему .gitignore, что означает, что эти файлы не на GitHub. Travis CI не запускает Rcpp::compileAttributes для вас.

Есть два простых решения:

  1. Удалить R/RcppExports.R и src/RcppExports.cpp из .gitignore и совершающие их GitHub со всем остальным.Это имеет смысл, потому что эти файлы на самом деле являются частью вашего пакета, и вы не должны ожидать от конечного пользователя их компиляции перед установкой пакета. Я думаю, что это правильный способ справиться с этим.
  2. Добавьте строку в свой travis.yml для запуска Rcpp :: compileAttributes перед созданием пакета, например. Rscript -e "Rcpp::compileAttributes()".
+0

Удивительный! Большой улов на '.gitignore' вызывает проблему. Вы правильно относились к тому, что проверка пакета выполняется с использованием RStudio вместо терминала. Благодарим за помощь! – coatless

Смежные вопросы