diff --git a/DESCRIPTION b/DESCRIPTION index 55047fa14c..07b1a01053 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: rlang -Version: 0.1.2 +Version: 0.1.4 Title: Functions for Base Types and Core R and 'Tidyverse' Features Description: A toolbox for working with base types, core R features like the condition system, and core 'Tidyverse' features like tidy diff --git a/NEWS.md b/NEWS.md index db76322a7d..ce5b746615 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,11 @@ +# rlang 0.1.4 + +* `eval_tidy()` no longer maps over lists but returns them literally. + This behaviour is an overlook from past refactorings and was never + documented. + + # rlang 0.1.2 This hotfix release makes rlang compatible with the R 3.1 branch. diff --git a/R/eval-tidy.R b/R/eval-tidy.R index 75d294d55a..8c31c42c19 100644 --- a/R/eval-tidy.R +++ b/R/eval-tidy.R @@ -91,10 +91,6 @@ #' eval_tidy(quo(!! cyl), mtcars) #' @name eval_tidy eval_tidy <- function(expr, data = NULL, env = caller_env()) { - if (is_list(expr)) { - return(map(expr, eval_tidy, data = data)) - } - if (!inherits(expr, "quosure")) { expr <- new_quosure(expr, env) } diff --git a/README.md b/README.md index a9c73b8613..ea4f4929ba 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # rlang [![Build Status](https://travis-ci.org/tidyverse/rlang.svg?branch=master)](https://travis-ci.org/tidyverse/rlang) -[![Coverage Status](https://img.shields.io/codecov/c/github/tidyverse/rlang/master.svg)](https://codecov.io/github/tidyverse/rlang?branch=master) +[![Coverage Status](http://codecov.io/github/tidyverse/rlang/coverage.svg?branch=master)](http://codecov.io/github/tidyverse/rlang?branch=master) ## Overview diff --git a/cran-comments.md b/cran-comments.md index a1b8966123..ad207f909b 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,8 +1,11 @@ +The rchk warnings should now be fixed. + + ## Test environments -* local OS X install, R 3.4.1 -* ubuntu 12.04 (on travis-ci), R 3.4.1 +* local OS X install, R 3.4.2 +* ubuntu 12.04 (on travis-ci), R 3.4.2 * win-builder (devel and release) @@ -13,7 +16,22 @@ ## Reverse dependencies -I have run R CMD check on the 37 downstream dependencies. (Summary at -https://github.com/tidyverse/rlang/tree/v0.1.2/revdep). +I have run R CMD check on the 72 downstream dependencies. + +There were 6 packages I couldn't check: + +- bomrang +- GSODR +- pointblank +- poppr +- prisonbrief +- sf + + +There was 1 broken package : + +- taxa -There were no problems. +This is due to an intentional fix within rlang. I have sent a patch to +`taxa` authors to fix this issue and they will send a CRAN update +shortly. diff --git a/revdep/README.md b/revdep/README.md index 4d8e8442e0..e9d26b9e96 100644 --- a/revdep/README.md +++ b/revdep/README.md @@ -2,68 +2,114 @@ |field |value | |:--------|:----------------------------| -|version |R version 3.4.1 (2017-06-30) | -|os |macOS Sierra 10.12 | +|version |R version 3.4.2 (2017-09-28) | +|os |macOS Sierra 10.12.6 | |system |x86_64, darwin15.6.0 | |ui |X11 | |language |(EN) | |collate |en_US.UTF-8 | |tz |Europe/Brussels | -|date |2017-08-08 | +|date |2017-10-31 | # Dependencies |package |old |new |Δ | |:-------|:-----|:-----|:--| -|rlang |0.1.1 |0.1.2 |* | +|rlang |0.1.2 |0.1.2 |NA | # Revdeps +## Couldn't check (6) + +|package |version |error |warning |note | +|:--------------------------------------|:-------|:-----|:-------|:----| +|[bomrang](problems.md#bomrang) |0.0.8 |1 | | | +|[GSODR](problems.md#gsodr) |1.1.0 |1 | |1 | +|[pointblank](problems.md#pointblank) |0.1 |1 | | | +|[poppr](problems.md#poppr) |2.5.0 |1 | | | +|[prisonbrief](problems.md#prisonbrief) |0.1.0 |1 | | | +|[sf](problems.md#sf) |0.5-5 |1 | |1 | + ## Broken (1) |package |version |error |warning |note | |:------------------------|:-------|:------|:-------|:----| -|[banR](problems.md#banR) |0.2.0 |__+1__ | |1 | +|[taxa](problems.md#taxa) |0.1.0 |__+2__ |__+1__ |1 | -## All (37) +## All (72) -|package |version |error |warning |note | -|:------------------------|:-------|:------|:-------|:----| -|[banR](problems.md#banR) |0.2.0 |__+1__ | |1 | -|dbplyr |1.1.0 | | |1 | -|dexter |0.4.2 | |2 |1 | -|dplyr |0.7.2 | | |2 | -|fold |0.2.1 | | | | -|ggformula |0.5 | | |1 | -|iadf |0.1.0 | | | | -|implyr |0.2.1 |1 | | | -|later |0.3 | | | | -|metaplot |0.1.5 | | | | -|mosaicCore |0.2.0 | | | | -|nofrills |0.1.0 | | | | -|nonmemica |0.7.6 | |1 |1 | -|NPMOD |0.1.0 |1 | | | -|polypoly |0.0.2 | | | | -|prisonbrief |0.1.0 | | |1 | -|purrr |0.2.3 | | | | -|recipes |0.1.0 | | | | -|rsample |0.0.1 | | | | -|RSDA |2.0.2 | | | | -|seplyr |0.1.3 | | |1 | -|sf |0.5-3 |1 | | | -|sjmisc |2.6.0 | | | | -|sjPlot |2.3.2 | | |2 | -|sjstats |0.10.3 | | |1 | -|sparklyr |0.6.1 |1 | | | -|spdplyr |0.1.3 | | | | -|statar |0.6.5 | | | | -|stplanr |0.1.9 | |1 | | -|sugrrants |0.1.0 | | | | -|tatoo |1.0.7 | | | | -|taxa |0.1.0 | | |1 | -|tibble |1.3.3 | | | | -|tidygraph |1.0.0 | | | | -|tidyselect |0.1.1 | | |1 | -|valr |0.3.1 | | | | -|vdiffr |0.2.0 | | | | +|package |version |error |warning |note | +|:----------------------------------------|:-------|:------|:-------|:----| +|auk |0.1.0 | | | | +|[banR](problems.md#banr) |0.2.0 | |-1 |1 | +|[bayesplot](problems.md#bayesplot) |1.4.0 | | |1 | +|bioset |0.1.0 | | | | +|[bomrang](problems.md#bomrang) |0.0.8 |1 | | | +|[condformat](problems.md#condformat) |0.7.0 |1 | |1 | +|cytominer |0.1.0 | | | | +|[dbplyr](problems.md#dbplyr) |1.1.0 | | |1 | +|[dexter](problems.md#dexter) |0.5.1 | | |1 | +|DiagrammeR |0.9.2 | | | | +|[dplyr](problems.md#dplyr) |0.7.4 | | |2 | +|[epitable](problems.md#epitable) |0.1.2 | | |1 | +|ESTER |0.1.0 | | | | +|etl |0.3.7 | | | | +|fbar |0.3.4 | | | | +|fold |0.2.2 | | | | +|ggeffects |0.2.2 | | | | +|ggformula |0.6 | | | | +|gghighlight |0.0.1 | | | | +|googleAnalyticsR |0.4.2 | | | | +|googledrive |0.1.1 | | | | +|[GSODR](problems.md#gsodr) |1.1.0 |1 | |1 | +|iadf |0.1.0 | | | | +|[implyr](problems.md#implyr) |0.2.1 |1 | | | +|[kokudosuuchi](problems.md#kokudosuuchi) |0.4.1 |1 | | | +|later |0.5 | | | | +|metaplot |0.2.1 | | | | +|[MlBayesOpt](problems.md#mlbayesopt) |0.3.3 | | |1 | +|mosaicCore |0.4.0 | | | | +|mvMonitoring |0.1.0 | | | | +|naniar |0.1.0 | | | | +|nofrills |0.2.0 | | | | +|[nonmemica](problems.md#nonmemica) |0.7.6 | |1 |1 | +|NPMOD |0.1.0 | | | | +|[nyctaxi](problems.md#nyctaxi) |0.0.1 | |1 | | +|photobiology |0.9.17 | | | | +|[PKPDmisc](problems.md#pkpdmisc) |2.0.0 | | |1 | +|[pointblank](problems.md#pointblank) |0.1 |1 | | | +|polypoly |0.0.2 | | | | +|[poppr](problems.md#poppr) |2.5.0 |1 | | | +|[prisonbrief](problems.md#prisonbrief) |0.1.0 |1 | | | +|[proustr](problems.md#proustr) |0.2.1 | | |1 | +|purrr |0.2.4 | | | | +|[quickReg](problems.md#quickreg) |1.5.0 | | |2 | +|recipes |0.1.0 | | | | +|rsample |0.0.1 | | | | +|RSDA |2.0.2 | | | | +|[seplyr](problems.md#seplyr) |0.1.5 | | |1 | +|[sf](problems.md#sf) |0.5-5 |1 | |1 | +|sjmisc |2.6.2 | | | | +|[sjPlot](problems.md#sjplot) |2.4.0 | | |2 | +|[sjstats](problems.md#sjstats) |0.12.0 | | |1 | +|[sparklyr](problems.md#sparklyr) |0.6.3 |1 | | | +|spdplyr |0.1.3 | | | | +|statar |0.6.5 | | | | +|[stplanr](problems.md#stplanr) |0.1.9 |1 | | | +|sugrrants |0.1.0 | | | | +|[tatoo](problems.md#tatoo) |1.0.8 | | |1 | +|[taxa](problems.md#taxa) |0.1.0 |__+2__ |__+1__ |1 | +|tfruns |1.0 | | | | +|tibble |1.3.4 | | | | +|tibbletime |0.0.2 | | | | +|tidyboot |0.1.0 | | | | +|tidygraph |1.0.0 | | | | +|[tidyr](problems.md#tidyr) |0.7.2 | | |1 | +|tidyselect |0.2.2 | | | | +|tidystringdist |0.1.0 | | | | +|[tidytext](problems.md#tidytext) |0.1.4 | | |1 | +|unjoin |0.0.3 | | | | +|valr |0.3.1 | | | | +|vdiffr |0.2.1 | | | | +|VWPre |1.0.0 | | | | diff --git a/revdep/data.sqlite b/revdep/data.sqlite index c960798a82..22c1c913a1 100644 Binary files a/revdep/data.sqlite and b/revdep/data.sqlite differ diff --git a/revdep/problems.md b/revdep/problems.md index a3ef2b563a..d764cbdc5a 100644 --- a/revdep/problems.md +++ b/revdep/problems.md @@ -2,31 +2,651 @@ Version: 0.2.0 +## Newly fixed + +* checking re-building of vignette outputs ... WARNING + ``` + Error in re-building vignettes: + ... + Quitting from lines 57-66 (geocode.Rmd) + Error: processing vignette 'geocode.Rmd' failed with diagnostics: + The API sent back an error 503 + Execution halted + ``` + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘stringr’ + All declared Imports should be used. + ``` + +# bayesplot + +Version: 1.4.0 + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 5.7Mb + sub-directories of 1Mb or more: + R 1.6Mb + doc 3.6Mb + ``` + +# bomrang + +Version: 0.0.8 + +## In both + +* R CMD check timed out + + +# condformat + +Version: 0.7.0 + +## In both + +* checking tests ... + ``` + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > test_check("condformat") + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + 1. Error: condformat2excel generates a file (@test_rendering.R#38) ------------- + Please install the xlsx package in order to export to excel + 1: condformat2excel(condformat(head(iris, n = rows_to_write)), filename = filename) at testthat/test_rendering.R:38 + 2: require_xlsx() + 3: stop("Please install the xlsx package in order to export to excel") + + testthat results ================================================================ + OK: 115 SKIPPED: 0 FAILED: 1 + 1. Error: condformat2excel generates a file (@test_rendering.R#38) + + Error: testthat unit tests failed + Execution halted + ``` + +* checking dependencies in R code ... NOTE + ``` + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + ``` + +# dbplyr + +Version: 1.1.0 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘tibble’ + All declared Imports should be used. + ``` + +# dexter + +Version: 0.5.1 + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 109 marked UTF-8 strings + ``` + +# dplyr + +Version: 0.7.4 + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 6.3Mb + sub-directories of 1Mb or more: + libs 4.4Mb + ``` + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 4 marked UTF-8 strings + ``` + +# epitable + +Version: 0.1.2 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘magrittr’ ‘readr’ + All declared Imports should be used. + ``` + +# GSODR + +Version: 1.1.0 + +## In both + +* R CMD check timed out + + +* checking package dependencies ... NOTE + ``` + Package suggested but not available for checking: ‘rgeos’ + ``` + +# implyr + +Version: 0.2.1 + +## In both + +* checking tests ... + ``` + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + Loading required package: DBI + Loading required package: rJava + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + Error: package or namespace load failed for 'rJava': + .onLoad failed in loadNamespace() for 'rJava', details: + call: dyn.load(file, DLLpath = DLLpath, ...) + error: unable to load shared object '/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/implyr/rJava/libs/rJava.so': + dlopen(/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/implyr/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib + Referenced from: /Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/implyr/rJava/libs/rJava.so + Reason: image not found + Error: package 'rJava' could not be loaded + In addition: Warning message: + running command '/usr/libexec/java_home' had status 1 + Execution halted + ``` + +# kokudosuuchi + +Version: 0.4.1 + +## In both + +* checking package dependencies ... ERROR + ``` + Package required but not available: ‘sf’ + + See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ + manual. + ``` + +# MlBayesOpt + +Version: 0.3.3 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘data.table’ ‘foreach’ + All declared Imports should be used. + ``` + +# nonmemica + +Version: 0.7.6 + +## In both + +* checking re-building of vignette outputs ... WARNING + ``` + Error in re-building vignettes: + ... + Warning in engine$weave(file, quiet = quiet, encoding = enc) : + The vignette engine knitr::rmarkdown is not available, because the rmarkdown package is not installed. Please install it. + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + Quitting from lines 197-201 (parameter-table.Rmd) + Error: processing vignette 'parameter-table.Rmd' failed with diagnostics: + package 'ReporteRsjars' could not be loaded + Execution halted + ``` + +* checking dependencies in R code ... NOTE + ``` + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + ``` + +# nyctaxi + +Version: 0.0.1 + +## In both + +* checking re-building of vignette outputs ... WARNING + ``` + ... + + taxi <- etl("nyctaxi", dir = "~/Desktop/nyctaxi/") + taxi %>% + etl_extract(years = 2016, months = 1:2, types = c("yellow","green")) %>% + etl_transform(years = 2016, months = 1:2, types = c("yellow","green")) %>% + etl_load(years = 2016, months = 1:2, types = c("yellow","green")) + ## End(Not run) + + + + Attaching package: 'lubridate' + + The following object is masked from 'package:base': + + date + + pandoc: Could not fetch /Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/nyctaxi/leaflet/htmlwidgets/lib/leaflet/#default#VML + /Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/nyctaxi/leaflet/htmlwidgets/lib/leaflet/: openBinaryFile: inappropriate type (is a directory) + Error: processing vignette 'nyc_taxi.Rmd' failed with diagnostics: + pandoc document conversion failed with error 67 + Execution halted + ``` + +# PKPDmisc + +Version: 2.0.0 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘purrr’ + All declared Imports should be used. + ``` + +# pointblank + +Version: 0.1 + +## In both + +* checking whether package ‘pointblank’ can be installed ... ERROR + ``` + Installation failed. + See ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/pointblank/new/pointblank.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘pointblank’ ... +** package ‘pointblank’ successfully unpacked and MD5 sums checked +** R +** inst +** preparing package for lazy loading +Unable to find any JVMs matching version "(null)". +No Java runtime present, try --request to install. +Warning: running command '/usr/libexec/java_home' had status 1 +Error : .onLoad failed in loadNamespace() for 'rJava', details: + call: dyn.load(file, DLLpath = DLLpath, ...) + error: unable to load shared object '/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so': + dlopen(/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib + Referenced from: /Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so + Reason: image not found +ERROR: lazy loading failed for package ‘pointblank’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/pointblank/new/pointblank.Rcheck/pointblank’ + +``` +### CRAN + +``` +* installing *source* package ‘pointblank’ ... +** package ‘pointblank’ successfully unpacked and MD5 sums checked +** R +** inst +** preparing package for lazy loading +Unable to find any JVMs matching version "(null)". +No Java runtime present, try --request to install. +Warning: running command '/usr/libexec/java_home' had status 1 +Error : .onLoad failed in loadNamespace() for 'rJava', details: + call: dyn.load(file, DLLpath = DLLpath, ...) + error: unable to load shared object '/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so': + dlopen(/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so, 6): Library not loaded: @rpath/libjvm.dylib + Referenced from: /Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/library/pointblank/rJava/libs/rJava.so + Reason: image not found +ERROR: lazy loading failed for package ‘pointblank’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/pointblank/old/pointblank.Rcheck/pointblank’ + +``` +# poppr + +Version: 2.5.0 + +## In both + +* checking whether package ‘poppr’ can be installed ... ERROR + ``` + Installation failed. + See ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/poppr/new/poppr.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘poppr’ ... +** package ‘poppr’ successfully unpacked and MD5 sums checked +** libs +clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -fopenmp -fPIC -Wall -pedantic -O0 -c bitwise_distance.c -o bitwise_distance.o +clang: error: unsupported option '-fopenmp' +make: *** [bitwise_distance.o] Error 1 +ERROR: compilation failed for package ‘poppr’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/poppr/new/poppr.Rcheck/poppr’ + +``` +### CRAN + +``` +* installing *source* package ‘poppr’ ... +** package ‘poppr’ successfully unpacked and MD5 sums checked +** libs +clang -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -fopenmp -fPIC -Wall -pedantic -O0 -c bitwise_distance.c -o bitwise_distance.o +clang: error: unsupported option '-fopenmp' +make: *** [bitwise_distance.o] Error 1 +ERROR: compilation failed for package ‘poppr’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/poppr/old/poppr.Rcheck/poppr’ + +``` +# prisonbrief + +Version: 0.1.0 + +## In both + +* checking whether package ‘prisonbrief’ can be installed ... ERROR + ``` + Installation failed. + See ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/prisonbrief/new/prisonbrief.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘prisonbrief’ ... +** package ‘prisonbrief’ successfully unpacked and MD5 sums checked +** R +** data +*** moving datasets to lazyload DB +** inst +** preparing package for lazy loading +Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : + there is no package called ‘sf’ +ERROR: lazy loading failed for package ‘prisonbrief’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/prisonbrief/new/prisonbrief.Rcheck/prisonbrief’ + +``` +### CRAN + +``` +* installing *source* package ‘prisonbrief’ ... +** package ‘prisonbrief’ successfully unpacked and MD5 sums checked +** R +** data +*** moving datasets to lazyload DB +** inst +** preparing package for lazy loading +Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : + there is no package called ‘sf’ +ERROR: lazy loading failed for package ‘prisonbrief’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/prisonbrief/old/prisonbrief.Rcheck/prisonbrief’ + +``` +# proustr + +Version: 0.2.1 + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 20105 marked UTF-8 strings + ``` + +# quickReg + +Version: 1.5.0 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘psych’ + All declared Imports should be used. + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘PredictABEL’ + ``` + +# seplyr + +Version: 0.1.5 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘datasets’ + All declared Imports should be used. + ``` + +# sf + +Version: 0.5-5 + +## In both + +* checking whether package ‘sf’ can be installed ... ERROR + ``` + Installation failed. + See ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/sf/new/sf.Rcheck/00install.out’ for details. + ``` + +* checking package dependencies ... NOTE + ``` + Package suggested but not available for checking: ‘rgeos’ + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘sf’ ... +** package ‘sf’ successfully unpacked and MD5 sums checked +configure: CC: clang +configure: CXX: ccache clang++ +checking for gdal-config... no +no +configure: error: gdal-config not found or not executable. +ERROR: configuration failed for package ‘sf’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/sf/new/sf.Rcheck/sf’ + +``` +### CRAN + +``` +* installing *source* package ‘sf’ ... +** package ‘sf’ successfully unpacked and MD5 sums checked +configure: CC: clang +configure: CXX: ccache clang++ +checking for gdal-config... no +no +configure: error: gdal-config not found or not executable. +ERROR: configuration failed for package ‘sf’ +* removing ‘/Users/lionel/Dropbox/Projects/R/hadley/rlang/revdep/checks/sf/old/sf.Rcheck/sf’ + +``` +# sjPlot + +Version: 2.4.0 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘prediction’ + All declared Imports should be used. + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘plm’ + ``` + +# sjstats + +Version: 0.12.0 + +## In both + +* checking Rd cross-references ... NOTE + ``` + Packages unavailable to check Rd xrefs: ‘sjPlot’, ‘MuMIn’, ‘piecewiseSEM’ + ``` + +# sparklyr + +Version: 0.6.3 + +## In both + +* checking tests ... + ``` + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > library(testthat) + > library(sparklyr) + > + > if (identical(Sys.getenv("NOT_CRAN"), "true")) { + + test_check("sparklyr") + + on.exit({ spark_disconnect_all() ; livy_service_stop() }) + + } + Error in validate_java_version_line(master, version) : + Java version detected but couldn't parse version from No Java runtime present, requesting install. + Calls: test_check ... validate_java_version -> validate_java_version_line + In addition: Warning message: + running command ''/usr/bin/java' -version 2>&1' had status 1 + testthat results ================================================================ + OK: 0 SKIPPED: 0 FAILED: 0 + Execution halted + ``` + +# stplanr + +Version: 0.1.9 + +## In both + +* checking package dependencies ... ERROR + ``` + Package required but not available: ‘rgeos’ + + See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ + manual. + ``` + +# tatoo + +Version: 1.0.8 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘crayon’ ‘utils’ + All declared Imports should be used. + ``` + +# taxa + +Version: 0.1.0 + ## Newly broken * checking examples ... ERROR ``` ... - If file is larger than 8 MB, it must be splitted - Size is : 61 bytes - SuccessOKSuccess: (200) OK - # A tibble: 3 x 16 - y z x latitude longitude - - 1 75015 -0.6264538 39 quai Andre Citroen 48.84683 2.279092 - 2 75012 0.1836433 64 Allee de Bercy 48.84255 2.375933 - 3 75007 -0.8356286 20 avenue de Segur 48.85032 2.308332 - # ... with 11 more variables: result_label , result_score , - # result_type , result_id , result_housenumber , - # result_name , result_street , result_postcode , - # result_city , result_context , result_citycode - > geocode_tbl(tbl = table_test, adresse = x, code_postal = y) - Writing tempfile to.../var/folders/b9/1vbq6rn93_1fk71sn95dqb8r0000gn/T//RtmpTIqQ1D/file970d7b3ad7f0.csv - If file is larger than 8 MB, it must be splitted - Size is : 81 bytes - Server errorService UnavailableServer error: (503) Service Unavailable - Error in geocode_tbl(tbl = table_test, adresse = x, code_postal = y) : - The API sent back an error 503 + 4 data sets: + info: + # A tibble: 4 x 4 + name n_legs dangerous taxon_id + + 1 cat 4 FALSE n + 2 mole 4 FALSE o + 3 tomato 0 FALSE q + # ... with 1 more rows + phylopic_ids: e148eabb-f138-43c6-b1e4-5cda2180485a ... 63604565-0406-460b-8cb8-1abe954b3f3a + foods: a list with 6 items + And 1 more data sets: abund + 1 functions: + reaction + > + > # Remove taxa whose obserservation were filtered out + > filter_obs(ex_taxmap, "info", dangerous == FALSE, drop_taxa = TRUE) + Error in names(selection) <- self$taxon_ids() : + 'names' attribute [17] must be the same length as the vector [2] + Calls: filter_obs ... filter_obs.Taxmap -> -> -> + Execution halted + ``` + +* checking tests ... + ``` + ERROR + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + testthat results ================================================================ + OK: 317 SKIPPED: 0 FAILED: 31 + 1. Error: NSE values can be found (@test--taxmap.R#214) + 2. Error: All valid NSE values can be found (@test--taxmap.R#224) + 3. Error: Mapping between table observations and the edge list works (@test--taxmap.R#233) + 4. Error: Mapping between a subset of observations and the edge list works (@test--taxmap.R#242) + 5. Error: Mapping non-recursivly between observations and the edge list works (@test--taxmap.R#247) + 6. Error: Mapping simplification between observations and the edge list works (@test--taxmap.R#253) + 7. Error: Mapping observations in external tables (@test--taxmap.R#259) + 8. Error: Default taxon filtering works (@test--taxmap.R#271) + 9. Error: Subtaxa can be included when filtering taxa (@test--taxmap.R#279) + 1. ... + + Error: testthat unit tests failed + Execution halted + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error in re-building vignettes: + ... + Quitting from lines 258-259 (taxa-vignette.Rmd) + Error: processing vignette 'taxa-vignette.Rmd' failed with diagnostics: + 'names' attribute [14] must be the same length as the vector [2] Execution halted ``` @@ -34,7 +654,31 @@ Version: 0.2.0 * checking dependencies in R code ... NOTE ``` - Namespace in Imports field not imported from: ‘stringr’ + Namespaces in Imports field not imported from: + ‘knitr’ ‘lazyeval’ ‘rlang’ All declared Imports should be used. ``` +# tidyr + +Version: 0.7.2 + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 23 marked UTF-8 strings + ``` + +# tidytext + +Version: 0.1.4 + +## In both + +* checking dependencies in R code ... NOTE + ``` + Unable to find any JVMs matching version "(null)". + No Java runtime present, try --request to install. + ``` + diff --git a/src/capture.c b/src/capture.c index 0ebec71393..6a0d9d40a8 100644 --- a/src/capture.c +++ b/src/capture.c @@ -73,10 +73,12 @@ SEXP attribute_hidden rlang_capturedots(SEXP call, SEXP op, SEXP args, SEXP rho) int strict = asLogical(CADR(args)); // R code has checked for unbound dots - SEXP dots = findVarInFrame3(caller_env, R_DotsSymbol, TRUE); + SEXP dots = PROTECT(findVarInFrame3(caller_env, R_DotsSymbol, TRUE)); - if (dots == R_MissingArg) + if (dots == R_MissingArg) { + UNPROTECT(1); return allocVector(VECSXP, 0); + } int n_dots = length(dots); SEXP captured = PROTECT(allocVector(VECSXP, n_dots)); @@ -91,7 +93,7 @@ SEXP attribute_hidden rlang_capturedots(SEXP call, SEXP op, SEXP args, SEXP rho) if (TYPEOF(dot) == PROMSXP) { dot = capture_promise(dot, strict); if (dot == R_NilValue) { - UNPROTECT(2); + UNPROTECT(3); return R_NilValue; } } else { @@ -106,6 +108,6 @@ SEXP attribute_hidden rlang_capturedots(SEXP call, SEXP op, SEXP args, SEXP rho) dots = CDR(dots); } - UNPROTECT(2); + UNPROTECT(3); return captured; } diff --git a/src/export.c b/src/export.c index 7b8fb83582..cdf8fbc797 100644 --- a/src/export.c +++ b/src/export.c @@ -18,9 +18,11 @@ DL_FUNC R_ExternalPtrAddrFn(SEXP s) { #endif SEXP rlang_namespace(const char* ns) { - SEXP call = PROTECT(Rf_lang2(Rf_install("getNamespace"), Rf_mkString(ns))); + SEXP ns_string = PROTECT(Rf_mkString(ns)); + SEXP call = PROTECT(Rf_install("getNamespace")); + call = PROTECT(Rf_lang2(call, ns_string)); SEXP ns_env = Rf_eval(call, R_BaseEnv); - UNPROTECT(1); + UNPROTECT(3); return ns_env; } @@ -30,8 +32,10 @@ void rlang_register_pointer(const char* ns, const char* ptr_name, DL_FUNC fn) { SEXP ptr_obj = PROTECT(Rf_allocVector(VECSXP, 1)); SET_VECTOR_ELT(ptr_obj, 0, ptr); - Rf_setAttrib(ptr_obj, R_ClassSymbol, Rf_mkString("fn_pointer")); + SEXP ptr_class = PROTECT(Rf_mkString("fn_pointer")); + Rf_setAttrib(ptr_obj, R_ClassSymbol, ptr_class); - Rf_defineVar(Rf_install(ptr_name), ptr_obj, rlang_namespace(ns)); - UNPROTECT(2); + SEXP ns_env = PROTECT(rlang_namespace(ns)); + Rf_defineVar(Rf_install(ptr_name), ptr_obj, ns_env); + UNPROTECT(4); } diff --git a/src/splice.c b/src/splice.c index 185692745d..e0124f2959 100644 --- a/src/splice.c +++ b/src/splice.c @@ -30,7 +30,7 @@ R_len_t atom_squash(SEXPTYPE kind, squash_info_t info, Rf_errorcall(R_NilValue, "Only lists can be spliced"); SEXP inner; - SEXP out_names = names(out); + SEXP out_names = PROTECT(names(out)); R_len_t n_outer = Rf_length(outer); R_len_t n_inner; @@ -55,6 +55,7 @@ R_len_t atom_squash(SEXPTYPE kind, squash_info_t info, } } + UNPROTECT(1); return count; } @@ -68,7 +69,7 @@ R_len_t list_squash(squash_info_t info, SEXP outer, Rf_errorcall(R_NilValue, "Only lists can be spliced"); SEXP inner; - SEXP out_names = names(out); + SEXP out_names = PROTECT(names(out)); R_len_t n_outer = Rf_length(outer); for (R_len_t i = 0; i != n_outer; ++i) { @@ -88,6 +89,7 @@ R_len_t list_squash(squash_info_t info, SEXP outer, } } + UNPROTECT(1); return count; } diff --git a/tests/testthat/test-dots.R b/tests/testthat/test-dots.R index 68ea2c7ee5..51a6919476 100644 --- a/tests/testthat/test-dots.R +++ b/tests/testthat/test-dots.R @@ -19,7 +19,8 @@ test_that("dots are always named", { }) test_that("dots can be spliced", { - expect_identical(dots_values(!!! list(letters)), named_list(splice(list(letters)))) + spliced_dots <- dots_values(!!! list(letters)) + expect_identical(spliced_dots, named_list(splice(list(letters)))) expect_identical(flatten(dots_values(!!! list(letters))), list(letters)) expect_identical(ll(!!! list(letters)), list(letters)) wrapper <- function(...) ll(...) diff --git a/tests/testthat/test-tidy-capture.R b/tests/testthat/test-tidy-capture.R index 045dd083fe..8d6b411185 100644 --- a/tests/testthat/test-tidy-capture.R +++ b/tests/testthat/test-tidy-capture.R @@ -57,10 +57,17 @@ test_that("dots capture is stack-consistent", { }) test_that("splice is consistently recognised", { - expect_true(is_splice(quote(!!! list()))) - expect_true(is_splice(quote(UQS(list())))) - expect_true(is_splice(quote(rlang::UQS(list())))) - expect_false(is_splice(quote(ns::UQS(list())))) + spliced <- quote(!!! list()) + expect_true(is_splice(spliced)) + + spliced <- quote(UQS(list())) + expect_true(is_splice(spliced)) + + spliced <- quote(rlang::UQS(list())) + expect_true(is_splice(spliced)) + + spliced <- quote(ns::UQS(list())) + expect_false(is_splice(spliced)) }) test_that("dots can be spliced in", { diff --git a/tests/testthat/test-tidy-unquote.R b/tests/testthat/test-tidy-unquote.R index 11883cb828..c8f955a7e2 100644 --- a/tests/testthat/test-tidy-unquote.R +++ b/tests/testthat/test-tidy-unquote.R @@ -2,9 +2,12 @@ context("unquote") test_that("interpolation does not recurse over spliced arguments", { var1 <- quote(!! stop()) + quo_var1 <- tryCatch(quo(list(!!! var1)), error = identity) + expect_false(inherits(quo_var1, "error")) + var2 <- quote({foo; !! stop(); bar}) - expect_error(quo(list(!!! var1)), NA) - expect_error(expr(list(!!! var2)), NA) + expr_var2 <- tryCatch(expr(list(!!! var2)), error = identity) + expect_false(inherits(expr_var2, "error")) }) test_that("formulas containing unquote operators are interpolated", { @@ -42,8 +45,12 @@ test_that("unquote operators are always in scope", { test_that("can interpolate in specific env", { foo <- "bar" env <- child_env(NULL, foo = "foo") - expect_identical(expr_interp(~UQ(foo)), set_env(quo("bar"))) - expect_identical(expr_interp(~UQ(foo), env), set_env(quo("foo"))) + + expanded <- expr_interp(~UQ(foo)) + expect_identical(expanded, set_env(quo("bar"))) + + expanded <- expr_interp(~UQ(foo), env) + expect_identical(expanded, set_env(quo("foo"))) }) test_that("can qualify operators with namespace", { @@ -88,17 +95,28 @@ test_that("quosures are not rewrapped", { }) test_that("UQ() fails if called without argument", { - expect_equal(quo(UQ(NULL)), ~NULL) - expect_equal(quo(rlang::UQ(NULL)), ~NULL) - expect_error(quo(UQ()), "must be called with an argument") - expect_error(quo(rlang::UQ()), "must be called with an argument") + quo <- quo(UQ(NULL)) + expect_equal(quo, ~NULL) + + quo <- quo(rlang::UQ(NULL)) + expect_equal(quo, ~NULL) + + quo <- tryCatch(quo(UQ()), error = identity) + expect_is(quo, "error") + expect_match(quo$message, "must be called with an argument") + + quo <- tryCatch(quo(rlang::UQ()), error = identity) + expect_is(quo, "error") + expect_match(quo$message, "must be called with an argument") }) # UQS --------------------------------------------------------------------- test_that("contents of UQS() must be a vector or language object", { - expect_error(quo(1 + UQS(environment())), "`x` must be a vector") + quo <- tryCatch(quo(1 + UQS(environment())), error = identity) + expect_is(quo, "error") + expect_match(quo$message, "`x` must be a vector") }) test_that("values of UQS() spliced into expression", { @@ -171,10 +189,14 @@ test_that("quosures are created for all informative formulas", { # dots_values() ------------------------------------------------------ test_that("can unquote-splice symbols", { - expect_identical(ll(!!! list(quote(`_symbol`))), list(quote(`_symbol`))) + spliced <- ll(!!! list(quote(`_symbol`))) + expect_identical(spliced, list(quote(`_symbol`))) }) test_that("can unquote symbols", { - expect_identical(dots_values(!! quote(.)), named_list(quote(.))) - expect_identical(dots_values(rlang::UQ(quote(.))), named_list(quote(.))) + unquoted <- dots_values(!! quote(.)) + expect_identical(unquoted, named_list(quote(.))) + + unquoted <- dots_values(rlang::UQ(quote(.))) + expect_identical(unquoted, named_list(quote(.))) })