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

Правильное использование devtools и/или RStudio в отношении .Rbuildignore

Я хотел бы исключить следующие ресурсы при создании пакета R через .Rbuildignore:

^.*\.Rproj$
^\.Rproj\.user$
inst/examples
inst/prof
man-roxygen
tests

Но я смущен, потому что иногда это работает, а иногда и нет.

Я предполагаю, что это нужно делать, если я использую devtools::build(), devtools::install() или что бы то ни было, когда вы нажимаете SHFT + CTRL + B (или Build → Build and Reload) в RStudio.

Единственные релевантные ресурсы, которые я мог найти, были этот пост, приводящий к этой проблеме, но я все еще не полностью его понимаю.

Это то, что я пробовал:

  • Загрузите все, за которыми следуют Build and Reload с помощью ярлыков RStudio:

    Это то, что я вижу при вызове list.files(file.path(R.home("library"), "mypackage")):

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"      
    
  • Загрузите все, за которыми следуют Build и Reload, а затем devtools::install():

    Это то, что я вижу при вызове list.files(file.path(R.home("library"), "mypackage")):

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"      
    
  • devtools::load_all(), за которым следует devtools::build(), а затем devtools::install():

    Это то, что я вижу при вызове list.files(file.path(R.home("library"), "mypackage")):

     [1] "DESCRIPTION" "examples"    "help"        "html"       
     [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
     [9] "R"           "tests"    
    

    Разжатие файла .tar.gz и проверка содержимого каталога:

     [1] "DESCRIPTION" "man"          "NAMESPACE"  "R"
    
  • devtools::load_all(), за которым следует devtools::build(binary=TRUE), а затем devtools::install():

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "Meta"        "NAMESPACE"   "prof"       
    [9] "R"           "tests"      
    

    Разжатие файла .zip и проверка содержимого каталога:

    [1] "DESCRIPTION" "examples"    "help"        "html"       
    [5] "INDEX"       "MD5"         "Meta"        "NAMESPACE"  
    [9] "prof"        "R"    
    

Глядя на это, также я повод полагаю, что я до сих пор не полностью понимаю различия между devtools::build(), devtools::install() и install.packages() после того, как пакет был создан; -)

Информация о сеансе:

R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=German_Germany.1252 
[2] LC_CTYPE=German_Germany.1252   
[3] LC_MONETARY=German_Germany.1252
[4] LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

attached base packages:
[1] compiler  stats     graphics  grDevices utils    
[6] datasets  methods   base     

other attached packages:
[1] mypackage_0.1.0.1

loaded via a namespace (and not attached):
 [1] devtools_1.5    digest_0.6.4    evaluate_0.5.5 
 [4] httr_0.4        memoise_0.2.1   packrat_0.4.0.5
 [7] parallel_3.1.1  RCurl_1.95-4.3  stringr_0.6.2  
[10] tools_3.1.1     whisker_0.3-2  

Я использую RStudio 0.98.978

4b9b3361

Ответ 1

То, что работает для меня, это использовать devtools::build для создания исходного пакета, а затем install.packages.

devtools::build() %>% 
  install.packages(repos = NULL, type = "source")

Использование devtools::build(binary = TRUE) не работает, поскольку оно вызывает R CMD INSTALL, а не R CMD build, которое игнорирует файлы .Rbuildignore. Аналогично, кнопка "Build and Reload" RStudio использует R CMD INSTALL.