diff --git a/DESCRIPTION b/DESCRIPTION index 5cdac2974c..cbf8db6cd5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: ggplot2 -Version: 3.3.6.9000 +Version: 3.4.0 Title: Create Elegant Data Visualisations Using the Grammar of Graphics Authors@R: c( person("Hadley", "Wickham", , "hadley@rstudio.com", role = "aut", @@ -43,7 +43,7 @@ Imports: scales (>= 1.2.0), stats, tibble, - vctrs (>= 0.4.1), + vctrs (>= 0.5.0), withr (>= 2.5.0) Suggests: covr, @@ -71,8 +71,6 @@ Suggests: testthat (>= 3.1.2), vdiffr (>= 1.0.0), xml2 -Remotes: - r-lib/lifecycle Enhances: sp VignetteBuilder: diff --git a/NAMESPACE b/NAMESPACE index 9cfee5593e..af6f39040c 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,20 +4,23 @@ S3method("$",ggproto) S3method("$",ggproto_parent) S3method("$<-",uneval) S3method("+",gg) +S3method("[",mapped_discrete) S3method("[",uneval) +S3method("[<-",mapped_discrete) S3method("[<-",uneval) S3method("[[",ggproto) S3method("[[<-",uneval) S3method(.DollarNames,ggproto) +S3method(as.data.frame,mapped_discrete) S3method(as.list,ggproto) S3method(autolayer,default) S3method(autoplot,default) +S3method(c,mapped_discrete) S3method(drawDetails,zeroGrob) S3method(element_grob,element_blank) S3method(element_grob,element_line) S3method(element_grob,element_rect) S3method(element_grob,element_text) -S3method(format,ggplot2_mapped_discrete) S3method(format,ggproto) S3method(format,ggproto_method) S3method(fortify,"NULL") @@ -139,30 +142,24 @@ S3method(scale_type,sfc) S3method(single_value,default) S3method(single_value,factor) S3method(summary,ggplot) -S3method(vec_arith,ggplot2_mapped_discrete) -S3method(vec_arith.ggplot2_mapped_discrete,MISSING) -S3method(vec_arith.ggplot2_mapped_discrete,default) -S3method(vec_arith.ggplot2_mapped_discrete,ggplot2_mapped_discrete) -S3method(vec_arith.ggplot2_mapped_discrete,numeric) -S3method(vec_arith.numeric,ggplot2_mapped_discrete) -S3method(vec_cast,character.ggplot2_mapped_discrete) -S3method(vec_cast,double.ggplot2_mapped_discrete) -S3method(vec_cast,factor.ggplot2_mapped_discrete) -S3method(vec_cast,ggplot2_mapped_discrete.double) -S3method(vec_cast,ggplot2_mapped_discrete.factor) -S3method(vec_cast,ggplot2_mapped_discrete.ggplot2_mapped_discrete) -S3method(vec_cast,ggplot2_mapped_discrete.integer) -S3method(vec_cast,integer.ggplot2_mapped_discrete) -S3method(vec_math,ggplot2_mapped_discrete) -S3method(vec_ptype2,character.ggplot2_mapped_discrete) -S3method(vec_ptype2,double.ggplot2_mapped_discrete) -S3method(vec_ptype2,factor.ggplot2_mapped_discrete) -S3method(vec_ptype2,ggplot2_mapped_discrete.character) -S3method(vec_ptype2,ggplot2_mapped_discrete.double) -S3method(vec_ptype2,ggplot2_mapped_discrete.factor) -S3method(vec_ptype2,ggplot2_mapped_discrete.ggplot2_mapped_discrete) -S3method(vec_ptype2,ggplot2_mapped_discrete.integer) -S3method(vec_ptype2,integer.ggplot2_mapped_discrete) +S3method(vec_cast,character.mapped_discrete) +S3method(vec_cast,double.mapped_discrete) +S3method(vec_cast,factor.mapped_discrete) +S3method(vec_cast,integer.mapped_discrete) +S3method(vec_cast,mapped_discrete.double) +S3method(vec_cast,mapped_discrete.factor) +S3method(vec_cast,mapped_discrete.integer) +S3method(vec_cast,mapped_discrete.logical) +S3method(vec_cast,mapped_discrete.mapped_discrete) +S3method(vec_ptype2,character.mapped_discrete) +S3method(vec_ptype2,double.mapped_discrete) +S3method(vec_ptype2,factor.mapped_discrete) +S3method(vec_ptype2,integer.mapped_discrete) +S3method(vec_ptype2,mapped_discrete.character) +S3method(vec_ptype2,mapped_discrete.double) +S3method(vec_ptype2,mapped_discrete.factor) +S3method(vec_ptype2,mapped_discrete.integer) +S3method(vec_ptype2,mapped_discrete.mapped_discrete) S3method(widthDetails,titleGrob) S3method(widthDetails,zeroGrob) export("%+%") @@ -691,7 +688,6 @@ export(update_geom_defaults) export(update_labels) export(update_stat_defaults) export(vars) -export(vec_arith.ggplot2_mapped_discrete) export(waiver) export(wrap_dims) export(xlab) diff --git a/NEWS.md b/NEWS.md index 1055701665..7e6b297ae2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,19 +1,64 @@ -# ggplot2 (development version) +# ggplot2 3.4.0 +This is a minor release focusing on tightening up the internals and ironing out +some inconsistencies in the API. The biggest change is the addition of the +`linewidth` aesthetic that takes of sizing the width of any line from `size`. +This change, while attempting to be as non-breaking as possible, has the +potential to change the look of some of your plots. + +Other notable changes is a complete redo of the error and warning messaging in +ggplot2 using the cli package. Messaging is now better contextualised and it +should be easier to identify which layer an error is coming from. Last, we have +now made the switch to using the vctrs package internally which means that +support for vctrs classes as variables should improve, along with some small +gains in rendering speed. +## Breaking changes + +* A `linewidth` aesthetic has been introduced and supersedes the `size` + aesthetic for scaling the width of lines in line based geoms. `size` will + remain functioning but deprecated for these geoms and it is recommended to + update all code to reflect the new aesthetic. For geoms that have _both_ point + sizing and linewidth sizing (`geom_pointrange()` and `geom_sf`) `size` now + **only** refers to sizing of points which can leads to a visual change in old + code (@thomasp85, #3672) + +* The default line width for polygons in `geom_sf()` have been decreased to 0.2 + to reflect that this is usually used for demarking borders where a thinner + line is better suited. This change was made since we already induced a + visual change in `geom_sf()` with the introduction of the `linewidth` + aesthetic. + * The dot-dot notation (`..var..`) and `stat()`, which have been superseded by `after_stat()`, are now formally deprecated (@yutannihilation, #3693). +* `qplot()` is now formally deprecated (@yutannihilation, #3956). + +* `stage()` now properly refers to the values without scale transformations for + the stage of `after_stat`. If your code requires the scaled version of the + values for some reason, you have to apply the same transformation by yourself, + e.g. `sqrt()` for `scale_{x,y}_sqrt()` (@yutannihilation and @teunbrand, #4155). + +* Use `rlang::hash()` instead of `digest::digest()`. This update may lead to + changes in the automatic sorting of legends. In order to enforce a specific + legend order use the `order` argument in the guide. (@thomasp85, #4458) + +* referring to `x` in backquoted expressions with `label_bquote()` is no longer + possible. + +* The `ticks.linewidth` and `frame.linewidth` parameters of `guide_colourbar()` + are now multiplied with `.pt` like elsewhere in ggplot2. It can cause visual + changes when these arguments are not the defaults and these changes can be + restored to their previous behaviour by adding `/ .pt` (@teunbrand #4314). + +* `scale_*_viridis_b()` now uses the full range of the viridis scales + (@gregleleu, #4737) + +## New features + * `geom_col()` and `geom_bar()` gain a new `just` argument. This is set to `0.5` by default; use `just = 0`/`just = 1` to place columns on the left/right of the axis breaks. (@wurli, #4899) - -* Fix a bug in `position_jitter()` where infinity values were dropped (@javlon, - #4790). - -* `geom_linerange()` now respects the `na.rm` argument (#4927, @thomasp85) - -* Improve the support for `guide_axis()` on `coord_trans()` (@yutannihilation, #3959) * `geom_density()` and `stat_density()` now support `bounds` argument to estimate density with boundary correction (@echasnovski, #4013). @@ -22,6 +67,25 @@ columns were dropped and warns about this. If stats intend to drop data columns they can declare them in the new field `dropped_aes`. (@clauswilke, #3250) + +* `...` supports `rlang::list2` dynamic dots in all public functions. + (@mone27, #4764) + +* `theme()` now has a `strip.clip` argument, that can be set to `"off"` to + prevent the clipping of strip text and background borders (@teunbrand, #4118) + +* `geom_contour()` now accepts a function in the `breaks` argument + (@eliocamp, #4652). + +## Minor improvements and bug fixes + +* Fix a bug in `position_jitter()` where infinity values were dropped (@javlon, + #4790). + +* `geom_linerange()` now respects the `na.rm` argument (#4927, @thomasp85) + +* Improve the support for `guide_axis()` on `coord_trans()` + (@yutannihilation, #3959) * Added `stat_align()` to align data without common x-coordinates prior to stacking. This is now the default stat for `geom_area()` (@thomasp85, #4850) @@ -30,26 +94,11 @@ certain number of digits would cause the computations to fail (@thomasp85, #4874) -* `stage()` now properly refers to the values without scale transformations for - the stage of `after_stat`. If your code requires the scaled version of the - values for some reason, you have to apply the same transformation by yourself, - e.g. `sqrt()` for `scale_{x,y}_sqrt()` (@yutannihilation and @teunbrand, #4155). - -* A `linewidth` aesthetic has been introduced and supersedes the `size` - aesthetic for scaling the width of lines in line based geoms. `size` will - remain functioning but deprecated for these geoms and it is recommended to - update all code to reflect the new aesthetic (@thomasp85, #3672) - * Secondary axis ticks are now positioned more precisely, removing small visual artefacts with alignment between grid and ticks (@thomasp85, #3576) -* Improve `stat_function` documentation regarding `xlim` argument. (@92amartins, #4474) - -* `qplot()` is now formally deprecated (@yutannihilation, #3956). - -* Use `rlang::hash()` instead of `digest::digest()`. This update may lead to - changes in the automatic sorting of legends. In order to enforce a specific - legend order use the `order` argument in the guide. (@thomasp85, #4458) +* Improve `stat_function` documentation regarding `xlim` argument. + (@92amartins, #4474) * Fix various issues with how `labels`, `breaks`, `limits`, and `show.limits` interact in the different binning guides (@thomasp85, #4831) @@ -62,11 +111,6 @@ If used incorrectly, the warning will now report the duplicated aesthetic instead of `NA` (@teunbrand, #4707). -* `...` supports `rlang::list2` dynamic dots in all public functions. (@mone27, #4764) - -* `theme()` now has a `strip.clip` argument, that can be set to `"off"` to - prevent the clipping of strip text and background borders (@teunbrand, #4118) - * `aes()` now supports the `!!!` operator in its first two arguments (#2675). Thanks to @yutannihilation and @teunbrand for draft implementations. @@ -81,9 +125,6 @@ * `presidential` dataset now includes Trump's presidency (@bkmgit, #4703). -* referring to `x` in backquoted expressions with `label_bquote()` is no longer - possible. - * `position_stack()` now works fully with `geom_text()` (@thomasp85, #4367) * `geom_tile()` now correctly recognises missing data in `xmin`, `xmax`, `ymin`, @@ -106,8 +147,9 @@ * Binning scales are now more resilient to calculated limits that ends up being `NaN` after transformations (@thomasp85, #4510) -* Strip padding in `facet_grid()` is now only in effect if `strip.placement = "outside"` - _and_ an axis is present between the strip and the panel (@thomasp85, #4610) +* Strip padding in `facet_grid()` is now only in effect if + `strip.placement = "outside"` _and_ an axis is present between the strip and + the panel (@thomasp85, #4610) * Aesthetics of length 1 are now recycled to 0 if the length of the data is 0 (@thomasp85, #4588) @@ -134,18 +176,9 @@ all `values` on the legend instead, use `scale_*_manual(values = vals, limits = names(vals))`. (@teunbrand, @banfai, #4511, #4534) - -* `geom_contour()` now accepts a function in the `breaks` argument (@eliocamp, #4652). - -* VISUAL CHANGE: `scale_*_viridis_b()` now uses the full range of the viridis scales (@gregleleu, #4737) * Updated documentation for `geom_contour()` to correctly reflect argument -precedence between `bins` and `binwidth`. (@eliocamp, #4651) - -* The `ticks.linewidth` and `frame.linewidth` parameters of `guide_colourbar()` - are now multiplied with `.pt` like elsewhere in ggplot2. It can cause visual - changes when these arguments are not the defaults and these changes can be - restored to their previous behaviour by adding `/ .pt` (@teunbrand #4314). + precedence between `bins` and `binwidth`. (@eliocamp, #4651) * Dots in `geom_dotplot()` are now correctly aligned to the baseline when `stackratio != 1` and `stackdir != "up"` (@mjskay, #4614) @@ -153,8 +186,8 @@ precedence between `bins` and `binwidth`. (@eliocamp, #4651) * Key glyphs for `geom_boxplot()`, `geom_crossbar()`, `geom_pointrange()`, and `geom_linerange()` are now orientation-aware (@mjskay, #4732) -* Updated documentation for `geom_smooth()` to more clearly describe effects of the - `fullrange` parameter (@thoolihan, #4399). +* Updated documentation for `geom_smooth()` to more clearly describe effects of + the `fullrange` parameter (@thoolihan, #4399). # ggplot2 3.3.6 This is a very small release only applying an internal change to comply with diff --git a/R/aes-evaluation.r b/R/aes-evaluation.r index f68dae587c..58fcc320a4 100644 --- a/R/aes-evaluation.r +++ b/R/aes-evaluation.r @@ -115,7 +115,7 @@ is_calculated <- function(x, warn = FALSE) { what <- I(glue("The dot-dot notation (`{x}`)")) var <- gsub(match_calculated_aes, "\\1", as.character(x)) with <- I(glue("`after_stat({var})`")) - lifecycle::deprecate_warn("3.4.0", what, with, id = "ggplot-warn-aes-dot-dot") + deprecate_warn0("3.4.0", what, with, id = "ggplot-warn-aes-dot-dot") } res } else if (is_quosure(x)) { @@ -126,7 +126,7 @@ is_calculated <- function(x, warn = FALSE) { what <- I(glue("`{expr_deparse(x)}`")) x[[1]] <- quote(after_stat) with <- I(glue("`{expr_deparse(x)}`")) - lifecycle::deprecate_warn("3.4.0", what, with, id = "ggplot-warn-aes-stat") + deprecate_warn0("3.4.0", what, with, id = "ggplot-warn-aes-stat") } TRUE } else { diff --git a/R/aes.r b/R/aes.r index 01e4e4d7b0..b6ea417f15 100644 --- a/R/aes.r +++ b/R/aes.r @@ -208,8 +208,8 @@ standardise_aes_symbols <- function(x) { # Look up the scale that should be used for a given aesthetic aes_to_scale <- function(var) { - var[var %in% c("x", "xmin", "xmax", "xend", "xintercept")] <- "x" - var[var %in% c("y", "ymin", "ymax", "yend", "yintercept")] <- "y" + var[var %in% ggplot_global$x_aes] <- "x" + var[var %in% ggplot_global$y_aes] <- "y" var } @@ -265,7 +265,7 @@ is_position_aes <- function(vars) { #' #' @export aes_ <- function(x, y, ...) { - lifecycle::deprecate_soft( + deprecate_soft0( "3.0.0", "aes_()", details = "Please use tidy evaluation ideoms with `aes()`" @@ -292,7 +292,7 @@ aes_ <- function(x, y, ...) { #' @rdname aes_ #' @export aes_string <- function(x, y, ...) { - lifecycle::deprecate_soft( + deprecate_soft0( "3.0.0", "aes_string()", details = "Please use tidy evaluation ideoms with `aes()`" @@ -346,7 +346,7 @@ aes_all <- function(vars) { #' @keywords internal #' @export aes_auto <- function(data = NULL, ...) { - lifecycle::deprecate_warn("2.0.0", "aes_auto()") + deprecate_warn0("2.0.0", "aes_auto()") # detect names of data if (is.null(data)) { diff --git a/R/annotation.r b/R/annotation.r index 468bf1f2d7..251072c2a9 100644 --- a/R/annotation.r +++ b/R/annotation.r @@ -42,7 +42,7 @@ annotate <- function(geom, x = NULL, y = NULL, xmin = NULL, xmax = NULL, ymin = NULL, ymax = NULL, xend = NULL, yend = NULL, ..., na.rm = FALSE) { - if (geom %in% c("abline", "hline", "vline")) { + if (is.character(geom) && geom %in% c("abline", "hline", "vline")) { cli::cli_warn(c( "{.arg geom} must not be {.val {geom}}.", "i" = "Please use {.fn {paste0('geom_', geom)}} directly instead." diff --git a/R/compat-plyr.R b/R/compat-plyr.R index 8ce80921f7..bf3501af5e 100644 --- a/R/compat-plyr.R +++ b/R/compat-plyr.R @@ -159,7 +159,7 @@ count <- function(df, vars = NULL, wt_var = NULL) { # Create a shared unique id across two data frames such that common variable # combinations in the two data frames gets the same id join_keys <- function(x, y, by) { - joint <- vec_rbind(x[by], y[by]) + joint <- vec_rbind0(x[by], y[by]) keys <- id(joint, drop = TRUE) n_x <- nrow(x) n_y <- nrow(y) @@ -298,7 +298,7 @@ dapply <- function(df, by, fun, ..., drop = TRUE) { cur_data <- df_rows(df, group_rows[[i]]) apply_fun(cur_data) }) - vec_rbind(!!!result) + vec_rbind0(!!!result) } single_value <- function(x, ...) { diff --git a/R/coord-.r b/R/coord-.r index 6cd2c5fc0c..8213b3122e 100644 --- a/R/coord-.r +++ b/R/coord-.r @@ -62,7 +62,7 @@ Coord <- ggproto("Coord", labels = function(self, labels, panel_params) { # If panel params contains guides information, use it. # Otherwise use the labels as is, for backward-compatibility - if (is.null(panel_params$guide)) { + if (is.null(panel_params$guides)) { return(labels) } diff --git a/R/coord-transform.r b/R/coord-transform.r index 9cab70b5c7..7cb08e5b30 100644 --- a/R/coord-transform.r +++ b/R/coord-transform.r @@ -78,11 +78,11 @@ coord_trans <- function(x = "identity", y = "identity", xlim = NULL, ylim = NULL, limx = deprecated(), limy = deprecated(), clip = "on", expand = TRUE) { if (lifecycle::is_present(limx)) { - lifecycle::deprecate_warn("3.3.0", "coord_trans(limx)", "coord_trans(xlim)") + deprecate_warn0("3.3.0", "coord_trans(limx)", "coord_trans(xlim)") xlim <- limx } if (lifecycle::is_present(limy)) { - lifecycle::deprecate_warn("3.3.0", "coord_trans(limy)", "coord_trans(ylim)") + deprecate_warn0("3.3.0", "coord_trans(limy)", "coord_trans(ylim)") ylim <- limy } diff --git a/R/facet-.r b/R/facet-.r index 43356ffd64..d965591e7b 100644 --- a/R/facet-.r +++ b/R/facet-.r @@ -317,7 +317,9 @@ validate_facets <- function(x) { if (inherits(x, "uneval")) { cli::cli_abort("Please use {.fn vars} to supply facet variables") } - if (inherits(x, "ggplot")) { + # Native pipe have higher precedence than + so any type of gg object can be + # expected here, not just ggplot + if (inherits(x, "gg")) { cli::cli_abort(c( "Please use {.fn vars} to supply facet variables", "i" = "Did you use {.code %>%} or {.code |>} instead of {.code +}?" @@ -596,7 +598,7 @@ combine_vars <- function(data, env = emptyenv(), vars = NULL, drop = TRUE) { )) } - base <- unique0(vec_rbind(!!!values[has_all])) + base <- unique0(vec_rbind0(!!!values[has_all])) if (!drop) { base <- unique_combs(base) } @@ -610,7 +612,7 @@ combine_vars <- function(data, env = emptyenv(), vars = NULL, drop = TRUE) { if (drop) { new <- unique_combs(new) } - base <- unique0(vec_rbind(base, df.grid(old, new))) + base <- unique0(vec_rbind0(base, df.grid(old, new))) } if (empty(base)) { diff --git a/R/facet-grid-.r b/R/facet-grid-.r index 02f30ef515..95a07f688e 100644 --- a/R/facet-grid-.r +++ b/R/facet-grid-.r @@ -123,13 +123,13 @@ facet_grid <- function(rows = NULL, cols = NULL, scales = "fixed", cols <- NULL } - scales <- arg_match0(scales, c("fixed", "free_x", "free_y", "free")) + scales <- arg_match0(scales %||% "fixed", c("fixed", "free_x", "free_y", "free")) free <- list( x = any(scales %in% c("free_x", "free")), y = any(scales %in% c("free_y", "free")) ) - space <- arg_match0(space, c("fixed", "free_x", "free_y", "free")) + space <- arg_match0(space %||% "fixed", c("fixed", "free_x", "free_y", "free")) space_free <- list( x = any(space %in% c("free_x", "free")), y = any(space %in% c("free_y", "free")) @@ -158,7 +158,9 @@ grid_as_facets_list <- function(rows, cols) { if (!is_rows_vars) { if (!is.null(cols)) { msg <- "{.arg rows} must be {.val NULL} or a {.fn vars} list if {.arg cols} is a {.fn vars} list" - if (inherits(rows, "ggplot")) { + # Native pipe have higher precedence than + so any type of gg object can be + # expected here, not just ggplot + if (inherits(rows, "gg")) { msg <- c( msg, "i" = "Did you use {.code %>%} or {.code |>} instead of {.code +}?" diff --git a/R/facet-wrap.r b/R/facet-wrap.r index 58c65bc55f..bdd67e31c9 100644 --- a/R/facet-wrap.r +++ b/R/facet-wrap.r @@ -81,7 +81,7 @@ facet_wrap <- function(facets, nrow = NULL, ncol = NULL, scales = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = deprecated(), drop = TRUE, dir = "h", strip.position = 'top') { - scales <- arg_match0(scales, c("fixed", "free_x", "free_y", "free")) + scales <- arg_match0(scales %||% "fixed", c("fixed", "free_x", "free_y", "free")) dir <- arg_match0(dir, c("h", "v")) free <- list( x = any(scales %in% c("free_x", "free")), @@ -94,8 +94,8 @@ facet_wrap <- function(facets, nrow = NULL, ncol = NULL, scales = "fixed", # Flatten all facets dimensions into a single one facets <- wrap_as_facets_list(facets) - if (lifecycle::is_present(switch)) { - lifecycle::deprecate_warn("2.2.0", "facet_wrap(switch)", "facet_wrap(strip.position)") + if (lifecycle::is_present(switch) && !is.null(switch)) { + deprecate_warn0("2.2.0", "facet_wrap(switch)", "facet_wrap(strip.position)") strip.position <- if (switch == "x") "bottom" else "left" } strip.position <- arg_match0(strip.position, c("top", "bottom", "left", "right")) diff --git a/R/fortify-spatial.r b/R/fortify-spatial.r index 21ccbf9f28..3e549cc23f 100644 --- a/R/fortify-spatial.r +++ b/R/fortify-spatial.r @@ -26,7 +26,7 @@ fortify.SpatialPolygonsDataFrame <- function(model, data, region = NULL, ...) { # If not specified, split into regions based on polygons if (is.null(region)) { coords <- lapply(model@polygons,fortify) - coords <- vec_rbind(!!!coords) + coords <- vec_rbind0(!!!coords) cli::cli_inform("Regions defined for each Polygons") } else { cp <- sp::polygons(model) @@ -44,7 +44,7 @@ fortify.SpatialPolygonsDataFrame <- function(model, data, region = NULL, ...) { #' @method fortify SpatialPolygons fortify.SpatialPolygons <- function(model, data, ...) { polys <- lapply(model@polygons, fortify) - vec_rbind(!!!polys) + vec_rbind0(!!!polys) } #' @rdname fortify.sp @@ -57,7 +57,7 @@ fortify.Polygons <- function(model, data, ...) { df$piece <- i df }) - pieces <- vec_rbind(!!!pieces) + pieces <- vec_rbind0(!!!pieces) pieces$order <- 1:nrow(pieces) pieces$id <- model@ID @@ -82,7 +82,7 @@ fortify.Polygon <- function(model, data, ...) { #' @method fortify SpatialLinesDataFrame fortify.SpatialLinesDataFrame <- function(model, data, ...) { lines <- lapply(model@lines, fortify) - vec_rbind(!!!lines) + vec_rbind0(!!!lines) } #' @rdname fortify.sp @@ -95,7 +95,7 @@ fortify.Lines <- function(model, data, ...) { df$piece <- i df }) - pieces <- vec_rbind(!!!pieces) + pieces <- vec_rbind0(!!!pieces) pieces$order <- 1:nrow(pieces) pieces$id <- model@ID diff --git a/R/geom-.r b/R/geom-.r index ed12c06349..defac7a55a 100644 --- a/R/geom-.r +++ b/R/geom-.r @@ -107,15 +107,23 @@ Geom <- ggproto("Geom", # Combine data with defaults and set aesthetics from parameters use_defaults = function(self, data, params = list(), modifiers = aes()) { + default_aes <- self$default_aes + # Inherit size as linewidth if no linewidth aesthetic and param exist if (self$rename_size && is.null(data$linewidth) && is.null(params$linewidth)) { data$linewidth <- data$size params$linewidth <- params$size } + # Take care of subclasses setting the wrong default when inheriting from + # a geom with rename_size = TRUE + if (self$rename_size && is.null(default_aes$linewidth)) { + deprecate_soft0("3.4.0", I("Using the `size` aesthetic in this geom"), I("`linewidth` in the `default_aes` field and elsewhere")) + default_aes$linewidth <- default_aes$size + } # Fill in missing aesthetics with their defaults - missing_aes <- setdiff(names(self$default_aes), names(data)) + missing_aes <- setdiff(names(default_aes), names(data)) - missing_eval <- lapply(self$default_aes[missing_aes], eval_tidy) + missing_eval <- lapply(default_aes[missing_aes], eval_tidy) # Needed for geoms with defaults set to NULL (e.g. GeomSf) missing_eval <- compact(missing_eval) @@ -229,3 +237,11 @@ check_aesthetics <- function(x, n) { "x" = "Fix the following mappings: {.col {names(which(!good))}}" )) } + +check_linewidth <- function(data, name) { + if (is.null(data$linewidth) && !is.null(data$size)) { + deprecate_soft0("3.4.0", I(paste0("Using the `size` aesthietic with ", name)), I("the `linewidth` aesthetic")) + data$linewidth <- data$size + } + data +} diff --git a/R/geom-bar.r b/R/geom-bar.r index 5bc667e6a1..ca5a831a49 100644 --- a/R/geom-bar.r +++ b/R/geom-bar.r @@ -148,7 +148,7 @@ GeomBar <- ggproto("GeomBar", GeomRect, data$just <- params$just %||% 0.5 data <- transform(data, ymin = pmin(y, 0), ymax = pmax(y, 0), - xmin = x - width * (1 - just), xmax = x + width * just, + xmin = x - width * just, xmax = x + width * (1 - just), width = NULL, just = NULL ) flip_data(data, params$flipped_aes) diff --git a/R/geom-boxplot.r b/R/geom-boxplot.r index 1ead4e61bd..6b4160dd88 100644 --- a/R/geom-boxplot.r +++ b/R/geom-boxplot.r @@ -212,6 +212,7 @@ GeomBoxplot <- ggproto("GeomBoxplot", Geom, outlier.size = 1.5, outlier.stroke = 0.5, outlier.alpha = NULL, notch = FALSE, notchwidth = 0.5, varwidth = FALSE, flipped_aes = FALSE) { + data <- check_linewidth(data, snake_class(self)) data <- flip_data(data, flipped_aes) # this may occur when using geom_boxplot(stat = "identity") if (nrow(data) != 1) { diff --git a/R/geom-crossbar.r b/R/geom-crossbar.r index 90103d15c4..36c3d4b9ff 100644 --- a/R/geom-crossbar.r +++ b/R/geom-crossbar.r @@ -47,9 +47,10 @@ GeomCrossbar <- ggproto("GeomCrossbar", Geom, draw_key = draw_key_crossbar, - draw_panel = function(data, panel_params, coord, lineend = "butt", + draw_panel = function(self, data, panel_params, coord, lineend = "butt", linejoin = "mitre", fatten = 2.5, width = NULL, flipped_aes = FALSE) { + data <- check_linewidth(data, snake_class(self)) data <- flip_data(data, flipped_aes) middle <- transform(data, x = xmin, xend = xmax, yend = y, linewidth = linewidth * fatten, alpha = NA) diff --git a/R/geom-errorbar.r b/R/geom-errorbar.r index 7fe0d5a54b..28ac6893ef 100644 --- a/R/geom-errorbar.r +++ b/R/geom-errorbar.r @@ -52,7 +52,9 @@ GeomErrorbar <- ggproto("GeomErrorbar", Geom, flip_data(data, params$flipped_aes) }, - draw_panel = function(data, panel_params, coord, lineend = "butt", width = NULL, flipped_aes = FALSE) { + draw_panel = function(self, data, panel_params, coord, lineend = "butt", + width = NULL, flipped_aes = FALSE) { + data <- check_linewidth(data, snake_class(self)) data <- flip_data(data, flipped_aes) x <- vec_interleave(data$xmin, data$xmax, NA, data$x, data$x, NA, data$xmin, data$xmax) y <- vec_interleave(data$ymax, data$ymax, NA, data$ymax, data$ymin, NA, data$ymin, data$ymin) diff --git a/R/geom-errorbarh.r b/R/geom-errorbarh.r index ecda020fa0..d6ccb45b6b 100644 --- a/R/geom-errorbarh.r +++ b/R/geom-errorbarh.r @@ -67,7 +67,8 @@ GeomErrorbarh <- ggproto("GeomErrorbarh", Geom, ) }, - draw_panel = function(data, panel_params, coord, height = NULL, lineend = "butt") { + draw_panel = function(self, data, panel_params, coord, height = NULL, lineend = "butt") { + data <- check_linewidth(data, snake_class(self)) GeomPath$draw_panel(data_frame0( x = vec_interleave(data$xmax, data$xmax, NA, data$xmax, data$xmin, NA, data$xmin, data$xmin), y = vec_interleave(data$ymin, data$ymax, NA, data$y, data$y, NA, data$ymin, data$ymax), diff --git a/R/geom-hex.r b/R/geom-hex.r index 421a3d0116..4a3942fa32 100644 --- a/R/geom-hex.r +++ b/R/geom-hex.r @@ -54,8 +54,9 @@ geom_hex <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomHex <- ggproto("GeomHex", Geom, - draw_group = function(data, panel_params, coord, lineend = "butt", + draw_group = function(self, data, panel_params, coord, lineend = "butt", linejoin = "mitre", linemitre = 10) { + data <- check_linewidth(data, snake_class(self)) if (empty(data)) { return(zeroGrob()) } diff --git a/R/geom-path.r b/R/geom-path.r index 4b55565d10..a782bf5347 100644 --- a/R/geom-path.r +++ b/R/geom-path.r @@ -135,7 +135,7 @@ GeomPath <- ggproto("GeomPath", Geom, handle_na = function(self, data, params) { # Drop missing values at the start or end of a line - can't drop in the # middle since you expect those to be shown by a break in the line - complete <- stats::complete.cases(data[c("x", "y", "linewidth", "colour", "linetype")]) + complete <- stats::complete.cases(data[names(data) %in% c("x", "y", "linewidth", "colour", "linetype")]) kept <- stats::ave(complete, data$group, FUN = keep_mid_true) data <- data[kept, ] @@ -149,6 +149,7 @@ GeomPath <- ggproto("GeomPath", Geom, draw_panel = function(self, data, panel_params, coord, arrow = NULL, lineend = "butt", linejoin = "round", linemitre = 10, na.rm = FALSE) { + data <- check_linewidth(data, snake_class(self)) if (!anyDuplicated(data$group)) { cli::cli_inform(c( "{.fn {snake_class(self)}}: Each group consists of only one observation.", @@ -170,7 +171,7 @@ GeomPath <- ggproto("GeomPath", Geom, linetype <- unique0(df$linetype) data_frame0( solid = identical(linetype, 1) || identical(linetype, "solid"), - constant = nrow(unique0(df[, c("alpha", "colour", "linewidth", "linetype")])) == 1, + constant = nrow(unique0(df[, names(df) %in% c("alpha", "colour", "linewidth", "linetype")])) == 1, .size = 1 ) }) diff --git a/R/geom-polygon.r b/R/geom-polygon.r index bdc17deb4c..0558a64efe 100644 --- a/R/geom-polygon.r +++ b/R/geom-polygon.r @@ -107,8 +107,9 @@ geom_polygon <- function(mapping = NULL, data = NULL, #' @usage NULL #' @export GeomPolygon <- ggproto("GeomPolygon", Geom, - draw_panel = function(data, panel_params, coord, rule = "evenodd", lineend = "butt", - linejoin = "round", linemitre = 10) { + draw_panel = function(self, data, panel_params, coord, rule = "evenodd", + lineend = "butt", linejoin = "round", linemitre = 10) { + data <- check_linewidth(data, snake_class(self)) n <- nrow(data) if (n == 1) return(zeroGrob()) diff --git a/R/geom-rect.r b/R/geom-rect.r index 3263d091d3..00eee5fb48 100644 --- a/R/geom-rect.r +++ b/R/geom-rect.r @@ -34,6 +34,7 @@ GeomRect <- ggproto("GeomRect", Geom, required_aes = c("xmin", "xmax", "ymin", "ymax"), draw_panel = function(self, data, panel_params, coord, lineend = "butt", linejoin = "mitre") { + data <- check_linewidth(data, snake_class(self)) if (!coord$is_linear()) { aesthetics <- setdiff( names(data), c("x", "y", "xmin", "xmax", "ymin", "ymax") diff --git a/R/geom-ribbon.r b/R/geom-ribbon.r index ed6f058452..2491151b34 100644 --- a/R/geom-ribbon.r +++ b/R/geom-ribbon.r @@ -119,15 +119,16 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, data }, - draw_group = function(data, panel_params, coord, lineend = "butt", + draw_group = function(self, data, panel_params, coord, lineend = "butt", linejoin = "round", linemitre = 10, na.rm = FALSE, flipped_aes = FALSE, outline.type = "both") { + data <- check_linewidth(data, snake_class(self)) data <- flip_data(data, flipped_aes) if (na.rm) data <- data[stats::complete.cases(data[c("x", "ymin", "ymax")]), ] data <- data[order(data$group), ] # Check that aesthetics are constant - aes <- unique0(data[c("colour", "fill", "linewidth", "linetype", "alpha")]) + aes <- unique0(data[names(data) %in% c("colour", "fill", "linewidth", "linetype", "alpha")]) if (nrow(aes) > 1) { cli::cli_abort("Aesthetics can not vary along a ribbon") } @@ -168,7 +169,7 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, munched_upper <- coord_munch(coord, positions_upper, panel_params) munched_lower <- coord_munch(coord, positions_lower, panel_params) - munched_poly <- vec_rbind(munched_upper, munched_lower) + munched_poly <- vec_rbind0(munched_upper, munched_lower) is_full_outline <- identical(outline.type, "full") g_poly <- polygonGrob( @@ -193,7 +194,7 @@ GeomRibbon <- ggproto("GeomRibbon", Geom, munched_lower$id <- munched_lower$id + max(ids, na.rm = TRUE) munched_lines <- switch(outline.type, - both = vec_rbind(munched_upper, munched_lower), + both = vec_rbind0(munched_upper, munched_lower), upper = munched_upper, lower = munched_lower, cli::cli_abort(c( diff --git a/R/geom-rug.r b/R/geom-rug.r index eb32b289ca..0076f314a3 100644 --- a/R/geom-rug.r +++ b/R/geom-rug.r @@ -88,8 +88,9 @@ geom_rug <- function(mapping = NULL, data = NULL, GeomRug <- ggproto("GeomRug", Geom, optional_aes = c("x", "y"), - draw_panel = function(data, panel_params, coord, lineend = "butt", sides = "bl", - outside = FALSE, length = unit(0.03, "npc")) { + draw_panel = function(self, data, panel_params, coord, lineend = "butt", + sides = "bl", outside = FALSE, length = unit(0.03, "npc")) { + data <- check_linewidth(data, snake_class(self)) if (!inherits(length, "unit")) { cli::cli_abort("{.arg length} must be a {.cls unit} object.") } diff --git a/R/geom-segment.r b/R/geom-segment.r index d238e5f3c3..a80bf84fa5 100644 --- a/R/geom-segment.r +++ b/R/geom-segment.r @@ -107,6 +107,7 @@ GeomSegment <- ggproto("GeomSegment", Geom, default_aes = aes(colour = "black", linewidth = 0.5, linetype = 1, alpha = NA), draw_panel = function(self, data, panel_params, coord, arrow = NULL, arrow.fill = NULL, lineend = "butt", linejoin = "round", na.rm = FALSE) { + data <- check_linewidth(data, snake_class(self)) data <- remove_missing(data, na.rm = na.rm, c("x", "y", "xend", "yend", "linetype", "linewidth", "shape"), name = "geom_segment" @@ -135,7 +136,7 @@ GeomSegment <- ggproto("GeomSegment", Geom, starts <- subset(data, select = c(-xend, -yend)) ends <- rename(subset(data, select = c(-x, -y)), c("xend" = "x", "yend" = "y")) - pieces <- vec_rbind(starts, ends) + pieces <- vec_rbind0(starts, ends) pieces <- pieces[order(pieces$group),] GeomPath$draw_panel(pieces, panel_params, coord, arrow = arrow, diff --git a/R/geom-sf.R b/R/geom-sf.R index c4235b1ee8..ae903e22ee 100644 --- a/R/geom-sf.R +++ b/R/geom-sf.R @@ -185,7 +185,7 @@ sf_grob <- function(x, lineend = "butt", linejoin = "round", linemitre = 10, defaults <- list( GeomPoint$default_aes, GeomLine$default_aes, - modify_list(GeomPolygon$default_aes, list(fill = "grey90", colour = "grey35")) + modify_list(GeomPolygon$default_aes, list(fill = "grey90", colour = "grey35", linewidth = 0.2)) ) defaults[[4]] <- modify_list( defaults[[3]], diff --git a/R/geom-spoke.r b/R/geom-spoke.r index 80b3b96810..032267b765 100644 --- a/R/geom-spoke.r +++ b/R/geom-spoke.r @@ -47,7 +47,7 @@ geom_spoke <- function(mapping = NULL, data = NULL, #' @rdname geom_spoke #' @usage NULL stat_spoke <- function(...) { - lifecycle::deprecate_warn("2.0.0", "stat_spoke()", "geom_spoke()") + deprecate_warn0("2.0.0", "stat_spoke()", "geom_spoke()") geom_spoke(...) } diff --git a/R/geom-violin.r b/R/geom-violin.r index 9c4cea54d4..c9d285f961 100644 --- a/R/geom-violin.r +++ b/R/geom-violin.r @@ -144,14 +144,14 @@ GeomViolin <- ggproto("GeomViolin", Geom, ) # Make sure it's sorted properly to draw the outline - newdata <- vec_rbind( + newdata <- vec_rbind0( transform(data, x = xminv)[order(data$y), ], transform(data, x = xmaxv)[order(data$y, decreasing = TRUE), ] ) # Close the polygon: set first and last point the same # Needed for coord_polar and such - newdata <- vec_rbind(newdata, newdata[1,]) + newdata <- vec_rbind0(newdata, newdata[1,]) newdata <- flip_data(newdata, flipped_aes) # Draw quantiles if requested, so long as there is non-zero y range diff --git a/R/guides-.r b/R/guides-.r index 6db4d8655c..739944e0cc 100644 --- a/R/guides-.r +++ b/R/guides-.r @@ -72,7 +72,7 @@ guides <- function(...) { idx_false <- vapply(args, isFALSE, FUN.VALUE = logical(1L)) if (isTRUE(any(idx_false))) { - lifecycle::deprecate_warn("3.3.4", "guides(`` = 'cannot be `FALSE`. Use \"none\" instead')") + deprecate_warn0("3.3.4", "guides(`` = 'cannot be `FALSE`. Use \"none\" instead')") args[idx_false] <- "none" } @@ -200,14 +200,7 @@ guides_train <- function(scales, theme, guides, labels) { if (identical(guide, "none") || inherits(guide, "guide_none")) next if (isFALSE(guide)) { - # lifecycle currently doesn't support function name placeholders. - # the below gives us the correct behaviour but is too brittle and hacky - # lifecycle::deprecate_warn("3.3.4", "`scale_*()`(guide = 'cannot be `FALSE`. Use \"none\" instead')") - # TODO: update to lifecycle after next lifecycle release - cli::cli_warn(c( - "{.code guide = FALSE} is deprecated", - "i" = 'Please use {.code guide = "none"} instead.' - )) + deprecate_warn0("3.3.4", I("The `guide` argument in `scale_*()` cannot be `FALSE`. This "), I('"none"')) next } diff --git a/R/labeller.r b/R/labeller.r index 55bd3de2d6..727961d19f 100644 --- a/R/labeller.r +++ b/R/labeller.r @@ -420,7 +420,7 @@ labeller <- function(..., .rows = NULL, .cols = NULL, keep.as.numeric = deprecated(), .multi_line = TRUE, .default = label_value) { if (lifecycle::is_present(keep.as.numeric)) { - lifecycle::deprecate_warn("2.0.0", "labeller(keep.as.numeric)") + deprecate_warn0("2.0.0", "labeller(keep.as.numeric)") } dots <- list2(...) .default <- as_labeller(.default) diff --git a/R/layer.r b/R/layer.r index c14fb32cb0..89ccb58028 100644 --- a/R/layer.r +++ b/R/layer.r @@ -75,6 +75,7 @@ layer <- function(geom = NULL, stat = NULL, inherit.aes = TRUE, check.aes = TRUE, check.param = TRUE, show.legend = NA, key_glyph = NULL, layer_class = Layer) { call_env <- caller_env() + user_env <- caller_env(2) if (is.null(geom)) cli::cli_abort("Can't create layer without a geom.", call = call_env) if (is.null(stat)) @@ -84,7 +85,7 @@ layer <- function(geom = NULL, stat = NULL, # Handle show_guide/show.legend if (!is.null(params$show_guide)) { - lifecycle::deprecate_warn("2.0.0", "layer(show_guide)", "layer(show.legend)") + deprecate_warn0("2.0.0", "layer(show_guide)", "layer(show.legend)", user_env = user_env) show.legend <- params$show_guide params$show_guide <- NULL } @@ -129,7 +130,7 @@ layer <- function(geom = NULL, stat = NULL, if (geom$rename_size && "size" %in% extra_param && !"linewidth" %in% mapped_aesthetics(mapping)) { aes_params <- c(aes_params, params["size"]) extra_param <- setdiff(extra_param, "size") - lifecycle::deprecate_warn("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`")) + deprecate_soft0("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`"), user_env = user_env) } if (check.param && length(extra_param) > 0) { cli::cli_warn("Ignoring unknown parameters: {.arg {extra_param}}", call = call_env) @@ -142,7 +143,7 @@ layer <- function(geom = NULL, stat = NULL, # Take care of size->linewidth aes renaming if (geom$rename_size && "size" %in% extra_aes && !"linewidth" %in% mapped_aesthetics(mapping)) { extra_aes <- setdiff(extra_aes, "size") - lifecycle::deprecate_warn("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`")) + deprecate_soft0("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`"), user_env = user_env) } if (check.aes && length(extra_aes) > 0) { cli::cli_warn("Ignoring unknown aesthetics: {.field {extra_aes}}", call = call_env) @@ -171,7 +172,9 @@ layer <- function(geom = NULL, stat = NULL, validate_mapping <- function(mapping, call = caller_env()) { if (!inherits(mapping, "uneval")) { msg <- paste0("{.arg mapping} must be created by {.fn aes}") - if (inherits(mapping, "ggplot")) { + # Native pipe have higher precedence than + so any type of gg object can be + # expected here, not just ggplot + if (inherits(mapping, "gg")) { msg <- c(msg, "i" = "Did you use {.code %>%} or {.code |>} instead of {.code +}?") } @@ -239,7 +242,7 @@ Layer <- ggproto("Layer", NULL, !"linewidth" %in% names(self$computed_mapping) && "linewidth" %in% self$geom$aesthetics()) { self$computed_mapping$size <- plot$mapping$size - lifecycle::deprecate_warn("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`")) + deprecate_soft0("3.4.0", I("Using `size` aesthetic for lines"), I("`linewidth`")) } # defaults() strips class, but it needs to be preserved for now class(self$computed_mapping) <- "uneval" diff --git a/R/layout.R b/R/layout.R index 3808e9f5ce..78fa9c19cd 100644 --- a/R/layout.R +++ b/R/layout.R @@ -302,6 +302,8 @@ scale_apply <- function(data, vars, method, scale_id, scales) { pieces <- lapply(seq_along(scales), function(i) { scales[[i]][[method]](data[[var]][scale_index[[i]]]) }) + # Remove empty vectors to avoid coercion issues with vctrs + pieces[lengths(pieces) == 0] <- NULL o <- order(unlist(scale_index))[seq_len(sum(lengths(pieces)))] vec_c(!!!pieces)[o] }) diff --git a/R/legend-draw.r b/R/legend-draw.r index 13ddfd7ce5..cd5abf1fbb 100644 --- a/R/legend-draw.r +++ b/R/legend-draw.r @@ -198,7 +198,7 @@ draw_key_linerange <- function(data, params, size) { draw_key_pointrange <- function(data, params, size) { grobTree( draw_key_linerange(data, params, size), - draw_key_point(transform(data, params, size = (data$size %||% 1.5) * 4)) + draw_key_point(transform(data, size = (data$size %||% 1.5) * 4), params) ) } diff --git a/R/plot-build.r b/R/plot-build.r index 99c38a57fa..b6102eed6e 100644 --- a/R/plot-build.r +++ b/R/plot-build.r @@ -21,6 +21,9 @@ #' @keywords internal #' @export ggplot_build <- function(plot) { + # Attaching the plot env to be fetched by deprecations etc. + attach_plot_env(plot$plot_env) + UseMethod('ggplot_build') } @@ -150,6 +153,9 @@ layer_grob <- function(plot, i = 1L) { #' @param data plot data generated by [ggplot_build()] #' @export ggplot_gtable <- function(data) { + # Attaching the plot env to be fetched by deprecations etc. + attach_plot_env(data$plot$plot_env) + UseMethod('ggplot_gtable') } diff --git a/R/position-stack.r b/R/position-stack.r index 5d0dae7015..64fbb91544 100644 --- a/R/position-stack.r +++ b/R/position-stack.r @@ -210,7 +210,7 @@ PositionStack <- ggproto("PositionStack", Position, ) } - data <- vec_rbind(neg, pos)[match(seq_len(nrow(data)), c(which(negative), which(!negative))),] + data <- vec_rbind0(neg, pos)[match(seq_len(nrow(data)), c(which(negative), which(!negative))),] flip_data(data, params$flipped_aes) } ) diff --git a/R/quick-plot.r b/R/quick-plot.r index 60be9e9a3c..bce0be5e54 100644 --- a/R/quick-plot.r +++ b/R/quick-plot.r @@ -62,12 +62,12 @@ qplot <- function(x, y, ..., data, facets = NULL, margins = FALSE, xlab = NULL, ylab = NULL, asp = NA, stat = deprecated(), position = deprecated()) { - lifecycle::deprecate_warn("3.4.0", "qplot()") + deprecate_soft0("3.4.0", "qplot()") caller_env <- parent.frame() - if (lifecycle::is_present(stat)) lifecycle::deprecate_stop("3.4.0", "qplot(stat)") - if (lifecycle::is_present(position)) lifecycle::deprecate_stop("3.4.0", "qplot(position)") + if (lifecycle::is_present(stat)) lifecycle::deprecate_stop("2.0.0", "qplot(stat)") + if (lifecycle::is_present(position)) lifecycle::deprecate_stop("2.0.0", "qplot(position)") if (!is.character(geom)) { cli::cli_abort("{.arg geom} must be a character vector") } diff --git a/R/reshape-add-margins.R b/R/reshape-add-margins.R index c7b17ea025..4603268214 100644 --- a/R/reshape-add-margins.R +++ b/R/reshape-add-margins.R @@ -22,7 +22,7 @@ reshape_add_margins <- function(df, vars, margins = TRUE) { df }) - vec_rbind(!!!margin_dfs) + vec_rbind0(!!!margin_dfs) } reshape_margins <- function(vars, margins = NULL) { diff --git a/R/scale-.r b/R/scale-.r index f8f20f9842..b0065ffd52 100644 --- a/R/scale-.r +++ b/R/scale-.r @@ -560,6 +560,17 @@ check_breaks_labels <- function(breaks, labels) { TRUE } +default_transform <- function(self, x) { + new_x <- self$trans$transform(x) + axis <- if ("x" %in% self$aesthetics) "x" else "y" + check_transformation(x, new_x, self$scale_name, axis) + new_x +} + +has_default_transform <- function(scale) { + transform_method <- environment(scale$transform)$f + identical(default_transform, transform_method) || identical(identity, transform_method) +} #' @rdname ggplot2-ggproto #' @format NULL @@ -589,12 +600,7 @@ ScaleContinuous <- ggproto("ScaleContinuous", Scale, !has_data && !has_limits }, - transform = function(self, x) { - new_x <- self$trans$transform(x) - axis <- if ("x" %in% self$aesthetics) "x" else "y" - check_transformation(x, new_x, self$scale_name, axis) - new_x - }, + transform = default_transform, map = function(self, x, limits = self$get_limits()) { x <- self$rescale(self$oob(x, range = limits), limits) @@ -637,7 +643,11 @@ ScaleContinuous <- ggproto("ScaleContinuous", Scale, # Ensure limits don't exceed domain (#980) domain <- suppressWarnings(self$trans$transform(self$trans$domain)) - limits <- oob_squish(limits, sort(domain)) + domain <- sort(domain) + # To avoid NaN causing issues. NaN are dropped by the sort() + if (length(domain) == 2) { + limits <- oob_squish(limits, domain) + } # Limits in transformed space need to be converted back to data space limits <- self$trans$inverse(limits) @@ -819,9 +829,7 @@ ScaleDiscrete <- ggproto("ScaleDiscrete", Scale, self$range$train(x, drop = self$drop, na.rm = !self$na.translate) }, - transform = function(x) { - x - }, + transform = identity, map = function(self, x, limits = self$get_limits()) { n <- sum(!is.na(limits)) @@ -1001,12 +1009,7 @@ ScaleBinned <- ggproto("ScaleBinned", Scale, self$range$train(x) }, - transform = function(self, x) { - new_x <- self$trans$transform(x) - axis <- if ("x" %in% self$aesthetics) "x" else "y" - check_transformation(x, new_x, self$scale_name, axis) - new_x - }, + transform = default_transform, map = function(self, x, limits = self$get_limits()) { if (self$after.stat) { diff --git a/R/scale-discrete-.r b/R/scale-discrete-.r index 11ec374937..9538466697 100644 --- a/R/scale-discrete-.r +++ b/R/scale-discrete-.r @@ -141,96 +141,73 @@ ScaleDiscretePosition <- ggproto("ScaleDiscretePosition", ScaleDiscrete, } ) +# Can't use vctrs - vctrs is too restrictive for mapped_discrete new_mapped_discrete <- function(x = double()) { - vec_assert(x, double()) - obj <- new_vctr(x, class = "ggplot2_mapped_discrete") - # vctrs does not support inheriting from numeric base class - class(obj) <- c(class(obj), "numeric") - obj + # Check the storage mode is double but don't error on additional attributes + vec_assert(as.vector(x), double()) + class(x) <- c("mapped_discrete", "numeric") + x } mapped_discrete <- function(x = double()) { if (is.null(x)) return(NULL) - if (is.array(x)) x <- as.vector(x) new_mapped_discrete(vec_cast(x, double())) } -is_mapped_discrete <- function(x) inherits(x, "ggplot2_mapped_discrete") +is_mapped_discrete <- function(x) inherits(x, "mapped_discrete") #' @export -format.ggplot2_mapped_discrete <- function(x, ...) format(vec_data(x), ...) +c.mapped_discrete <- function(..., recursive = FALSE) { + mapped_discrete(unlist(lapply(list(...), unclass))) +} #' @export -vec_ptype2.ggplot2_mapped_discrete.ggplot2_mapped_discrete <- function(x, y, ...) new_mapped_discrete() +`[.mapped_discrete` <- function(x, ..., drop = TRUE) { + mapped_discrete(NextMethod()) +} #' @export -vec_ptype2.ggplot2_mapped_discrete.double <- function(x, y, ...) new_mapped_discrete() +`[<-.mapped_discrete` <- function(x, ..., value) { + if (length(value) == 0) { + return(x) + } + value <- as.numeric(unclass(value)) + mapped_discrete(NextMethod()) +} #' @export -vec_ptype2.double.ggplot2_mapped_discrete <- function(x, y, ...) new_mapped_discrete() +as.data.frame.mapped_discrete <- function (x, ...) { + as.data.frame.vector(x = unclass(x), ...) +} + #' @export -vec_ptype2.ggplot2_mapped_discrete.integer <- function(x, y, ...) new_mapped_discrete() +vec_ptype2.mapped_discrete.mapped_discrete <- function(x, y, ...) new_mapped_discrete() #' @export -vec_ptype2.integer.ggplot2_mapped_discrete <- function(x, y, ...) new_mapped_discrete() +vec_ptype2.mapped_discrete.double <- function(x, y, ...) new_mapped_discrete() #' @export -vec_ptype2.ggplot2_mapped_discrete.character <- function(x, y, ...) character() +vec_ptype2.double.mapped_discrete <- function(x, y, ...) new_mapped_discrete() #' @export -vec_ptype2.character.ggplot2_mapped_discrete <- function(x, y, ...) character() +vec_ptype2.mapped_discrete.integer <- function(x, y, ...) new_mapped_discrete() #' @export -vec_ptype2.ggplot2_mapped_discrete.factor <- function(x, y, ...) new_mapped_discrete() +vec_ptype2.integer.mapped_discrete <- function(x, y, ...) new_mapped_discrete() #' @export -vec_ptype2.factor.ggplot2_mapped_discrete <- function(x, y, ...) new_mapped_discrete() +vec_ptype2.mapped_discrete.character <- function(x, y, ...) character() #' @export -vec_cast.ggplot2_mapped_discrete.ggplot2_mapped_discrete <- function(x, to, ...) x +vec_ptype2.character.mapped_discrete <- function(x, y, ...) character() #' @export -vec_cast.ggplot2_mapped_discrete.integer <- function(x, to, ...) mapped_discrete(x) +vec_ptype2.mapped_discrete.factor <- function(x, y, ...) new_mapped_discrete() #' @export -vec_cast.integer.ggplot2_mapped_discrete <- function(x, to, ...) as.integer(vec_data(x)) +vec_ptype2.factor.mapped_discrete <- function(x, y, ...) new_mapped_discrete() #' @export -vec_cast.ggplot2_mapped_discrete.double <- function(x, to, ...) new_mapped_discrete(x) +vec_cast.mapped_discrete.mapped_discrete <- function(x, to, ...) x #' @export -vec_cast.double.ggplot2_mapped_discrete <- function(x, to, ...) vec_data(x) +vec_cast.mapped_discrete.integer <- function(x, to, ...) mapped_discrete(x) #' @export -vec_cast.character.ggplot2_mapped_discrete <- function(x, to, ...) as.character(vec_data(x)) +vec_cast.integer.mapped_discrete <- function(x, to, ...) as.integer(as.vector(x)) #' @export -vec_cast.ggplot2_mapped_discrete.factor <- function(x, to, ...) mapped_discrete(unclass(x)) +vec_cast.mapped_discrete.double <- function(x, to, ...) new_mapped_discrete(x) #' @export -vec_cast.factor.ggplot2_mapped_discrete <- function(x, to, ...) factor(vec_data(x), ...) -#' Utilities for working with discrete values mapped to numeric domain -#' -#' @param op The operator to apply -#' @param x,y items to apply the operator to -#' @param ... passed on -#' @export vec_arith.ggplot2_mapped_discrete -#' @method vec_arith ggplot2_mapped_discrete -#' -#' @keywords internal +vec_cast.double.mapped_discrete <- function(x, to, ...) as.vector(x) #' @export -vec_arith.ggplot2_mapped_discrete <- function(op, x, y, ...) { - UseMethod("vec_arith.ggplot2_mapped_discrete", y) -} +vec_cast.character.mapped_discrete <- function(x, to, ...) as.character(as.vector(x)) #' @export -#' @method vec_arith.ggplot2_mapped_discrete default -vec_arith.ggplot2_mapped_discrete.default <- function(op, x, y, ...) { - stop_incompatible_op(op, x, y) -} +vec_cast.mapped_discrete.factor <- function(x, to, ...) mapped_discrete(as.vector(unclass(x))) #' @export -#' @method vec_arith.ggplot2_mapped_discrete ggplot2_mapped_discrete -vec_arith.ggplot2_mapped_discrete.ggplot2_mapped_discrete <- function(op, x, y, ...) { - mapped_discrete(vec_arith_base(op, x, y)) -} -#' @export -#' @method vec_arith.ggplot2_mapped_discrete numeric -vec_arith.ggplot2_mapped_discrete.numeric <- function(op, x, y, ...) { - mapped_discrete(vec_arith_base(op, x, y)) -} -#' @export -#' @method vec_arith.numeric ggplot2_mapped_discrete -vec_arith.numeric.ggplot2_mapped_discrete <- function(op, x, y, ...) { - mapped_discrete(vec_arith_base(op, x, y)) -} +vec_cast.factor.mapped_discrete <- function(x, to, ...) factor(as.vector(x), ...) #' @export -#' @method vec_arith.ggplot2_mapped_discrete MISSING -vec_arith.ggplot2_mapped_discrete.MISSING <- function(op, x, y, ...) { - op_fn <- getExportedValue("base", op) - mapped_discrete(op_fn(vec_data(x))) -} -#' @export -vec_math.ggplot2_mapped_discrete <- function(.fn, .x, ...) { - res <- vec_math_base(.fn, .x, ...) - if (is.numeric(res)) mapped_discrete(res) else res -} +vec_cast.mapped_discrete.logical <- function(x, to, ...) mapped_discrete(x) + diff --git a/R/scale-expansion.r b/R/scale-expansion.r index dae2fee8a1..dd31ac3275 100644 --- a/R/scale-expansion.r +++ b/R/scale-expansion.r @@ -48,7 +48,7 @@ expansion <- function(mult = 0, add = 0) { #' @rdname expansion #' @export expand_scale <- function(mult = 0, add = 0) { - lifecycle::deprecate_warn("3.3.0", "expand_scale()", "expansion()") + deprecate_warn0("3.3.0", "expand_scale()", "expansion()") expansion(mult, add) } diff --git a/R/scale-manual.r b/R/scale-manual.r index 5b1378284a..96cbaf8c47 100644 --- a/R/scale-manual.r +++ b/R/scale-manual.r @@ -134,7 +134,7 @@ manual_scale <- function(aesthetic, values = NULL, breaks = waiver(), ..., limit if (is.null(limits) && !is.null(names(values))) { # Limits as function to access `values` names later on (#4619) - limits <- function(x) intersect(x, names(values)) + limits <- function(x) intersect(x, names(values)) %||% character() } # order values according to breaks diff --git a/R/scales-.r b/R/scales-.r index 1537ff0f65..cb1e784670 100644 --- a/R/scales-.r +++ b/R/scales-.r @@ -85,8 +85,8 @@ scales_transform_df <- function(scales, df) { # if the scale contains no trans or the trans is of identity, it doesn't need # to be transformed. idx_skip <- vapply(scales$scales, function(x) { - is.null(x$trans) || - identical(x$trans$transform, identity) + has_default_transform(x) && + (is.null(x$trans) || identical(x$trans$transform, identity)) }, logical(1L)) scale_list <- scales$scales[!idx_skip] diff --git a/R/stat-.r b/R/stat-.r index 449d3eb822..43e567c601 100644 --- a/R/stat-.r +++ b/R/stat-.r @@ -173,7 +173,7 @@ Stat <- ggproto("Stat", } # Finally, combine the results and drop columns that are not constant. - data_new <- vec_rbind(!!!stats) + data_new <- vec_rbind0(!!!stats) data_new[, !names(data_new) %in% non_constant_columns, drop = FALSE] }, diff --git a/R/stat-bin.r b/R/stat-bin.r index f41c29ae27..892fa79bac 100644 --- a/R/stat-bin.r +++ b/R/stat-bin.r @@ -111,21 +111,21 @@ StatBin <- ggproto("StatBin", Stat, } if (!is.null(params$drop)) { - lifecycle::deprecate_warn("2.1.0", "stat_bin(drop)", "stat_bin(pad)") + deprecate_warn0("2.1.0", "stat_bin(drop)", "stat_bin(pad)") params$drop <- NULL } if (!is.null(params$origin)) { - lifecycle::deprecate_warn("2.1.0", "stat_bin(origin)", "stat_bin(boundary)") + deprecate_warn0("2.1.0", "stat_bin(origin)", "stat_bin(boundary)") params$boundary <- params$origin params$origin <- NULL } if (!is.null(params$right)) { - lifecycle::deprecate_warn("2.1.0", "stat_bin(right)", "stat_bin(closed)") + deprecate_warn0("2.1.0", "stat_bin(right)", "stat_bin(closed)") params$closed <- if (params$right) "right" else "left" params$right <- NULL } if (!is.null(params$width)) { - lifecycle::deprecate_warn("2.1.0", "stat_bin(width)", "geom_bar()") + deprecate_warn0("2.1.0", "stat_bin(width)", "geom_bar()") } if (!is.null(params$boundary) && !is.null(params$center)) { cli::cli_abort("Only one of {.arg boundary} and {.arg center} may be specified in {.fn {snake_class(self)}}.") diff --git a/R/stat-boxplot.r b/R/stat-boxplot.r index ceb3373c61..e4eb6bd4f8 100644 --- a/R/stat-boxplot.r +++ b/R/stat-boxplot.r @@ -76,7 +76,7 @@ StatBoxplot <- ggproto("StatBoxplot", Stat, params$width <- params$width %||% (resolution(data$x %||% 0) * 0.75) - if (is.double(data$x) && !has_groups(data) && any(data$x != data$x[1L])) { + if (!is_mapped_discrete(data$x) && is.double(data$x) && !has_groups(data) && any(data$x != data$x[1L])) { cli::cli_warn(c( "Continuous {.field {flipped_names(params$flipped_aes)$x}} aesthetic", "i" = "did you forget {.code aes(group = ...)}?" diff --git a/R/stat-count.r b/R/stat-count.r index 9a4aa47680..34fc45727f 100644 --- a/R/stat-count.r +++ b/R/stat-count.r @@ -88,5 +88,7 @@ StatCount <- ggproto("StatCount", Stat, .size = length(count) ) flip_data(bars, flipped_aes) - } + }, + + dropped_aes = "weight" ) diff --git a/R/stat-qq-line.R b/R/stat-qq-line.R index e1a95ebe69..974d708cbb 100644 --- a/R/stat-qq-line.R +++ b/R/stat-qq-line.R @@ -48,6 +48,8 @@ StatQqLine <- ggproto("StatQqLine", Stat, required_aes = c("sample"), + dropped_aes = c("sample"), + compute_group = function(data, scales, quantiles = NULL, diff --git a/R/stat-quantile.r b/R/stat-quantile.r index ffecc6ead8..45b7259779 100644 --- a/R/stat-quantile.r +++ b/R/stat-quantile.r @@ -96,7 +96,7 @@ StatQuantile <- ggproto("StatQuantile", Stat, grid = grid, method.args = method.args ) - vec_rbind(!!!result) + vec_rbind0(!!!result) } ) diff --git a/R/stat-summary-bin.R b/R/stat-summary-bin.R index cc6002b84e..2fc926279f 100644 --- a/R/stat-summary-bin.R +++ b/R/stat-summary-bin.R @@ -20,15 +20,15 @@ stat_summary_bin <- function(mapping = NULL, data = NULL, fun.ymin = deprecated(), fun.ymax = deprecated()) { if (lifecycle::is_present(fun.y)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary_bin(fun.y)", "stat_summary_bin(fun)") + deprecate_warn0("3.3.0", "stat_summary_bin(fun.y)", "stat_summary_bin(fun)") fun = fun %||% fun.y } if (lifecycle::is_present(fun.ymin)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary_bin(fun.ymin)", "stat_summary_bin(fun.min)") + deprecate_warn0("3.3.0", "stat_summary_bin(fun.ymin)", "stat_summary_bin(fun.min)") fun.min = fun.min %||% fun.ymin } if (lifecycle::is_present(fun.ymax)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary_bin(fun.ymax)", "stat_summary_bin(fun.max)") + deprecate_warn0("3.3.0", "stat_summary_bin(fun.ymax)", "stat_summary_bin(fun.max)") fun.max = fun.max %||% fun.ymax } layer( diff --git a/R/stat-summary.r b/R/stat-summary.r index 6a1a900c6c..ddcb7b5ae3 100644 --- a/R/stat-summary.r +++ b/R/stat-summary.r @@ -142,15 +142,15 @@ stat_summary <- function(mapping = NULL, data = NULL, fun.ymin = deprecated(), fun.ymax = deprecated()) { if (lifecycle::is_present(fun.y)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary(fun.y)", "stat_summary(fun)") + deprecate_warn0("3.3.0", "stat_summary(fun.y)", "stat_summary(fun)") fun = fun %||% fun.y } if (lifecycle::is_present(fun.ymin)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary(fun.ymin)", "stat_summary(fun.min)") + deprecate_warn0("3.3.0", "stat_summary(fun.ymin)", "stat_summary(fun.min)") fun.min = fun.min %||% fun.ymin } if (lifecycle::is_present(fun.ymax)) { - lifecycle::deprecate_warn("3.3.0", "stat_summary(fun.ymax)", "stat_summary(fun.max)") + deprecate_warn0("3.3.0", "stat_summary(fun.ymax)", "stat_summary(fun.max)") fun.max = fun.max %||% fun.ymax } layer( diff --git a/R/theme-elements.r b/R/theme-elements.r index ea32b7923b..74e1d3c9e4 100644 --- a/R/theme-elements.r +++ b/R/theme-elements.r @@ -66,7 +66,7 @@ element_rect <- function(fill = NULL, colour = NULL, linewidth = NULL, linetype = NULL, color = NULL, inherit.blank = FALSE, size = deprecated()) { if (lifecycle::is_present(size)) { - lifecycle::deprecate_warn("3.4.0", "element_rect(size)", "element_rect(linewidth)") + deprecate_soft0("3.4.0", "element_rect(size)", "element_rect(linewidth)") linewidth <- size } @@ -90,7 +90,7 @@ element_line <- function(colour = NULL, linewidth = NULL, linetype = NULL, lineend = NULL, color = NULL, arrow = NULL, inherit.blank = FALSE, size = deprecated()) { if (lifecycle::is_present(size)) { - lifecycle::deprecate_warn("3.4.0", "element_line(size)", "element_line(linewidth)") + deprecate_soft0("3.4.0", "element_line(size)", "element_line(linewidth)") linewidth <- size } @@ -215,7 +215,7 @@ element_grob.element_rect <- function(element, x = 0.5, y = 0.5, fill = NULL, colour = NULL, linewidth = NULL, linetype = NULL, ..., size = deprecated()) { if (lifecycle::is_present(size)) { - lifecycle::deprecate_warn("3.4.0", "element_grob.element_rect(size)", "element_grob.element_rect(linewidth)") + deprecate_soft0("3.4.0", "element_grob.element_rect(size)", "element_grob.element_rect(linewidth)") linewidth <- size } @@ -264,7 +264,7 @@ element_grob.element_line <- function(element, x = 0:1, y = 0:1, default.units = "npc", id.lengths = NULL, ..., size = deprecated()) { if (lifecycle::is_present(size)) { - lifecycle::deprecate_warn("3.4.0", "element_grob.element_line(size)", "element_grob.element_line(linewidth)") + deprecate_soft0("3.4.0", "element_grob.element_line(size)", "element_grob.element_line(linewidth)") linewidth <- size } diff --git a/R/theme.r b/R/theme.r index c53eb6971e..ee8f9ea70f 100644 --- a/R/theme.r +++ b/R/theme.r @@ -368,28 +368,28 @@ theme <- function(line, elements <- find_args(..., complete = NULL, validate = NULL) if (!is.null(elements$axis.ticks.margin)) { - lifecycle::deprecate_warn( + deprecate_warn0( "2.0.0", "theme(axis.ticks.margin)", details = "Please set `margin` property of `axis.text` instead" ) elements$axis.ticks.margin <- NULL } if (!is.null(elements$panel.margin)) { - lifecycle::deprecate_warn( + deprecate_warn0( "2.2.0", "theme(panel.margin)", "theme(panel.spacing)" ) elements$panel.spacing <- elements$panel.margin elements$panel.margin <- NULL } if (!is.null(elements$panel.margin.x)) { - lifecycle::deprecate_warn( + deprecate_warn0( "2.2.0", "theme(panel.margin.x)", "theme(panel.spacing.x)" ) elements$panel.spacing.x <- elements$panel.margin.x elements$panel.margin.x <- NULL } if (!is.null(elements$panel.margin.y)) { - lifecycle::deprecate_warn( + deprecate_warn0( "2.2.0", "theme(panel.margin.y)", "theme(panel.spacing.y)" ) elements$panel.spacing.y <- elements$panel.margin.y diff --git a/R/utilities.r b/R/utilities.r index 318e7124ad..7d7fa21acc 100644 --- a/R/utilities.r +++ b/R/utilities.r @@ -196,7 +196,7 @@ binned_pal <- function(palette) { #' @keywords internal #' @export gg_dep <- function(version, msg) { - lifecycle::deprecate_warn("3.3.0", "gg_dep()") + deprecate_warn0("3.3.0", "gg_dep()") .Deprecated() v <- as.package_version(version) cv <- utils::packageVersion("ggplot2") @@ -613,3 +613,112 @@ is_triple_bang <- function(x) { TRUE } + +# Restart handler for using vec_rbind with mix of types +# Ordered is coerced to factor +# If a character vector is present the other is converted to character +with_ordered_restart <- function(expr, .call) { + withCallingHandlers( + expr, + vctrs_error_incompatible_type = function(cnd) { + x <- cnd[["x"]] + y <- cnd[["y"]] + + class_x <- class(x)[1] + class_y <- class(y)[1] + + restart <- FALSE + + if (is.ordered(x) || is.ordered(y)) { + restart <- TRUE + if (is.ordered(x)) { + x <- factor(as.character(x), levels = levels(x)) + } else { + y <- factor(as.character(y), levels = levels(y)) + } + } else if (is.character(x) || is.character(y)) { + restart <- TRUE + if (is.character(x)) { + y <- as.character(y) + } else { + x <- as.character(x) + } + } else if (is.factor(x) || is.factor(y)) { + restart <- TRUE + lev <- c() + if (is.factor(x)) { + lev <- c(lev, levels(x)) + } + if (is.factor(y)) { + lev <- c(lev, levels(y)) + } + x <- factor(as.character(x), levels = unique(lev)) + y <- factor(as.character(y), levels = unique(lev)) + } + + # Don't recurse and let ptype2 error keep its course + if (!restart) { + return(zap()) + } + + msg <- paste0("Combining variables of class <", class_x, "> and <", class_y, ">") + desc <- paste0( + "Please ensure your variables are compatible before plotting (location: ", + format_error_call(.call), + ")" + ) + + deprecate_soft0( + "3.4.0", + I(msg), + details = desc + ) + + x_arg <- cnd[["x_arg"]] + y_arg <- cnd[["y_arg"]] + call <- cnd[["call"]] + + # Recurse with factor methods and restart with the result + if (inherits(cnd, "vctrs_error_ptype2")) { + out <- vec_ptype2(x, y, x_arg = x_arg, y_arg = y_arg, call = call) + restart <- "vctrs_restart_ptype2" + } else if (inherits(cnd, "vctrs_error_cast")) { + out <- vec_cast(x, y, x_arg = x_arg, to_arg = y_arg, call = call) + restart <- "vctrs_restart_cast" + } else { + return(zap()) + } + + # Old-R compat for `tryInvokeRestart()` + try_restart <- function(restart, ...) { + if (!is_null(findRestart(restart))) { + invokeRestart(restart, ...) + } + } + try_restart(restart, out) + } + ) +} + +vec_rbind0 <- function(..., .error_call = current_env(), .call = caller_env()) { + with_ordered_restart( + vec_rbind(..., .error_call = .error_call), + .call + ) +} + +attach_plot_env <- function(env) { + old_env <- getOption("ggplot2_plot_env") + options(ggplot2_plot_env = env) + withr::defer_parent(options(ggplot2_plot_env = old_env)) +} + +deprecate_soft0 <- function(..., user_env = NULL) { + user_env <- user_env %||% getOption("ggplot2_plot_env") %||% caller_env(2) + lifecycle::deprecate_soft(..., user_env = user_env) +} + +deprecate_warn0 <- function(..., user_env = NULL) { + user_env <- user_env %||% getOption("ggplot2_plot_env") %||% caller_env(2) + lifecycle::deprecate_warn(..., user_env = user_env) +} diff --git a/R/zzz.r b/R/zzz.r index 59799efe91..0dcfd407cf 100644 --- a/R/zzz.r +++ b/R/zzz.r @@ -22,7 +22,9 @@ random_tip <- function() { } # To avoid namespace clash with dplyr. -vars <- NULL +vars <- function(...) { + quos(...) +} on_load( if (requireNamespace("dplyr", quietly = TRUE)) { vars <- dplyr::vars diff --git a/cran-comments.md b/cran-comments.md index 24e9b543d4..33635bf088 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,36 +1,194 @@ -This is a small release as requested by CRAN to remove a call to the deprecated -`default.stringsAsFactors()` in base. This patch contains no user facing changes -and no breaking changes. +This is a minor release focusing on internal changes. -## R CMD check results +We have tested reverse dependencies and contacted failing packages 4 weeks ago, +notifying them of the failure and where in their code they need to look. -0 errors | 0 warnings | 0 note +At the time of submission 44 packages are still failing. ## revdepcheck results -We checked 3967 reverse dependencies, comparing R CMD check results across CRAN -and dev versions of this package. +We checked 4238 reverse dependencies (4224 from CRAN + 14 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package. - * We saw 2 new problems - * We failed to check 6 packages + * We saw 46 new problems + * We failed to check 22 packages -Issues with CRAN packages are summarised below. Looking into the 2 problems, -none of them are related to ggplot2. +Issues with CRAN packages are summarised below. ### New problems (This reports the first line of each new failure) -* eurlex +* afex checking re-building of vignette outputs ... WARNING -* gggrid +* antaresViz + checking tests ... ERROR + +* bayesplot + checking tests ... ERROR + +* bigsnpr + checking tests ... ERROR + +* chronochrt + checking examples ... ERROR + checking tests ... ERROR + checking re-building of vignette outputs ... WARNING + +* coveffectsplot + checking re-building of vignette outputs ... WARNING + +* dataquieR + checking tests ... ERROR + +* deeptime + checking dependencies in R code ... WARNING + +* docxtools + checking tests ... ERROR + +* DriveML checking re-building of vignette outputs ... WARNING +* evaluate + checking tests ... ERROR + +* fdistr + checking tests ... ERROR + +* ggbeeswarm + checking examples ... ERROR + +* ggconf + checking examples ... ERROR + checking tests ... ERROR + +* ggdag + checking examples ... ERROR + checking tests ... ERROR + checking dependencies in R code ... WARNING + checking re-building of vignette outputs ... WARNING + +* ggetho + checking dependencies in R code ... WARNING + +* ggfun + checking dependencies in R code ... WARNING + +* gghalves + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* ggip + checking tests ... ERROR + +* ggiraph + checking examples ... ERROR + checking tests ... ERROR + +* ggiraphExtra + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* gglgbtq + checking dependencies in R code ... WARNING + +* ggmap + checking dependencies in R code ... WARNING + +* ggmulti + checking examples ... ERROR + checking dependencies in R code ... WARNING + +* ggpubr + checking examples ... ERROR + +* ggstance + checking dependencies in R code ... WARNING + +* ggstar + checking dependencies in R code ... WARNING + +* iheiddown + checking tests ... ERROR + +* inTextSummaryTable + checking tests ... ERROR + +* jjAnno + checking examples ... ERROR + +* lemon + checking examples ... ERROR + checking tests ... ERROR + checking re-building of vignette outputs ... WARNING + +* lingtypology + checking examples ... ERROR + +* listdown + checking tests ... ERROR + +* openalexR + checking re-building of vignette outputs ... WARNING + +* pathviewr + checking tests ... ERROR + +* plotly + checking tests ... ERROR + +* plotmm + checking examples ... ERROR + +* qqboxplot + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* RJafroc + checking tests ... ERROR + +* robustlmm + checking running R code from vignettes ... WARNING + +* scdhlm + checking tests ... ERROR + +* schtools + checking tests ... ERROR + +* tcpl + checking re-building of vignette outputs ... WARNING + +* tvthemes + checking tests ... ERROR + +* usmap + checking tests ... ERROR + +* xpose + checking tests ... ERROR + ### Failed to check -* CausalImpact (NA) -* ctsem (NA) -* loon.ggplot (NA) -* SSVS (NA) -* valse (NA) -* vivid (NA) +* CausalImpact (NA) +* ctsem (NA) +* expss (NA) +* ggPMX (NA) +* ggprism (NA) +* ggshadow (NA) +* ggtern (NA) +* loon.ggplot (NA) +* nlmixr2 (NA) +* nlmixr2extra (NA) +* nlmixr2plot (NA) +* OpenMx (NA) +* Platypus (NA) +* RcppCensSpatial (NA) +* rPBK (NA) +* simpr (NA) +* Sofi (NA) +* SSVS (NA) +* tidySEM (NA) +* valse (NA) +* vivid (NA) +* xpose.nlmixr2 (NA) diff --git a/data-raw/presidential.R b/data-raw/presidential.R index a3e8dc4f62..ac1e5d0fd3 100644 --- a/data-raw/presidential.R +++ b/data-raw/presidential.R @@ -1,3 +1,3 @@ library(readr) -presidential <- read_csv("data-raw/presidential.csv") +presidential <- read_csv("data-raw/presidential.csv")[] usethis::use_data(presidential, overwrite = TRUE) diff --git a/data/presidential.rda b/data/presidential.rda index f5b7e9ec64..0e6ae7dcb0 100644 Binary files a/data/presidential.rda and b/data/presidential.rda differ diff --git a/man/vec_arith.ggplot2_mapped_discrete.Rd b/man/vec_arith.ggplot2_mapped_discrete.Rd deleted file mode 100644 index fd38b5d99f..0000000000 --- a/man/vec_arith.ggplot2_mapped_discrete.Rd +++ /dev/null @@ -1,19 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/scale-discrete-.r -\name{vec_arith.ggplot2_mapped_discrete} -\alias{vec_arith.ggplot2_mapped_discrete} -\title{Utilities for working with discrete values mapped to numeric domain} -\usage{ -\method{vec_arith}{ggplot2_mapped_discrete}(op, x, y, ...) -} -\arguments{ -\item{op}{The operator to apply} - -\item{x, y}{items to apply the operator to} - -\item{...}{passed on} -} -\description{ -Utilities for working with discrete values mapped to numeric domain -} -\keyword{internal} diff --git a/revdep/README.md b/revdep/README.md index 9796d007a4..e8937c421b 100644 --- a/revdep/README.md +++ b/revdep/README.md @@ -1,20 +1,94 @@ # Revdeps -## Failed to check (6) +## Failed to check (36) -|package |version |error |warning |note | -|:------------|:-------|:-----|:-------|:----| -|CausalImpact |? | | | | -|ctsem |3.6.0 |1 | | | -|loon.ggplot |? | | | | -|SSVS |? | | | | -|valse |0.1-0 |1 | | | -|vivid |? | | | | +|package |version |error |warning |note | +|:--------------------------------|:--------|:------|:-------|:----| +|CausalImpact |? | | | | +|NA |? | | | | +|ctsem |3.7.1 |1 | | | +|NA |? | | | | +|NA |? | | | | +|expss |0.11.2 |1 | | | +|ggPMX |? | | | | +|[ggprism](failures.md#ggprism) |1.0.3 |__+1__ | | | +|[ggshadow](failures.md#ggshadow) |0.0.2 |__+1__ | |-1 | +|[ggtern](failures.md#ggtern) |3.3.5 |__+1__ | |1 -2 | +|NA |? | | | | +|loon.ggplot |? | | | | +|NA |? | | | | +|NA |? | | | | +|nlmixr2 |? | | | | +|nlmixr2extra |? | | | | +|nlmixr2plot |? | | | | +|NA |? | | | | +|OpenMx |? | | | | +|Platypus |? | | | | +|NA |? | | | | +|NA |? | | | | +|RcppCensSpatial |? | | | | +|NA |? | | | | +|rPBK |0.2.0 |1 | | | +|simpr |0.2.2 |1 | | | +|Sofi |0.16.4.8 |1 | | | +|SSVS |? | | | | +|tidySEM |? | | | | +|NA |? | | | | +|valse |0.1-0 |1 | | | +|NA |? | | | | +|NA |? | | | | +|vivid |? | | | | +|NA |? | | | | +|xpose.nlmixr2 |? | | | | -## New problems (2) +## New problems (46) -|package |version |error |warning |note | -|:----------------------------|:-------|:-----|:-------|:----| -|[eurlex](problems.md#eurlex) |0.4.1 | |__+1__ | | -|[gggrid](problems.md#gggrid) |0.2-0 | |__+1__ | | +|package |version |error |warning |note | +|:----------------------------------------------------|:-------|:------|:-------|:----| +|[afex](problems.md#afex) |1.1-1 | |__+1__ | | +|[antaresViz](problems.md#antaresviz) |0.17 |__+1__ | | | +|[bayesplot](problems.md#bayesplot) |1.9.0 |__+1__ | |1 | +|[bigsnpr](problems.md#bigsnpr) |1.11.4 |__+1__ | |2 | +|[chronochrt](problems.md#chronochrt) |0.1.1 |__+2__ |__+1__ | | +|[coveffectsplot](problems.md#coveffectsplot) |1.0.2 | |__+1__ |1 | +|[dataquieR](problems.md#dataquier) |1.0.11 |__+1__ | | | +|[deeptime](problems.md#deeptime) |0.2.3 | |__+1__ | | +|[docxtools](problems.md#docxtools) |0.2.2 |__+1__ | | | +|[DriveML](problems.md#driveml) |0.1.4 | |__+1__ |1 | +|[evaluate](problems.md#evaluate) |0.17 |__+1__ | | | +|[fdistr](problems.md#fdistr) |0.1.0 |__+1__ | |2 | +|[ggbeeswarm](problems.md#ggbeeswarm) |0.6.0 |__+1__ | |1 | +|[ggconf](problems.md#ggconf) |0.1.3 |__+2__ | |1 | +|[ggdag](problems.md#ggdag) |0.2.6 |__+2__ |__+2__ | | +|[ggetho](problems.md#ggetho) |0.3.6 | |__+1__ |1 | +|[ggfun](problems.md#ggfun) |0.0.7 | |__+1__ | | +|[gghalves](problems.md#gghalves) |0.1.3 |__+1__ |__+1__ |1 | +|[ggip](problems.md#ggip) |0.2.2 |__+1__ | | | +|[ggiraph](problems.md#ggiraph) |0.8.3 |__+2__ | |1 | +|[ggiraphExtra](problems.md#ggiraphextra) |0.3.0 |__+1__ |__+1__ | | +|[gglgbtq](problems.md#gglgbtq) |0.1.0 | |__+1__ | | +|[ggmap](problems.md#ggmap) |3.0.0 | |__+1__ | | +|[ggmulti](problems.md#ggmulti) |1.0.5 |__+1__ |__+1__ | | +|[ggpubr](problems.md#ggpubr) |0.4.0 |__+1__ | | | +|[ggstance](problems.md#ggstance) |0.3.5 | |__+1__ |1 | +|[ggstar](problems.md#ggstar) |1.0.3 | |__+1__ | | +|[iheiddown](problems.md#iheiddown) |0.9.5 |__+1__ | | | +|[inTextSummaryTable](problems.md#intextsummarytable) |3.2.0 |__+1__ | |1 | +|[jjAnno](problems.md#jjanno) |0.0.3 |__+1__ | | | +|[lemon](problems.md#lemon) |0.4.5 |__+2__ |__+1__ |1 | +|[lingtypology](problems.md#lingtypology) |1.1.9 |__+1__ | |1 | +|[listdown](problems.md#listdown) |0.5.2 |__+1__ | |1 | +|[openalexR](problems.md#openalexr) |1.0.0 | |__+1__ | | +|[pathviewr](problems.md#pathviewr) |1.1.3 |__+1__ | | | +|[plotly](problems.md#plotly) |4.10.0 |__+1__ | |1 | +|[plotmm](problems.md#plotmm) |0.1.0 |__+1__ | |2 | +|[qqboxplot](problems.md#qqboxplot) |0.2.0 |__+1__ |__+1__ | | +|[RJafroc](problems.md#rjafroc) |2.1.1 |__+1__ | |1 | +|[robustlmm](problems.md#robustlmm) |3.0-4 | |__+1__ |2 | +|[scdhlm](problems.md#scdhlm) |0.6.0 |__+1__ | | | +|[schtools](problems.md#schtools) |0.3.0 |__+1__ | | | +|[tcpl](problems.md#tcpl) |3.0.0 | |__+1__ | | +|[tvthemes](problems.md#tvthemes) |1.3.1 |__+1__ | | | +|[usmap](problems.md#usmap) |0.6.0 |__+1__ | |1 | +|[xpose](problems.md#xpose) |0.4.13 |__+1__ | | | diff --git a/revdep/cran.md b/revdep/cran.md index 1c68c8332a..bc0e870708 100644 --- a/revdep/cran.md +++ b/revdep/cran.md @@ -1,26 +1,187 @@ ## revdepcheck results -We checked 3967 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. +We checked 4238 reverse dependencies (4224 from CRAN + 14 from Bioconductor), comparing R CMD check results across CRAN and dev versions of this package. - * We saw 2 new problems - * We failed to check 6 packages + * We saw 46 new problems + * We failed to check 22 packages Issues with CRAN packages are summarised below. ### New problems (This reports the first line of each new failure) -* eurlex +* afex checking re-building of vignette outputs ... WARNING -* gggrid +* antaresViz + checking tests ... ERROR + +* bayesplot + checking tests ... ERROR + +* bigsnpr + checking tests ... ERROR + +* chronochrt + checking examples ... ERROR + checking tests ... ERROR + checking re-building of vignette outputs ... WARNING + +* coveffectsplot + checking re-building of vignette outputs ... WARNING + +* dataquieR + checking tests ... ERROR + +* deeptime + checking dependencies in R code ... WARNING + +* docxtools + checking tests ... ERROR + +* DriveML checking re-building of vignette outputs ... WARNING +* evaluate + checking tests ... ERROR + +* fdistr + checking tests ... ERROR + +* ggbeeswarm + checking examples ... ERROR + +* ggconf + checking examples ... ERROR + checking tests ... ERROR + +* ggdag + checking examples ... ERROR + checking tests ... ERROR + checking dependencies in R code ... WARNING + checking re-building of vignette outputs ... WARNING + +* ggetho + checking dependencies in R code ... WARNING + +* ggfun + checking dependencies in R code ... WARNING + +* gghalves + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* ggip + checking tests ... ERROR + +* ggiraph + checking examples ... ERROR + checking tests ... ERROR + +* ggiraphExtra + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* gglgbtq + checking dependencies in R code ... WARNING + +* ggmap + checking dependencies in R code ... WARNING + +* ggmulti + checking examples ... ERROR + checking dependencies in R code ... WARNING + +* ggpubr + checking examples ... ERROR + +* ggstance + checking dependencies in R code ... WARNING + +* ggstar + checking dependencies in R code ... WARNING + +* iheiddown + checking tests ... ERROR + +* inTextSummaryTable + checking tests ... ERROR + +* jjAnno + checking examples ... ERROR + +* lemon + checking examples ... ERROR + checking tests ... ERROR + checking re-building of vignette outputs ... WARNING + +* lingtypology + checking examples ... ERROR + +* listdown + checking tests ... ERROR + +* openalexR + checking re-building of vignette outputs ... WARNING + +* pathviewr + checking tests ... ERROR + +* plotly + checking tests ... ERROR + +* plotmm + checking examples ... ERROR + +* qqboxplot + checking examples ... ERROR + checking re-building of vignette outputs ... WARNING + +* RJafroc + checking tests ... ERROR + +* robustlmm + checking running R code from vignettes ... WARNING + +* scdhlm + checking tests ... ERROR + +* schtools + checking tests ... ERROR + +* tcpl + checking re-building of vignette outputs ... WARNING + +* tvthemes + checking tests ... ERROR + +* usmap + checking tests ... ERROR + +* xpose + checking tests ... ERROR + ### Failed to check -* CausalImpact (NA) -* ctsem (NA) -* loon.ggplot (NA) -* SSVS (NA) -* valse (NA) -* vivid (NA) +* CausalImpact (NA) +* ctsem (NA) +* expss (NA) +* ggPMX (NA) +* ggprism (NA) +* ggshadow (NA) +* ggtern (NA) +* loon.ggplot (NA) +* nlmixr2 (NA) +* nlmixr2extra (NA) +* nlmixr2plot (NA) +* OpenMx (NA) +* Platypus (NA) +* RcppCensSpatial (NA) +* rPBK (NA) +* simpr (NA) +* Sofi (NA) +* SSVS (NA) +* tidySEM (NA) +* valse (NA) +* vivid (NA) +* xpose.nlmixr2 (NA) diff --git a/revdep/email.yml b/revdep/email.yml deleted file mode 100644 index 1583857ab0..0000000000 --- a/revdep/email.yml +++ /dev/null @@ -1,4 +0,0 @@ -release_date: March 3 -rel_release_date: two weeks -my_news_url: https://github.com/tidyverse/ggplot2/blob/v3.3.0-rc/NEWS.md#ggplot2-330 -release_version: 3.3.0 diff --git a/revdep/failures.md b/revdep/failures.md index d52483d496..2666cdb152 100644 --- a/revdep/failures.md +++ b/revdep/failures.md @@ -61,16 +61,51 @@ Status: 1 ERROR +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + ``` # ctsem
-* Version: 3.6.0 +* Version: 3.7.1 * GitHub: https://github.com/cdriveraus/ctsem * Source code: https://github.com/cran/ctsem -* Date/Publication: 2022-03-10 11:20:19 UTC -* Number of recursive dependencies: 125 +* Date/Publication: 2022-08-08 14:00:02 UTC +* Number of recursive dependencies: 135 Run `cloud_details(, "ctsem")` for more info @@ -100,10 +135,10 @@ Info: integer division implicitly rounds to integer. Found int division: d * d - Wrote C++ file "stan_files/ctsm.cc" ... -stan_files/ctsm.hpp: In member function ‘T__ model_ctsm_namespace::model_ctsm::log_prob(std::vector&, std::vector&, std::ostream*) const [with bool propto__ = false; bool jacobian__ = true; T__ = double]’: -stan_files/ctsm.hpp:2348:9: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without - 2348 | T__ log_prob(std::vector& params_r__, + 2340 | T__ log_prob(std::vector& params_r__, | ^~~~~~~~ +stan_files/ctsm.hpp: In member function ‘T__ model_ctsm_namespace::model_ctsm::log_prob(std::vector&, std::vector&, std::ostream*) const [with bool propto__ = false; bool jacobian__ = false; T__ = double]’: +stan_files/ctsm.hpp:2340:9: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without g++: fatal error: Killed signal terminated program cc1plus compilation terminated. make: *** [/opt/R/4.1.1/lib/R/etc/Makeconf:175: stan_files/ctsm.o] Error 1 @@ -116,41 +151,1391 @@ ERROR: compilation failed for package ‘ctsem’ ### CRAN ``` -* installing *source* package ‘ctsem’ ... -** package ‘ctsem’ successfully unpacked and MD5 sums checked +* installing *source* package ‘ctsem’ ... +** package ‘ctsem’ successfully unpacked and MD5 sums checked +** using staged installation +** libs +"/opt/R/4.1.1/lib/R/bin/Rscript" -e "source(file.path('..', 'tools', 'make_cc.R')); make_cc(commandArgs(TRUE))" stan_files/ctsm.stan +DIAGNOSTIC(S) FROM PARSER: +Info: integer division implicitly rounds to integer. Found int division: d * d - d / 2 + Positive values rounded down, negative values rounded up or down in platform-dependent way. + +Wrote C++ file "stan_files/ctsm.cc" +... + 2340 | T__ log_prob(std::vector& params_r__, + | ^~~~~~~~ +stan_files/ctsm.hpp: In member function ‘T__ model_ctsm_namespace::model_ctsm::log_prob(std::vector&, std::vector&, std::ostream*) const [with bool propto__ = false; bool jacobian__ = false; T__ = double]’: +stan_files/ctsm.hpp:2340:9: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without +g++: fatal error: Killed signal terminated program cc1plus +compilation terminated. +make: *** [/opt/R/4.1.1/lib/R/etc/Makeconf:175: stan_files/ctsm.o] Error 1 +rm stan_files/ctsm.cc +ERROR: compilation failed for package ‘ctsem’ +* removing ‘/tmp/workdir/ctsem/old/ctsem.Rcheck/ctsem’ + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# expss + +
+ +* Version: 0.11.2 +* GitHub: https://github.com/gdemin/expss +* Source code: https://github.com/cran/expss +* Date/Publication: 2022-10-16 02:52:38 UTC +* Number of recursive dependencies: 89 + +Run `cloud_details(, "expss")` for more info + +
+ +## In both + +* checking whether package ‘expss’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/expss/new/expss.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘expss’ ... +** package ‘expss’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +Error: package or namespace load failed for ‘expss’: + object 'mtfrm' not found whilst loading namespace 'expss' +Error: loading failed +Execution halted +ERROR: loading failed +* removing ‘/tmp/workdir/expss/new/expss.Rcheck/expss’ + + +``` +### CRAN + +``` +* installing *source* package ‘expss’ ... +** package ‘expss’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +Error: package or namespace load failed for ‘expss’: + object 'mtfrm' not found whilst loading namespace 'expss' +Error: loading failed +Execution halted +ERROR: loading failed +* removing ‘/tmp/workdir/expss/old/expss.Rcheck/expss’ + + +``` +# ggPMX + +
+ +* Version: 1.2.8 +* GitHub: https://github.com/ggPMXdevelopment/ggPMX +* Source code: https://github.com/cran/ggPMX +* Date/Publication: 2022-06-17 23:10:02 UTC +* Number of recursive dependencies: 177 + +Run `cloud_details(, "ggPMX")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/ggPMX/new/ggPMX.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘ggPMX/DESCRIPTION’ ... OK +* this is package ‘ggPMX’ version ‘1.2.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... NOTE +... + [ FAIL 1 | WARN 13 | SKIP 8 | PASS 327 ] + Error: Test failures + Execution halted +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘ggPMX-guide.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 1 ERROR, 2 NOTEs + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/ggPMX/old/ggPMX.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘ggPMX/DESCRIPTION’ ... OK +* this is package ‘ggPMX’ version ‘1.2.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... NOTE +... + [ FAIL 1 | WARN 11 | SKIP 8 | PASS 327 ] + Error: Test failures + Execution halted +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘ggPMX-guide.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 1 ERROR, 2 NOTEs + + + + + +``` +# ggprism + +
+ +* Version: 1.0.3 +* GitHub: https://github.com/csdaw/ggprism +* Source code: https://github.com/cran/ggprism +* Date/Publication: 2021-06-08 11:40:02 UTC +* Number of recursive dependencies: 104 + +Run `cloud_details(, "ggprism")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggprism’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggprism/new/ggprism.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggprism’ ... +** package ‘ggprism’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'new_data_frame' not found +Error: unable to load R code in package ‘ggprism’ +Execution halted +ERROR: lazy loading failed for package ‘ggprism’ +* removing ‘/tmp/workdir/ggprism/new/ggprism.Rcheck/ggprism’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggprism’ ... +** package ‘ggprism’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +*** copying figures +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggprism) + + +``` +# ggshadow + +
+ +* Version: 0.0.2 +* GitHub: https://github.com/marcmenem/ggshadow +* Source code: https://github.com/cran/ggshadow +* Date/Publication: 2021-01-22 08:50:03 UTC +* Number of recursive dependencies: 49 + +Run `cloud_details(, "ggshadow")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggshadow’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggshadow/new/ggshadow.Rcheck/00install.out’ for details. + ``` + +## Newly fixed + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggshadow’ ... +** package ‘ggshadow’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'new_data_frame' not found +Error: unable to load R code in package ‘ggshadow’ +Execution halted +ERROR: lazy loading failed for package ‘ggshadow’ +* removing ‘/tmp/workdir/ggshadow/new/ggshadow.Rcheck/ggshadow’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggshadow’ ... +** package ‘ggshadow’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggshadow) + + +``` +# ggtern + +
+ +* Version: 3.3.5 +* GitHub: NA +* Source code: https://github.com/cran/ggtern +* Date/Publication: 2021-07-23 05:20:02 UTC +* Number of recursive dependencies: 43 + +Run `cloud_details(, "ggtern")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggtern’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggtern/new/ggtern.Rcheck/00install.out’ for details. + ``` + +## Newly fixed + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘hexbin’ + All declared Imports should be used. + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘chemometrics’ + ``` + +## In both + +* checking package dependencies ... NOTE + ``` + Package which this enhances but not available for checking: ‘sp’ + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggtern’ ... +** package ‘ggtern’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +** demo +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'message_wrap' not found +Error: unable to load R code in package ‘ggtern’ +Execution halted +ERROR: lazy loading failed for package ‘ggtern’ +* removing ‘/tmp/workdir/ggtern/new/ggtern.Rcheck/ggtern’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggtern’ ... +** package ‘ggtern’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggtern) + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# loon.ggplot + +
+ +* Version: 1.3.2 +* GitHub: https://github.com/great-northern-diver/loon.ggplot +* Source code: https://github.com/cran/loon.ggplot +* Date/Publication: 2022-10-03 14:50:02 UTC +* Number of recursive dependencies: 104 + +Run `cloud_details(, "loon.ggplot")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/loon.ggplot/new/loon.ggplot.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘loon.ggplot/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘loon.ggplot’ version ‘1.3.2’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘loon’ + +Package suggested but not available for checking: ‘zenplots’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/loon.ggplot/old/loon.ggplot.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘loon.ggplot/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘loon.ggplot’ version ‘1.3.2’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘loon’ + +Package suggested but not available for checking: ‘zenplots’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# nlmixr2 + +
+ +* Version: 2.0.8 +* GitHub: https://github.com/nlmixr2/nlmixr2 +* Source code: https://github.com/cran/nlmixr2 +* Date/Publication: 2022-10-23 04:02:36 UTC +* Number of recursive dependencies: 199 + +Run `cloud_details(, "nlmixr2")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/nlmixr2/new/nlmixr2.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2/DESCRIPTION’ ... OK +* this is package ‘nlmixr2’ version ‘2.0.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: + 'nlmixr2est', 'nlmixr2extra', 'nlmixr2plot' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/nlmixr2/old/nlmixr2.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2/DESCRIPTION’ ... OK +* this is package ‘nlmixr2’ version ‘2.0.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: + 'nlmixr2est', 'nlmixr2extra', 'nlmixr2plot' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +# nlmixr2extra + +
+ +* Version: 2.0.8 +* GitHub: https://github.com/nlmixr2/nlmixr2extra +* Source code: https://github.com/cran/nlmixr2extra +* Date/Publication: 2022-10-22 22:32:34 UTC +* Number of recursive dependencies: 202 + +Run `cloud_details(, "nlmixr2extra")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/nlmixr2extra/new/nlmixr2extra.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2extra/DESCRIPTION’ ... OK +* this is package ‘nlmixr2extra’ version ‘2.0.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: 'nlmixr2est', 'symengine' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/nlmixr2extra/old/nlmixr2extra.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2extra/DESCRIPTION’ ... OK +* this is package ‘nlmixr2extra’ version ‘2.0.8’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: 'nlmixr2est', 'symengine' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +# nlmixr2plot + +
+ +* Version: 2.0.7 +* GitHub: https://github.com/nlmixr2/nlmixr2plot +* Source code: https://github.com/cran/nlmixr2plot +* Date/Publication: 2022-10-20 03:12:36 UTC +* Number of recursive dependencies: 160 + +Run `cloud_details(, "nlmixr2plot")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/nlmixr2plot/new/nlmixr2plot.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2plot/DESCRIPTION’ ... OK +* this is package ‘nlmixr2plot’ version ‘2.0.7’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: 'nlmixr2est', 'nlmixr2extra' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/nlmixr2plot/old/nlmixr2plot.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘nlmixr2plot/DESCRIPTION’ ... OK +* this is package ‘nlmixr2plot’ version ‘2.0.7’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Packages required but not available: 'nlmixr2est', 'nlmixr2extra' + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# OpenMx + +
+ +* Version: 2.20.7 +* GitHub: https://github.com/OpenMx/OpenMx +* Source code: https://github.com/cran/OpenMx +* Date/Publication: 2022-10-19 10:38:03 UTC +* Number of recursive dependencies: 145 + +Run `cloud_details(, "OpenMx")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/OpenMx/new/OpenMx.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘OpenMx/DESCRIPTION’ ... OK +* this is package ‘OpenMx’ version ‘2.20.7’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... NOTE +... +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘deriv.Rmd’ using ‘UTF-8’... OK + ‘reg_mimic.Rmd’ using ‘UTF-8’... OK + ‘factor_analysis.Rmd’ using ‘UTF-8’... OK + ‘regularization.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 4 NOTEs + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/OpenMx/old/OpenMx.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘OpenMx/DESCRIPTION’ ... OK +* this is package ‘OpenMx’ version ‘2.20.7’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... NOTE +... +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘deriv.Rmd’ using ‘UTF-8’... OK + ‘reg_mimic.Rmd’ using ‘UTF-8’... OK + ‘factor_analysis.Rmd’ using ‘UTF-8’... OK + ‘regularization.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 4 NOTEs + + + + + +``` +# Platypus + +
+ +* Version: 3.4.1 +* GitHub: NA +* Source code: https://github.com/cran/Platypus +* Date/Publication: 2022-08-15 07:20:20 UTC +* Number of recursive dependencies: 353 + +Run `cloud_details(, "Platypus")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/Platypus/new/Platypus.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘Platypus/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘Platypus’ version ‘3.4.1’ +* package encoding: UTF-8 +* checking package namespace information ... OK +... +* checking installed files from ‘inst/doc’ ... OK +* checking files in ‘vignettes’ ... OK +* checking examples ... OK +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘PlatypusV3_agedCNS.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 1 NOTE + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/Platypus/old/Platypus.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘Platypus/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘Platypus’ version ‘3.4.1’ +* package encoding: UTF-8 +* checking package namespace information ... OK +... +* checking installed files from ‘inst/doc’ ... OK +* checking files in ‘vignettes’ ... OK +* checking examples ... OK +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘PlatypusV3_agedCNS.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK +* DONE +Status: 1 NOTE + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# RcppCensSpatial + +
+ +* Version: 0.3.0 +* GitHub: NA +* Source code: https://github.com/cran/RcppCensSpatial +* Date/Publication: 2022-06-27 23:00:02 UTC +* Number of recursive dependencies: 64 + +Run `cloud_details(, "RcppCensSpatial")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/RcppCensSpatial/new/RcppCensSpatial.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘RcppCensSpatial/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘RcppCensSpatial’ version ‘0.3.0’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘MomTrunc’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/RcppCensSpatial/old/RcppCensSpatial.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘RcppCensSpatial/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘RcppCensSpatial’ version ‘0.3.0’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘MomTrunc’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# rPBK + +
+ +* Version: 0.2.0 +* GitHub: NA +* Source code: https://github.com/cran/rPBK +* Date/Publication: 2022-09-01 15:10:02 UTC +* Number of recursive dependencies: 77 + +Run `cloud_details(, "rPBK")` for more info + +
+ +## In both + +* checking whether package ‘rPBK’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/rPBK/new/rPBK.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘rPBK’ ... +** package ‘rPBK’ successfully unpacked and MD5 sums checked +** using staged installation +Error in loadNamespace(x) : there is no package called ‘rstantools’ +Calls: loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart +Execution halted +ERROR: configuration failed for package ‘rPBK’ +* removing ‘/tmp/workdir/rPBK/new/rPBK.Rcheck/rPBK’ + + +``` +### CRAN + +``` +* installing *source* package ‘rPBK’ ... +** package ‘rPBK’ successfully unpacked and MD5 sums checked +** using staged installation +Error in loadNamespace(x) : there is no package called ‘rstantools’ +Calls: loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart +Execution halted +ERROR: configuration failed for package ‘rPBK’ +* removing ‘/tmp/workdir/rPBK/old/rPBK.Rcheck/rPBK’ + + +``` +# simpr + +
+ +* Version: 0.2.2 +* GitHub: https://github.com/statisfactions/simpr +* Source code: https://github.com/cran/simpr +* Date/Publication: 2022-02-13 00:40:02 UTC +* Number of recursive dependencies: 77 + +Run `cloud_details(, "simpr")` for more info + +
+ +## In both + +* checking whether package ‘simpr’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/simpr/new/simpr.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘simpr’ ... +** package ‘simpr’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : + there is no package called ‘listenv’ +Calls: ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart +Execution halted +ERROR: lazy loading failed for package ‘simpr’ +* removing ‘/tmp/workdir/simpr/new/simpr.Rcheck/simpr’ + + +``` +### CRAN + +``` +* installing *source* package ‘simpr’ ... +** package ‘simpr’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : + there is no package called ‘listenv’ +Calls: ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart +Execution halted +ERROR: lazy loading failed for package ‘simpr’ +* removing ‘/tmp/workdir/simpr/old/simpr.Rcheck/simpr’ + + +``` +# Sofi + +
+ +* Version: 0.16.4.8 +* GitHub: https://github.com/loerasg/Sofi +* Source code: https://github.com/cran/Sofi +* Date/Publication: 2016-04-10 00:49:47 +* Number of recursive dependencies: 63 + +Run `cloud_details(, "Sofi")` for more info + +
+ +## In both + +* checking whether package ‘Sofi’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/Sofi/new/Sofi.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘Sofi’ ... +** package ‘Sofi’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +** inst +** byte-compile and prepare package for lazy loading +Error: package or namespace load failed for ‘shiny’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): + there is no package called ‘fastmap’ +Execution halted +ERROR: lazy loading failed for package ‘Sofi’ +* removing ‘/tmp/workdir/Sofi/new/Sofi.Rcheck/Sofi’ + + +``` +### CRAN + +``` +* installing *source* package ‘Sofi’ ... +** package ‘Sofi’ successfully unpacked and MD5 sums checked ** using staged installation -** libs -"/opt/R/4.1.1/lib/R/bin/Rscript" -e "source(file.path('..', 'tools', 'make_cc.R')); make_cc(commandArgs(TRUE))" stan_files/ctsm.stan -DIAGNOSTIC(S) FROM PARSER: -Info: integer division implicitly rounds to integer. Found int division: d * d - d / 2 - Positive values rounded down, negative values rounded up or down in platform-dependent way. - -Wrote C++ file "stan_files/ctsm.cc" -... -stan_files/ctsm.hpp: In member function ‘T__ model_ctsm_namespace::model_ctsm::log_prob(std::vector&, std::vector&, std::ostream*) const [with bool propto__ = false; bool jacobian__ = true; T__ = double]’: -stan_files/ctsm.hpp:2348:9: note: variable tracking size limit exceeded with ‘-fvar-tracking-assignments’, retrying without - 2348 | T__ log_prob(std::vector& params_r__, - | ^~~~~~~~ -g++: fatal error: Killed signal terminated program cc1plus -compilation terminated. -make: *** [/opt/R/4.1.1/lib/R/etc/Makeconf:175: stan_files/ctsm.o] Error 1 -rm stan_files/ctsm.cc -ERROR: compilation failed for package ‘ctsem’ -* removing ‘/tmp/workdir/ctsem/old/ctsem.Rcheck/ctsem’ +** R +** data +** inst +** byte-compile and prepare package for lazy loading +Error: package or namespace load failed for ‘shiny’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]): + there is no package called ‘fastmap’ +Execution halted +ERROR: lazy loading failed for package ‘Sofi’ +* removing ‘/tmp/workdir/Sofi/old/Sofi.Rcheck/Sofi’ ``` -# loon.ggplot +# SSVS
-* Version: 1.3.1 -* GitHub: https://github.com/great-northern-diver/loon.ggplot -* Source code: https://github.com/cran/loon.ggplot -* Date/Publication: 2022-02-07 21:50:06 UTC -* Number of recursive dependencies: 103 +* Version: 2.0.0 +* GitHub: https://github.com/sabainter/SSVS +* Source code: https://github.com/cran/SSVS +* Date/Publication: 2022-05-29 05:40:09 UTC +* Number of recursive dependencies: 123 -Run `cloud_details(, "loon.ggplot")` for more info +Run `cloud_details(, "SSVS")` for more info
@@ -159,20 +1544,17 @@ Run `cloud_details(, "loon.ggplot")` for more info ### Devel ``` -* using log directory ‘/tmp/workdir/loon.ggplot/new/loon.ggplot.Rcheck’ +* using log directory ‘/tmp/workdir/SSVS/new/SSVS.Rcheck’ * using R version 4.1.1 (2021-08-10) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset: UTF-8 * using option ‘--no-manual’ -* checking for file ‘loon.ggplot/DESCRIPTION’ ... OK -* checking extension type ... Package -* this is package ‘loon.ggplot’ version ‘1.3.1’ +* checking for file ‘SSVS/DESCRIPTION’ ... OK +* this is package ‘SSVS’ version ‘2.0.0’ * package encoding: UTF-8 * checking package namespace information ... OK * checking package dependencies ... ERROR -Package required but not available: ‘loon’ - -Package suggested but not available for checking: ‘zenplots’ +Package required but not available: ‘BoomSpikeSlab’ See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ manual. @@ -187,20 +1569,17 @@ Status: 1 ERROR ### CRAN ``` -* using log directory ‘/tmp/workdir/loon.ggplot/old/loon.ggplot.Rcheck’ +* using log directory ‘/tmp/workdir/SSVS/old/SSVS.Rcheck’ * using R version 4.1.1 (2021-08-10) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset: UTF-8 * using option ‘--no-manual’ -* checking for file ‘loon.ggplot/DESCRIPTION’ ... OK -* checking extension type ... Package -* this is package ‘loon.ggplot’ version ‘1.3.1’ +* checking for file ‘SSVS/DESCRIPTION’ ... OK +* this is package ‘SSVS’ version ‘2.0.0’ * package encoding: UTF-8 * checking package namespace information ... OK * checking package dependencies ... ERROR -Package required but not available: ‘loon’ - -Package suggested but not available for checking: ‘zenplots’ +Package required but not available: ‘BoomSpikeSlab’ See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ manual. @@ -212,17 +1591,17 @@ Status: 1 ERROR ``` -# SSVS +# tidySEM
-* Version: 1.0.0 -* GitHub: https://github.com/sabainter/SSVS -* Source code: https://github.com/cran/SSVS -* Date/Publication: 2022-03-08 20:20:12 UTC -* Number of recursive dependencies: 100 +* Version: 0.2.3 +* GitHub: https://github.com/cjvanlissa/tidySEM +* Source code: https://github.com/cran/tidySEM +* Date/Publication: 2022-04-14 17:50:02 UTC +* Number of recursive dependencies: 170 -Run `cloud_details(, "SSVS")` for more info +Run `cloud_details(, "tidySEM")` for more info
@@ -231,22 +1610,27 @@ Run `cloud_details(, "SSVS")` for more info ### Devel ``` -* using log directory ‘/tmp/workdir/SSVS/new/SSVS.Rcheck’ +* using log directory ‘/tmp/workdir/tidySEM/new/tidySEM.Rcheck’ * using R version 4.1.1 (2021-08-10) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset: UTF-8 * using option ‘--no-manual’ -* checking for file ‘SSVS/DESCRIPTION’ ... OK -* this is package ‘SSVS’ version ‘1.0.0’ +* checking for file ‘tidySEM/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘tidySEM’ version ‘0.2.3’ * package encoding: UTF-8 * checking package namespace information ... OK -* checking package dependencies ... ERROR -Package required but not available: ‘BoomSpikeSlab’ - -See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ -manual. +... +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘Generating_syntax.Rmd’ using ‘UTF-8’... OK + ‘Plotting_graphs.Rmd’ using ‘UTF-8’... OK + ‘Tabulating_results.Rmd’ using ‘UTF-8’... OK + ‘sem_graph.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK * DONE -Status: 1 ERROR +Status: 1 NOTE @@ -256,22 +1640,62 @@ Status: 1 ERROR ### CRAN ``` -* using log directory ‘/tmp/workdir/SSVS/old/SSVS.Rcheck’ +* using log directory ‘/tmp/workdir/tidySEM/old/tidySEM.Rcheck’ * using R version 4.1.1 (2021-08-10) * using platform: x86_64-pc-linux-gnu (64-bit) * using session charset: UTF-8 * using option ‘--no-manual’ -* checking for file ‘SSVS/DESCRIPTION’ ... OK -* this is package ‘SSVS’ version ‘1.0.0’ +* checking for file ‘tidySEM/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘tidySEM’ version ‘0.2.3’ * package encoding: UTF-8 * checking package namespace information ... OK -* checking package dependencies ... ERROR -Package required but not available: ‘BoomSpikeSlab’ - -See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ -manual. +... +* checking for unstated dependencies in vignettes ... OK +* checking package vignettes in ‘inst/doc’ ... OK +* checking running R code from vignettes ... NONE + ‘Generating_syntax.Rmd’ using ‘UTF-8’... OK + ‘Plotting_graphs.Rmd’ using ‘UTF-8’... OK + ‘Tabulating_results.Rmd’ using ‘UTF-8’... OK + ‘sem_graph.Rmd’ using ‘UTF-8’... OK +* checking re-building of vignette outputs ... OK * DONE -Status: 1 ERROR +Status: 1 NOTE + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + @@ -286,7 +1710,7 @@ Status: 1 ERROR * GitHub: NA * Source code: https://github.com/cran/valse * Date/Publication: 2021-05-31 08:00:02 UTC -* Number of recursive dependencies: 53 +* Number of recursive dependencies: 52 Run `cloud_details(, "valse")` for more info @@ -355,6 +1779,76 @@ ERROR: loading failed * removing ‘/tmp/workdir/valse/old/valse.Rcheck/valse’ +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + ``` # vivid @@ -431,4 +1925,111 @@ Status: 2 NOTEs +``` +# NA + +
+ +* Version: NA +* GitHub: NA +* Source code: https://github.com/cran/NA +* Number of recursive dependencies: 0 + +Run `cloud_details(, "NA")` for more info + +
+ +## Error before installation + +### Devel + +``` + + + + + + +``` +### CRAN + +``` + + + + + + +``` +# xpose.nlmixr2 + +
+ +* Version: 0.4.0 +* GitHub: NA +* Source code: https://github.com/cran/xpose.nlmixr2 +* Date/Publication: 2022-06-08 09:10:02 UTC +* Number of recursive dependencies: 154 + +Run `cloud_details(, "xpose.nlmixr2")` for more info + +
+ +## Error before installation + +### Devel + +``` +* using log directory ‘/tmp/workdir/xpose.nlmixr2/new/xpose.nlmixr2.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘xpose.nlmixr2/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘xpose.nlmixr2’ version ‘0.4.0’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘nlmixr2est’ + +Package suggested but not available for checking: ‘nlmixr2’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + +``` +### CRAN + +``` +* using log directory ‘/tmp/workdir/xpose.nlmixr2/old/xpose.nlmixr2.Rcheck’ +* using R version 4.1.1 (2021-08-10) +* using platform: x86_64-pc-linux-gnu (64-bit) +* using session charset: UTF-8 +* using option ‘--no-manual’ +* checking for file ‘xpose.nlmixr2/DESCRIPTION’ ... OK +* checking extension type ... Package +* this is package ‘xpose.nlmixr2’ version ‘0.4.0’ +* package encoding: UTF-8 +* checking package namespace information ... OK +* checking package dependencies ... ERROR +Package required but not available: ‘nlmixr2est’ + +Package suggested but not available for checking: ‘nlmixr2’ + +See section ‘The DESCRIPTION file’ in the ‘Writing R Extensions’ +manual. +* DONE +Status: 1 ERROR + + + + + ``` diff --git a/revdep/problems.md b/revdep/problems.md index 16b162b487..98e85ac95f 100644 --- a/revdep/problems.md +++ b/revdep/problems.md @@ -1,14 +1,1802 @@ -# eurlex +# afex
-* Version: 0.4.1 +* Version: 1.1-1 +* GitHub: https://github.com/singmann/afex +* Source code: https://github.com/cran/afex +* Date/Publication: 2022-04-29 23:30:07 UTC +* Number of recursive dependencies: 210 + +Run `cloud_details(, "afex")` for more info + +
+ +## Newly broken + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘afex_analysing_accuracy_data.Rmd’ using rmarkdown + Loading required package: lme4 + Loading required package: Matrix + ************ + Welcome to afex. For support visit: http://afex.singmann.science/ + - Functions for ANOVAs: aov_car(), aov_ez(), and aov_4() + - Methods for calculating p-values with mixed(): 'S', 'KR', 'LRT', and 'PB' + - 'afex_aov' and 'mixed' objects can be passed to emmeans() for follow-up tests + - NEWS: emmeans() for ANOVA models now uses model = 'multivariate' as default. + ... + --- finished re-building ‘assumptions_of_ANOVAs.Rmd’ + + --- re-building ‘introduction-mixed-models.pdf.asis’ using asis + --- finished re-building ‘introduction-mixed-models.pdf.asis’ + + SUMMARY: processing the following file failed: + ‘afex_plot_introduction.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# antaresViz + +
+ +* Version: 0.17 +* GitHub: https://github.com/rte-antares-rpackage/antaresViz +* Source code: https://github.com/cran/antaresViz +* Date/Publication: 2021-11-24 09:20:02 UTC +* Number of recursive dependencies: 162 + +Run `cloud_details(, "antaresViz")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + Backtrace: + ▆ + 1. └─antaresViz::plotXY(dta, "NODU", "LOAD", precision = 50, sizeOnCount = FALSE) at test-plotXY.R:7:4 + 2. ├─plotly::ggplotly(p) + 3. └─plotly:::ggplotly.ggplot(p) + 4. └─plotly::gg2list(...) + 5. └─plotly:::layers2traces(data, prestats_data, layout, plot) + 6. ├─plotly::to_basic(...) + 7. └─plotly:::to_basic.GeomHex(...) + 8. ├─base::`$<-`(`*tmp*`, "size", value = ``) + 9. └─base::`$<-.data.frame`(`*tmp*`, "size", value = ``) + + [ FAIL 1 | WARN 2 | SKIP 13 | PASS 301 ] + Error: Test failures + Execution halted + ``` + +# bayesplot + +
+ +* Version: 1.9.0 +* GitHub: https://github.com/stan-dev/bayesplot +* Source code: https://github.com/cran/bayesplot +* Date/Publication: 2022-03-10 11:20:23 UTC +* Number of recursive dependencies: 127 + +Run `cloud_details(, "bayesplot")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + vline_at(c(3, 4), na.rm = FALSE) not equal to geom_vline(xintercept = c(3, 4)). + Component "constructor": target, current do not match when deparsed + ── Failure ('test-convenience-functions.R:30'): vline_* and hline_* return correct objects ── + hline_at(c(3, 4), na.rm = FALSE) not equal to geom_hline(yintercept = c(3, 4)). + Component "constructor": target, current do not match when deparsed + ── Failure ('test-convenience-functions.R:38'): vline_at with 'fun' works ────── + vline_at(x, colMeans) not equal to geom_vline(xintercept = colMeans(x), na.rm = TRUE). + Component "constructor": target, current do not match when deparsed + ── Failure ('test-convenience-functions.R:185'): overlay_function returns the correct object ── + overlay_function(fun = "dnorm") not equal to stat_function(fun = "dnorm", inherit.aes = FALSE). + Component "constructor": target, current do not match when deparsed + + [ FAIL 8 | WARN 23 | SKIP 49 | PASS 982 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 6.4Mb + sub-directories of 1Mb or more: + R 1.9Mb + doc 3.8Mb + ``` + +# bigsnpr + +
+ +* Version: 1.11.4 +* GitHub: https://github.com/privefl/bigsnpr +* Source code: https://github.com/cran/bigsnpr +* Date/Publication: 2022-10-21 16:05:07 UTC +* Number of recursive dependencies: 148 + +Run `cloud_details(, "bigsnpr")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘spelling.R’ + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 3: Mean relative difference: 0.2645228 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 4: Mean relative difference: 1.38146 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 19: Mean relative difference: 0.6696528 + ── Failure ('test-4-manhattan.R:22'): snp_manhattan() works with unordered data ── + snp_manhattan(gwas, as.character(CHR), POS, npoints = 500) not equal to snp_manhattan(...). + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Attributes: < Component "row.names": Mean relative difference: 0.6696528 > + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 1: Mean relative difference: 1.396094 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 2: Mean relative difference: 0.194434 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 3: Mean relative difference: 0.2645228 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 9: Component 4: Mean relative difference: 1.38146 + Component "layers": Component 1: Component 12: Component 5: Component 21: Component 19: Mean relative difference: 0.6696528 + + [ FAIL 3 | WARN 0 | SKIP 0 | PASS 75 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 20.8Mb + sub-directories of 1Mb or more: + libs 19.4Mb + ``` + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘runonce’ + All declared Imports should be used. + ``` + +# chronochrt + +
+ +* Version: 0.1.1 +* GitHub: NA +* Source code: https://github.com/cran/chronochrt +* Date/Publication: 2022-06-07 21:40:05 UTC +* Number of recursive dependencies: 94 + +Run `cloud_details(, "chronochrt")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘chronochrt-Ex.R’ failed + The error most likely occurred in: + + > ### Name: geom_chronochRt + > ### Title: A chronological chart + > ### Aliases: geom_chronochRt + > + > ### ** Examples + > + > + ... + 18. │ └─ggplot2 (local) FUN(X[[i]], ...) + 19. │ ├─rlang::inject(self$draw_panel(data, panel_params, coord, !!!params)) + 20. │ └─self$draw_panel(data, panel_params, coord, minimal = FALSE, year_lim = NULL) + 21. │ └─chronochrt (local) draw_panel(...) + 22. └─base::.handleSimpleError(...) + 23. └─rlang (local) h(simpleError(msg, call)) + 24. └─handlers[[1L]](cnd) + 25. └─cli::cli_abort(...) + 26. └─rlang::abort(...) + Execution halted + ``` + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + 39. └─handlers[[1L]](cnd) + 40. └─cli::cli_abort(...) + 41. └─rlang::abort(...) + Warning messages: + 1: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0. + ℹ Please use `"xmax_uncorr"` instead of `.data$xmax_uncorr` + 2: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0. + ℹ Please use `"start"` instead of `.data$start` + 3: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0. + ℹ Please use `"end"` instead of `.data$end` + 4: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0. + ℹ Please use `"boundary_start"` instead of `.data$boundary_start` + 5: Use of .data in tidyselect expressions was deprecated in tidyselect 1.2.0. + ℹ Please use `"boundary_end"` instead of `.data$boundary_end` + Execution halted + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘ChronochRt.Rmd’ using rmarkdown + Scale for x is already present. + Adding another scale for x, which will replace the existing scale. + Quitting from lines 67-73 (ChronochRt.Rmd) + Error: processing vignette 'ChronochRt.Rmd' failed with diagnostics: + Problem while converting geom to grob. + ℹ Error occurred in the 1st layer. + Caused by error in `draw_panel()`: + ! object 'new_data_frame' not found + ... + ℹ Error occurred in the 1st layer. + Caused by error in `draw_panel()`: + ! object 'new_data_frame' not found + --- failed re-building ‘Examples.Rmd’ + + SUMMARY: processing the following files failed: + ‘ChronochRt.Rmd’ ‘Examples.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# coveffectsplot + +
+ +* Version: 1.0.2 +* GitHub: https://github.com/smouksassi/coveffectsplot +* Source code: https://github.com/cran/coveffectsplot +* Date/Publication: 2022-05-30 10:50:02 UTC +* Number of recursive dependencies: 128 + +Run `cloud_details(, "coveffectsplot")` for more info + +
+ +## Newly broken + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘Exposure_Response_Example.Rmd’ using rmarkdown + Building exprespmodel ... done. + Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0. + ℹ Please use `linewidth` instead. + Warning: The dot-dot notation (`..quantile..`) was deprecated in ggplot2 3.4.0. + ℹ Please use `after_stat(quantile)` instead. + Picking joint bandwidth of 0.015 + Picking joint bandwidth of 0.015 + Warning: Using the `size` aesthietic with geom_segment was deprecated in ggplot2 3.4.0. + ... + Picking joint bandwidth of 0.0248 + Warning: `aes_string()` was deprecated in ggplot2 3.0.0. + ℹ Please use tidy evaluation ideoms with `aes()` + --- finished re-building ‘introduction_to_coveffectsplot.Rmd’ + + SUMMARY: processing the following file failed: + ‘Pediatric_Cov_Sim.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘colourpicker’ + All declared Imports should be used. + ``` + +# dataquieR + +
+ +* Version: 1.0.11 +* GitHub: NA +* Source code: https://github.com/cran/dataquieR +* Date/Publication: 2022-10-11 14:32:33 UTC +* Number of recursive dependencies: 134 + +Run `cloud_details(, "dataquieR")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + • int_datatype_matrix/intdtv30000.svg + • int_datatype_matrix/intdtv40000.svg + • int_datatype_matrix/intdtv50000.svg + • int_datatype_matrix/integrity-datatype.svg + • print/app-ex-repsumtab.svg + • print/im-empty-repsumtab.svg + • print/im-ex1-repsumtab.svg + • print/im-ex2-repsumtab.svg + • pro_applicability_matrix/appmatrix-plot-for-segment-v10000-ok.svg + • pro_applicability_matrix/appmatrix-plot-ok.svg + • util_heatmap_1th/util-heatmap-1th-1.svg + • util_heatmap_1th/util-heatmap-1th-2.svg + • util_heatmap_1th/util-heatmap-1th-3.svg + Error: Test failures + Execution halted + ``` + +# deeptime + +
+ +* Version: 0.2.3 +* GitHub: https://github.com/willgearty/deeptime +* Source code: https://github.com/cran/deeptime +* Date/Publication: 2022-09-20 21:00:02 UTC +* Number of recursive dependencies: 175 + +Run `cloud_details(, "deeptime")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# docxtools + +
+ +* Version: 0.2.2 +* GitHub: https://github.com/graphdr/docxtools +* Source code: https://github.com/cran/docxtools +* Date/Publication: 2020-06-03 18:40:03 UTC +* Number of recursive dependencies: 79 + +Run `cloud_details(, "docxtools")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > library(docxtools) + > + > test_check("docxtools") + [ FAIL 1 | WARN 3 | SKIP 0 | PASS 22 ] + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test_put.R:21'): put_axes() attributes match expectations ───────── + p$layers[[1]]$geom$non_missing_aes not identical to c("linetype", "size", "shape"). + 1/3 mismatches + x[2]: "linewidth" + y[2]: "size" + + [ FAIL 1 | WARN 3 | SKIP 0 | PASS 22 ] + Error: Test failures + Execution halted + ``` + +# DriveML + +
+ +* Version: 0.1.4 +* GitHub: https://github.com/daya6489/DriveML +* Source code: https://github.com/cran/DriveML +* Date/Publication: 2021-10-18 11:10:01 UTC +* Number of recursive dependencies: 117 + +Run `cloud_details(, "DriveML")` for more info + +
+ +## Newly broken + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + ... + --- re-building ‘DriveML.Rmd’ using rmarkdown + Quitting from lines 329-331 (DriveML.Rmd) + Error: processing vignette 'DriveML.Rmd' failed with diagnostics: + Problem while converting geom to grob. + ℹ Error occurred in the 1st layer. + Caused by error in `new_data_frame()`: + ! `n` must be an integer of size 1. + --- failed re-building ‘DriveML.Rmd’ + + SUMMARY: processing the following file failed: + ‘DriveML.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 8 marked UTF-8 strings + ``` + +# evaluate + +
+ +* Version: 0.17 +* GitHub: https://github.com/r-lib/evaluate +* Source code: https://github.com/cran/evaluate +* Date/Publication: 2022-10-07 15:00:07 UTC +* Number of recursive dependencies: 55 + +Run `cloud_details(, "evaluate")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘test-all.R’ + Running the tests in ‘tests/test-all.R’ failed. + Last 13 lines of output: + > + > if (require("testthat", quietly = TRUE)) test_check("evaluate") + [ FAIL 1 | WARN 0 | SKIP 1 | PASS 60 ] + + ══ Skipped tests ═══════════════════════════════════════════════════════════════ + • empty test (1) + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test-evaluate.r:77'): return value of value handler inserted directly in output list ── + classes(ev) not equal to c("source", "numeric", "source", "source", "source", "gg"). + Lengths differ: 7 is not 6 + + [ FAIL 1 | WARN 0 | SKIP 1 | PASS 60 ] + Error: Test failures + Execution halted + ``` + +# fdistr + +
+ +* Version: 0.1.0 +* GitHub: https://github.com/dtminnick/fdistr +* Source code: https://github.com/cran/fdistr +* Date/Publication: 2019-12-02 14:30:06 UTC +* Number of recursive dependencies: 83 + +Run `cloud_details(, "fdistr")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > library(fdistr) + > + > test_check("fdistr") + [ FAIL 1 | WARN 1 | SKIP 0 | PASS 13 ] + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Error ('test_create_pareto.R:7'): (code run outside of `test_that()`) ─────── + Error in `create_pareto(table)`: object 'g' not found + Backtrace: + ▆ + 1. └─fdistr::create_pareto(table) at test_create_pareto.R:7:0 + + [ FAIL 1 | WARN 1 | SKIP 0 | PASS 13 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘usethis’ ‘utils’ + All declared Imports should be used. + ``` + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 1 marked Latin-1 string + ``` + +# ggbeeswarm + +
+ +* Version: 0.6.0 +* GitHub: https://github.com/eclarke/ggbeeswarm +* Source code: https://github.com/cran/ggbeeswarm +* Date/Publication: 2017-08-07 13:45:36 UTC +* Number of recursive dependencies: 32 + +Run `cloud_details(, "ggbeeswarm")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggbeeswarm-Ex.R’ failed + The error most likely occurred in: + + > ### Name: position_beeswarm + > ### Title: Violin point-style plots to show overlapping points. x must be + > ### discrete. + > ### Aliases: position_beeswarm + > + > ### ** Examples + > + ... + Error: + ! The `position` argument of `qplot()` was deprecated in ggplot2 2.0.0 + and is now defunct. + Backtrace: + ▆ + 1. └─ggplot2::qplot(class, hwy, data = ggplot2::mpg, position = position_beeswarm()) + 2. └─lifecycle::deprecate_stop("2.0.0", "qplot(position)") + 3. └─lifecycle:::deprecate_stop0(msg) + 4. └─rlang::cnd_signal(...) + Execution halted + ``` + +## In both + +* checking re-building of vignette outputs ... NOTE + ``` + Error(s) in re-building vignettes: + ... + --- re-building ‘usageExamples.Rnw’ using Sweave + Loading required package: ggplot2 + Error: processing vignette 'usageExamples.Rnw' failed with diagnostics: + Running 'texi2dvi' on 'usageExamples.tex' failed. + LaTeX errors: + ! LaTeX Error: File `ae.sty' not found. + + Type X to quit or to proceed, + ... + l.55 \RequirePackage + [T1]{fontenc}^^M + ! ==> Fatal error occurred, no output PDF file produced! + --- failed re-building ‘usageExamples.Rnw’ + + SUMMARY: processing the following file failed: + ‘usageExamples.Rnw’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# ggconf + +
+ +* Version: 0.1.3 +* GitHub: https://github.com/caprice-j/ggconf +* Source code: https://github.com/cran/ggconf +* Date/Publication: 2018-04-08 17:44:46 UTC +* Number of recursive dependencies: 60 + +Run `cloud_details(, "ggconf")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggconf-Ex.R’ failed + The error most likely occurred in: + + > ### Name: theme2 + > ### Title: an enhanced version of ggplot2::theme() + > ### Aliases: theme2 + > + > ### ** Examples + > + > + ... + + + + ggplot(mtcars) + geom_point(aes(wt, hp, color=cyl)) + + + theme2(txt(sz=20, f="bold"), aline(sz=2), l.key(c="black")) + + + + + + + + } + Error in ggplot2::element_line(fill = 1) : unused argument (fill = 1) + Calls: theme2 ... exec_ggconf -> eval -> eval -> -> find_args -> mget + Execution halted + ``` + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + ── Error ('test-theme2.R:37'): theme2 ────────────────────────────────────────── + Error in `ggplot2::element_line(fill = 1)`: unused argument (fill = 1) + Backtrace: + ▆ + 1. └─ggconf::theme2(...) at test-theme2.R:37:4 + 2. └─ggconf:::exec_ggconf(...) + 3. ├─base::eval(parse(text = ggobj_verbose)) + 4. │ └─base::eval(parse(text = ggobj_verbose)) + 5. └─ggplot2::theme(...) + 6. └─ggplot2:::find_args(..., complete = NULL, validate = NULL) + 7. └─base::mget(args, envir = env) + + [ FAIL 1 | WARN 0 | SKIP 0 | PASS 33 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +# ggdag + +
+ +* Version: 0.2.6 +* GitHub: https://github.com/malcolmbarrett/ggdag +* Source code: https://github.com/cran/ggdag +* Date/Publication: 2022-08-26 21:34:37 UTC +* Number of recursive dependencies: 101 + +Run `cloud_details(, "ggdag")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggdag-Ex.R’ failed + The error most likely occurred in: + + > ### Name: Pathways + > ### Title: Find Open Paths Between Variables + > ### Aliases: Pathways dag_paths ggdag_paths ggdag_paths_fan + > + > ### ** Examples + > + > confounder_triangle(x_y_associated = TRUE) %>% + ... + 29. └─vctrs:::vec_ptype2.factor.ordered(...) + 30. └─vctrs::vec_default_ptype2(x, y, ...) + 31. ├─base::withRestarts(...) + 32. │ └─base (local) withOneRestart(expr, restarts[[1L]]) + 33. │ └─base (local) doWithOneRestart(return(expr), restart) + 34. └─vctrs::stop_incompatible_type(...) + 35. └─vctrs:::stop_incompatible(...) + 36. └─vctrs:::stop_vctrs(...) + 37. └─rlang::abort(message, class = c(class, "vctrs_error"), ..., call = vctrs_error_call(call)) + Execution halted + ``` + +* checking tests ... ERROR + ``` + Running ‘spelling.R’ + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + • geom_dag/geom-dag-edges-fan-is-fany.svg + • geom_dag/geom-dag-label-repel-repels-labels.svg + • ggdag/ggdag-classic-plots-basic-dag-classically.svg + • paths/ggdag-paths-fan-draws-4-open-paths.svg + • quick_plots/ggdag-butterfly-bias-is-a-butterfly.svg + • quick_plots/ggdag-collider-triangle-is-triangle-too.svg + • quick_plots/ggdag-confounder-triangle-is-triangle.svg + • relations/ggdag-ancestors-identifies-v-w1-and-z1.svg + • relations/ggdag-descendants-identifies-y-x-and-z1.svg + • relations/ggdag-parents-identifies-z2-x-w1-and-w2.svg + • themes/theme-dag-gray-grid.svg + • themes/theme-dag-gray.svg + • themes/theme-dag-grid.svg + Error: Test failures + Execution halted + ``` + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘bias-structures.Rmd’ using rmarkdown + + Attaching package: 'ggdag' + + The following object is masked from 'package:stats': + + filter + + --- finished re-building ‘bias-structures.Rmd’ + ... + Quitting from lines 110-111 (intro-to-ggdag.Rmd) + Error: processing vignette 'intro-to-ggdag.Rmd' failed with diagnostics: + Can't combine `..1$forcats::fct_inorder(as.factor(set), ordered = TRUE)` > and `..3$forcats::fct_inorder(as.factor(set), ordered = TRUE)` >. + --- failed re-building ‘intro-to-ggdag.Rmd’ + + SUMMARY: processing the following files failed: + ‘intro-to-dags.Rmd’ ‘intro-to-ggdag.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# ggetho + +
+ +* Version: 0.3.6 +* GitHub: https://github.com/rethomics/ggetho +* Source code: https://github.com/cran/ggetho +* Date/Publication: 2020-04-29 19:30:02 UTC +* Number of recursive dependencies: 83 + +Run `cloud_details(, "ggetho")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +## In both + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +# ggfun + +
+ +* Version: 0.0.7 +* GitHub: NA +* Source code: https://github.com/cran/ggfun +* Date/Publication: 2022-08-31 06:30:02 UTC +* Number of recursive dependencies: 61 + +Run `cloud_details(, "ggfun")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# gghalves + +
+ +* Version: 0.1.3 +* GitHub: https://github.com/erocoar/gghalves +* Source code: https://github.com/cran/gghalves +* Date/Publication: 2022-05-30 10:10:08 UTC +* Number of recursive dependencies: 52 + +Run `cloud_details(, "gghalves")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘gghalves-Ex.R’ failed + The error most likely occurred in: + + > ### Name: geom_half_boxplot + > ### Title: A half boxplot + > ### Aliases: geom_half_boxplot + > + > ### ** Examples + > + > ggplot(iris, aes(x = Species, y = Petal.Width, fill = Species)) + + ... + 24. │ └─self$draw_group(group, panel_params, coord, ...) + 25. │ └─gghalves (local) draw_group(...) + 26. │ └─base::data.frame(...) + 27. │ └─base::stop(...) + 28. └─base::.handleSimpleError(...) + 29. └─rlang (local) h(simpleError(msg, call)) + 30. └─handlers[[1L]](cnd) + 31. └─cli::cli_abort(...) + 32. └─rlang::abort(...) + Execution halted + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + ... + --- re-building ‘gghalves.Rmd’ using rmarkdown + Quitting from lines 66-69 (gghalves.Rmd) + Error: processing vignette 'gghalves.Rmd' failed with diagnostics: + Problem while converting geom to grob. + ℹ Error occurred in the 1st layer. + Caused by error in `data.frame()`: + ! arguments imply differing number of rows: 1, 0 + --- failed re-building ‘gghalves.Rmd’ + + SUMMARY: processing the following file failed: + ‘gghalves.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘grDevices’ ‘gtable’ + All declared Imports should be used. + ``` + +# ggip + +
+ +* Version: 0.2.2 +* GitHub: https://github.com/davidchall/ggip +* Source code: https://github.com/cran/ggip +* Date/Publication: 2022-09-29 06:00:02 UTC +* Number of recursive dependencies: 72 + +Run `cloud_details(, "ggip")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > test_check("ggip") + [ FAIL 2 | WARN 21 | SKIP 5 | PASS 92 ] + + ══ Skipped tests ═══════════════════════════════════════════════════════════════ + • On CRAN (5) + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test-geom-hilbert-outline.R:89'): networks outside 2D grid raise warning ── + `layer_grob(p + geom_hilbert_outline(na.rm = TRUE))` produced warnings. + ── Failure ('test-geom-hilbert-outline.R:99'): networks without outline are silently ignored ── + `layer_grob(p)` produced warnings. + + [ FAIL 2 | WARN 21 | SKIP 5 | PASS 92 ] + Error: Test failures + Execution halted + ``` + +# ggiraph + +
+ +* Version: 0.8.3 +* GitHub: https://github.com/davidgohel/ggiraph +* Source code: https://github.com/cran/ggiraph +* Date/Publication: 2022-08-19 11:00:14 UTC +* Number of recursive dependencies: 88 + +Run `cloud_details(, "ggiraph")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggiraph-Ex.R’ failed + The error most likely occurred in: + + > ### Name: annotate_interactive + > ### Title: Create interactive annotations + > ### Aliases: annotate_interactive + > + > ### ** Examples + > + > # add interactive annotation to a ggplot ------- + ... + 30. │ └─grid:::validGP(list(...)) + 31. │ └─grid (local) numnotnull("lwd") + 32. │ └─grid (local) check.length(gparname) + 33. │ └─base::stop(...) + 34. └─base::.handleSimpleError(...) + 35. └─rlang (local) h(simpleError(msg, call)) + 36. └─handlers[[1L]](cnd) + 37. └─cli::cli_abort(...) + 38. └─rlang::abort(...) + Execution halted + ``` + +* checking tests ... ERROR + ``` + Running ‘tinytest.R’ + Running the tests in ‘tests/tinytest.R’ failed. + Last 13 lines of output: + 37. │ └─ggplot2 (local) FUN(X[[i]], ...) + 38. │ └─ggplot2 (local) apply_fun(cur_data) + 39. │ └─ggiraph (local) fun(x, ...) + 40. │ ├─ggiraph:::new_data_frame(...) + 41. │ ├─base::nrow(unique(df[, c("alpha", "colour", "size", "linetype")])) + 42. │ ├─base::unique(df[, c("alpha", "colour", "size", "linetype")]) + 43. │ ├─df[, c("alpha", "colour", "size", "linetype")] + 44. │ └─base::`[.data.frame`(df, , c("alpha", "colour", "size", "linetype")) + 45. │ └─base::stop("undefined columns selected") + 46. └─base::.handleSimpleError(...) + 47. └─rlang (local) h(simpleError(msg, call)) + 48. └─handlers[[1L]](cnd) + 49. └─cli::cli_abort(...) + 50. └─rlang::abort(...) + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 10.7Mb + sub-directories of 1Mb or more: + libs 8.9Mb + ``` + +# ggiraphExtra + +
+ +* Version: 0.3.0 +* GitHub: https://github.com/cardiomoon/ggiraphExtra +* Source code: https://github.com/cran/ggiraphExtra +* Date/Publication: 2020-10-06 07:00:02 UTC +* Number of recursive dependencies: 101 + +Run `cloud_details(, "ggiraphExtra")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggiraphExtra-Ex.R’ failed + The error most likely occurred in: + + > ### Name: ggAncova + > ### Title: Make an interactive plot for an ANCOVA model + > ### Aliases: ggAncova ggAncova.default ggAncova.formula ggAncova.lm + > + > ### ** Examples + > + > require(moonBook) + ... + 26. │ ├─rlang::inject(self$draw_panel(data, panel_params, coord, !!!params)) + 27. │ └─self$draw_panel(...) + 28. │ └─ggiraph (local) draw_panel(...) + 29. │ └─ggplot2:::dapply(...) + 30. └─base::.handleSimpleError(...) + 31. └─rlang (local) h(simpleError(msg, call)) + 32. └─handlers[[1L]](cnd) + 33. └─cli::cli_abort(...) + 34. └─rlang::abort(...) + Execution halted + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘ggPredict.Rmd’ using rmarkdown + Loading required package: ggplot2 + `geom_smooth()` using formula = 'y ~ x' + Loading required package: ggiraph + Loading required package: ggiraphExtra + + Attaching package: 'ggiraphExtra' + + The following objects are masked from 'package:moonBook': + ... + ℹ Error occurred in the 3rd layer. + Caused by error in `rbind_dfs()`: + ! could not find function "rbind_dfs" + --- failed re-building ‘introduction.Rmd’ + + SUMMARY: processing the following files failed: + ‘ggPredict.Rmd’ ‘introduction.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# gglgbtq + +
+ +* Version: 0.1.0 +* GitHub: https://github.com/turtletopia/gglgbtq +* Source code: https://github.com/cran/gglgbtq +* Date/Publication: 2022-08-16 09:00:05 UTC +* Number of recursive dependencies: 57 + +Run `cloud_details(, "gglgbtq")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# ggmap + +
+ +* Version: 3.0.0 +* GitHub: https://github.com/dkahle/ggmap +* Source code: https://github.com/cran/ggmap +* Date/Publication: 2019-02-05 10:19:04 +* Number of recursive dependencies: 69 + +Run `cloud_details(, "ggmap")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# ggmulti + +
+ +* Version: 1.0.5 +* GitHub: NA +* Source code: https://github.com/cran/ggmulti +* Date/Publication: 2022-10-08 15:30:05 UTC +* Number of recursive dependencies: 120 + +Run `cloud_details(, "ggmulti")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggmulti-Ex.R’ failed + The error most likely occurred in: + + > ### Name: geom_hist_ + > ### Title: More general histogram + > ### Aliases: geom_hist_ geom_histogram_ geom_bar_ stat_hist_ stat_bin_ + > ### stat_count_ + > + > ### ** Examples + > + ... + 14. └─ggplot2 (local) f(l = layers[[i]], d = data[[i]]) + 15. └─l$compute_statistic(d, layout) + 16. └─ggplot2 (local) compute_statistic(..., self = self) + 17. └─self$stat$setup_params(data, self$stat_params) + 18. └─ggmulti (local) setup_params(..., self = self) + 19. └─ggplot2::ggproto_parent(ggplot2::StatBin, self)$setup_params(...) + 20. └─ggplot2 (local) setup_params(..., self = self) + 21. └─cli::cli_abort(...) + 22. └─rlang::abort(...) + Execution halted + ``` + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# ggprism + +
+ +* Version: 1.0.3 +* GitHub: https://github.com/csdaw/ggprism +* Source code: https://github.com/cran/ggprism +* Date/Publication: 2021-06-08 11:40:02 UTC +* Number of recursive dependencies: 104 + +Run `cloud_details(, "ggprism")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggprism’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggprism/new/ggprism.Rcheck/00install.out’ for details. + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggprism’ ... +** package ‘ggprism’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'new_data_frame' not found +Error: unable to load R code in package ‘ggprism’ +Execution halted +ERROR: lazy loading failed for package ‘ggprism’ +* removing ‘/tmp/workdir/ggprism/new/ggprism.Rcheck/ggprism’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggprism’ ... +** package ‘ggprism’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +*** moving datasets to lazyload DB +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +*** copying figures +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggprism) + + +``` +# ggpubr + +
+ +* Version: 0.4.0 +* GitHub: https://github.com/kassambara/ggpubr +* Source code: https://github.com/cran/ggpubr +* Date/Publication: 2020-06-27 06:20:02 UTC +* Number of recursive dependencies: 84 + +Run `cloud_details(, "ggpubr")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘ggpubr-Ex.R’ failed + The error most likely occurred in: + + > ### Name: stat_conf_ellipse + > ### Title: Plot confidence ellipses. + > ### Aliases: stat_conf_ellipse + > + > ### ** Examples + > + > # Load data + ... + 9. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) + 10. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) + 11. │ └─base::withCallingHandlers(...) + 12. └─ggplot2 (local) f(l = layers[[i]], d = data[[i]]) + 13. └─l$compute_geom_1(d) + 14. └─ggplot2 (local) compute_geom_1(..., self = self) + 15. └─ggplot2:::check_required_aesthetics(...) + 16. └─cli::cli_abort(message, call = call) + 17. └─rlang::abort(...) + Execution halted + ``` + +# ggshadow + +
+ +* Version: 0.0.2 +* GitHub: https://github.com/marcmenem/ggshadow +* Source code: https://github.com/cran/ggshadow +* Date/Publication: 2021-01-22 08:50:03 UTC +* Number of recursive dependencies: 49 + +Run `cloud_details(, "ggshadow")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggshadow’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggshadow/new/ggshadow.Rcheck/00install.out’ for details. + ``` + +## Newly fixed + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggshadow’ ... +** package ‘ggshadow’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'new_data_frame' not found +Error: unable to load R code in package ‘ggshadow’ +Execution halted +ERROR: lazy loading failed for package ‘ggshadow’ +* removing ‘/tmp/workdir/ggshadow/new/ggshadow.Rcheck/ggshadow’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggshadow’ ... +** package ‘ggshadow’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** installing vignettes +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggshadow) + + +``` +# ggstance + +
+ +* Version: 0.3.5 +* GitHub: https://github.com/lionel-/ggstance +* Source code: https://github.com/cran/ggstance +* Date/Publication: 2020-12-17 19:40:02 UTC +* Number of recursive dependencies: 90 + +Run `cloud_details(, "ggstance")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +## In both + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +# ggstar + +
+ +* Version: 1.0.3 +* GitHub: https://github.com/xiangpin/ggstar +* Source code: https://github.com/cran/ggstar +* Date/Publication: 2021-12-03 05:30:02 UTC +* Number of recursive dependencies: 54 + +Run `cloud_details(, "ggstar")` for more info + +
+ +## Newly broken + +* checking dependencies in R code ... WARNING + ``` + '::' or ':::' import not declared from: ‘cli’ + ``` + +# ggtern + +
+ +* Version: 3.3.5 * GitHub: NA -* Source code: https://github.com/cran/eurlex -* Date/Publication: 2022-03-31 21:00:02 UTC -* Number of recursive dependencies: 96 +* Source code: https://github.com/cran/ggtern +* Date/Publication: 2021-07-23 05:20:02 UTC +* Number of recursive dependencies: 43 + +Run `cloud_details(, "ggtern")` for more info + +
+ +## Newly broken + +* checking whether package ‘ggtern’ can be installed ... ERROR + ``` + Installation failed. + See ‘/tmp/workdir/ggtern/new/ggtern.Rcheck/00install.out’ for details. + ``` + +## Newly fixed + +* checking dependencies in R code ... NOTE + ``` + Namespace in Imports field not imported from: ‘hexbin’ + All declared Imports should be used. + ``` + +* checking Rd cross-references ... NOTE + ``` + Package unavailable to check Rd xrefs: ‘chemometrics’ + ``` + +## In both + +* checking package dependencies ... NOTE + ``` + Package which this enhances but not available for checking: ‘sp’ + ``` + +## Installation + +### Devel + +``` +* installing *source* package ‘ggtern’ ... +** package ‘ggtern’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +** demo +** inst +** byte-compile and prepare package for lazy loading +Error in get(x, envir = ns, inherits = FALSE) : + object 'message_wrap' not found +Error: unable to load R code in package ‘ggtern’ +Execution halted +ERROR: lazy loading failed for package ‘ggtern’ +* removing ‘/tmp/workdir/ggtern/new/ggtern.Rcheck/ggtern’ + + +``` +### CRAN + +``` +* installing *source* package ‘ggtern’ ... +** package ‘ggtern’ successfully unpacked and MD5 sums checked +** using staged installation +** R +** data +** demo +** inst +** byte-compile and prepare package for lazy loading +** help +*** installing help indices +** building package indices +** testing if installed package can be loaded from temporary location +** testing if installed package can be loaded from final location +** testing if installed package keeps a record of temporary installation path +* DONE (ggtern) + + +``` +# iheiddown + +
+ +* Version: 0.9.5 +* GitHub: https://github.com/jhollway/iheiddown +* Source code: https://github.com/cran/iheiddown +* Date/Publication: 2022-09-27 07:50:09 UTC +* Number of recursive dependencies: 148 + +Run `cloud_details(, "iheiddown")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > test_check("iheiddown") + [ FAIL 1 | WARN 1 | SKIP 2 | PASS 33 ] + + ══ Skipped tests ═══════════════════════════════════════════════════════════════ + • On CRAN (1) + • On Linux (1) + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test-theme.R:28'): theme_iheid() grid is correct ────────────────── + p[["theme"]][["panel.grid"]][["size"]] not identical to 0.2. + target is NULL, current is numeric + + [ FAIL 1 | WARN 1 | SKIP 2 | PASS 33 ] + Error: Test failures + Execution halted + ``` + +# inTextSummaryTable + +
+ +* Version: 3.2.0 +* GitHub: https://github.com/openanalytics/inTextSummaryTable +* Source code: https://github.com/cran/inTextSummaryTable +* Date/Publication: 2022-10-01 07:40:02 UTC +* Number of recursive dependencies: 99 + +Run `cloud_details(, "inTextSummaryTable")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + > + > test_check("inTextSummaryTable") + [ FAIL 1 | WARN 4 | SKIP 0 | PASS 978 ] + + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Error ('test_subjectProfileSummaryPlot-theme.R:39'): The line size is correctly set ── + Error in `expect_setequal(ggDataLine$size, sizeLine)`: `object` and `expected` must both be vectors + Backtrace: + ▆ + 1. └─testthat::expect_setequal(ggDataLine$size, sizeLine) at test_subjectProfileSummaryPlot-theme.R:39:8 + 2. └─rlang::abort("`object` and `expected` must both be vectors") + + [ FAIL 1 | WARN 4 | SKIP 0 | PASS 978 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 10.3Mb + sub-directories of 1Mb or more: + doc 9.7Mb + ``` + +# jjAnno + +
+ +* Version: 0.0.3 +* GitHub: https://github.com/junjunlab/jjAnno +* Source code: https://github.com/cran/jjAnno +* Date/Publication: 2022-08-23 08:30:08 UTC +* Number of recursive dependencies: 59 + +Run `cloud_details(, "jjAnno")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘jjAnno-Ex.R’ failed + The error most likely occurred in: + + > ### Name: annoRect + > ### Title: annoRect + > ### Aliases: annoRect + > + > ### ** Examples + > + > # =============================== + ... + 11. └─base::lapply(...) + 12. └─ggplot2 (local) FUN(X[[i]], ...) + 13. └─base::lapply(...) + 14. └─ggplot2 (local) FUN(X[[i]], ...) + 15. └─scales[[i]][[method]](data[[var]][scale_index[[i]]]) + 16. └─ggplot2 (local) map(..., self = self) + 17. └─ggplot2:::new_mapped_discrete(x) + 18. └─vctrs::vec_assert(as.vector(x), double()) + 19. └─rlang::abort(...) + Execution halted + ``` + +# lemon + +
+ +* Version: 0.4.5 +* GitHub: https://github.com/stefanedwards/lemon +* Source code: https://github.com/cran/lemon +* Date/Publication: 2020-06-08 09:10:03 UTC +* Number of recursive dependencies: 69 + +Run `cloud_details(, "lemon")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘lemon-Ex.R’ failed + The error most likely occurred in: + + > ### Name: annotate_y_axis + > ### Title: Annotations in the axis + > ### Aliases: annotate_y_axis annotate_x_axis + > + > ### ** Examples + > + > library(ggplot2) + ... + CoordCartesian, element_render + + > + > p <- ggplot(mtcars, aes(mpg, hp, colour=disp)) + geom_point() + > + > l <- p + annotate_y_axis('mark at', y=200, tick=TRUE) + > l + Error in if (is.primary) { : argument is of length zero + Calls: ... -> draw -> -> get_annotations + Execution halted + ``` + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + 1. ├─testthat::expect_error(...) at test_lemon_plot.r:12:2 + 2. │ └─testthat:::quasi_capture(...) + 3. │ ├─testthat (local) .capture(...) + 4. │ │ └─base::withCallingHandlers(...) + 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) + 6. └─ggplot2:::`+.gg`(l, 1) + 7. └─ggplot2:::add_ggplot(e1, e2, e2name) + 8. ├─ggplot2::ggplot_add(object, p, objectname) + 9. └─ggplot2:::ggplot_add.default(object, p, objectname) + 10. └─cli::cli_abort("Can't add {.var {object_name}} to a {.cls ggplot} object.") + 11. └─rlang::abort(...) + + [ FAIL 1 | WARN 0 | SKIP 0 | PASS 137 ] + Error: Test failures + Execution halted + ``` + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘capped-axes.Rmd’ using rmarkdown + Quitting from lines 61-62 (capped-axes.Rmd) + Error: processing vignette 'capped-axes.Rmd' failed with diagnostics: + argument is of length zero + --- failed re-building ‘capped-axes.Rmd’ + + --- re-building ‘facet-rep-labels.Rmd’ using rmarkdown + Quitting from lines 38-42 (facet-rep-labels.Rmd) + Error: processing vignette 'facet-rep-labels.Rmd' failed with diagnostics: + ... + + ```{r %s} + ' + --- finished re-building ‘lemon_print.Rmd’ + + SUMMARY: processing the following files failed: + ‘capped-axes.Rmd’ ‘facet-rep-labels.Rmd’ ‘legends.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +## In both + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +# lingtypology + +
+ +* Version: 1.1.9 +* GitHub: https://github.com/ropensci/lingtypology +* Source code: https://github.com/cran/lingtypology +* Date/Publication: 2022-06-24 12:10:02 UTC +* Number of recursive dependencies: 90 + +Run `cloud_details(, "lingtypology")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘lingtypology-Ex.R’ failed + The error most likely occurred in: + + > ### Name: ggmap.feature + > ### Title: Create a map with ggplot2 + > ### Aliases: ggmap.feature + > + > ### ** Examples + > + > ggmap.feature(c("Adyghe", "Russian")) + ... + 20. │ └─self$draw_panel(...) + 21. │ └─ggplot2 (local) draw_panel(...) + 22. │ └─ggplot2:::dapply(...) + 23. │ └─base::lapply(...) + 24. │ └─ggplot2 (local) FUN(X[[i]], ...) + 25. │ └─ggplot2 (local) apply_fun(cur_data) + 26. │ └─ggplot2 (local) fun(x, ...) + 27. │ └─vctrs::new_data_frame(...) + 28. └─rlang::abort(message = message) + Execution halted + ``` + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 60596 marked UTF-8 strings + ``` + +# listdown + +
+ +* Version: 0.5.2 +* GitHub: https://github.com/kaneplusplus/listdown +* Source code: https://github.com/cran/listdown +* Date/Publication: 2022-07-19 17:10:06 UTC +* Number of recursive dependencies: 73 + +Run `cloud_details(, "listdown")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.r’ + Running the tests in ‘tests/testthat.r’ failed. + Last 13 lines of output: + `ldb` not equal to read_reference("listdown-page-bundle.rds"). + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Names: 10 string mismatches + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Length mismatch: comparison on first 11 components + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 2: Modes of target, current: call, list + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 2: target, current do not match when deparsed + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 3: 'target' is not an environment + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 4: 'current' is not an environment + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 5: Modes: list, logical + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 5: names for target but not for current + Component "cc": Component "Sepal.Length": Component "Sepal.Width": Component "layers": Component 1: Component 5: Component 1: 1 element mismatch + ... + + [ FAIL 1 | WARN 0 | SKIP 0 | PASS 35 ] + Error: Test failures + Execution halted + ``` + +## In both -Run `cloud_details(, "eurlex")` for more info +* checking package dependencies ... NOTE + ``` + Package which this enhances but not available for checking: ‘workflowr’ + ``` + +# openalexR + +
+ +* Version: 1.0.0 +* GitHub: https://github.com/massimoaria/openalexR +* Source code: https://github.com/cran/openalexR +* Date/Publication: 2022-10-06 10:40:02 UTC +* Number of recursive dependencies: 78 + +Run `cloud_details(, "openalexR")` for more info
@@ -18,7 +1806,7 @@ Run `cloud_details(, "eurlex")` for more info ``` Error(s) in re-building vignettes: ... - --- re-building ‘eurlexpkg.Rmd’ using rmarkdown + --- re-building ‘A_Brief_Introduction_to_openalexR.Rmd’ using rmarkdown Attaching package: 'dplyr' @@ -27,48 +1815,579 @@ Run `cloud_details(, "eurlex")` for more info filter, lag ... - Quitting from lines 167-174 (eurlexpkg.Rmd) - Error: processing vignette 'eurlexpkg.Rmd' failed with diagnostics: - no applicable method for 'read_xml' applied to an object of class "NULL" - --- failed re-building ‘eurlexpkg.Rmd’ + Quitting from lines 207-213 (A_Brief_Introduction_to_openalexR.Rmd) + Error: processing vignette 'A_Brief_Introduction_to_openalexR.Rmd' failed with diagnostics: + $ operator is invalid for atomic vectors + --- failed re-building ‘A_Brief_Introduction_to_openalexR.Rmd’ SUMMARY: processing the following file failed: - ‘eurlexpkg.Rmd’ + ‘A_Brief_Introduction_to_openalexR.Rmd’ Error: Vignette re-building failed. Execution halted ``` -# gggrid +# pathviewr
-* Version: 0.2-0 -* GitHub: https://github.com/pmur002/gggrid -* Source code: https://github.com/cran/gggrid -* Date/Publication: 2022-01-11 09:12:45 UTC -* Number of recursive dependencies: 52 +* Version: 1.1.3 +* GitHub: https://github.com/ropensci/pathviewr +* Source code: https://github.com/cran/pathviewr +* Date/Publication: 2022-08-22 07:50:14 UTC +* Number of recursive dependencies: 151 + +Run `cloud_details(, "pathviewr")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + ══ Failed tests ════════════════════════════════════════════════════════════════ + ── Failure ('test-plot_by_subject.R:85'): top views created correctly via purrr::map ── + environment(top_view[[4]][[3]][["facet"]][["super"]])[["args"]] not equal to NULL. + Modes: list, NULL + Lengths: 1, 0 + current is not list-like + ── Failure ('test-plot_by_subject.R:161'): elev views created correctly via purrr::map ── + environment(elev_view[[4]][[3]][["facet"]][["super"]])[["args"]] not equal to NULL. + Modes: list, NULL + Lengths: 1, 0 + current is not list-like + + [ FAIL 2 | WARN 0 | SKIP 0 | PASS 288 ] + Error: Test failures + Execution halted + ``` + +# plotly + +
+ +* Version: 4.10.0 +* GitHub: https://github.com/plotly/plotly.R +* Source code: https://github.com/cran/plotly +* Date/Publication: 2021-10-09 21:10:07 UTC +* Number of recursive dependencies: 164 + +Run `cloud_details(, "plotly")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + • plotly/plotly-bar-inference.svg + • plotly/plotly-box-data-array.svg + • plotly/plotly-character-axis.svg + • plotly/plotly-factor-axis.svg + • plotly/plotly-group-within-trace.svg + • plotly/plotly-histogram-vert.svg + • plotly/plotly-histogram.svg + • plotly/plotly-inherit-false.svg + • plotly/plotly-scatterplot.svg + • plotly/plotly-time-series-summary.svg + • ticktext-linebreaks/ticktext-linebreaks-no-linebreaks.svg + • ticktext-linebreaks/ticktext-linebreaks-one-cat.svg + • ticktext-linebreaks/ticktext-linebreaks.svg + Error: Test failures + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 7.1Mb + sub-directories of 1Mb or more: + htmlwidgets 4.0Mb + ``` + +# plotmm + +
+ +* Version: 0.1.0 +* GitHub: https://github.com/pdwaggoner/plotmm +* Source code: https://github.com/cran/plotmm +* Date/Publication: 2020-07-10 08:40:02 UTC +* Number of recursive dependencies: 60 + +Run `cloud_details(, "plotmm")` for more info + +
+ +## Newly broken + +* checking examples ... ERROR + ``` + Running examples in ‘plotmm-Ex.R’ failed + The error most likely occurred in: + + > ### Name: plot_gmm + > ### Title: Plots Mixture Components from Gaussian Mixture Models + > ### Aliases: plot_gmm + > + > ### ** Examples + > + > if(require(mixtools)){ + ... + 9. │ │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]]) + 10. │ │ └─base (local) doTryCatch(return(expr), name, parentenv, handler) + 11. │ └─base::withCallingHandlers(...) + 12. └─ggplot2 (local) f(l = layers[[i]], d = data[[i]]) + 13. └─l$compute_geom_1(d) + 14. └─ggplot2 (local) compute_geom_1(..., self = self) + 15. └─ggplot2:::check_required_aesthetics(...) + 16. └─cli::cli_abort(message, call = call) + 17. └─rlang::abort(...) + Execution halted + ``` -Run `cloud_details(, "gggrid")` for more info +## In both + +* checking dependencies in R code ... NOTE + ``` + Namespaces in Imports field not imported from: + ‘dplyr’ ‘patchwork’ + All declared Imports should be used. + ``` + +* checking LazyData ... NOTE + ``` + 'LazyData' is specified without a 'data' directory + ``` + +# qqboxplot + +
+ +* Version: 0.2.0 +* GitHub: NA +* Source code: https://github.com/cran/qqboxplot +* Date/Publication: 2022-03-25 08:00:05 UTC +* Number of recursive dependencies: 70 + +Run `cloud_details(, "qqboxplot")` for more info
## Newly broken +* checking examples ... ERROR + ``` + Running examples in ‘qqboxplot-Ex.R’ failed + The error most likely occurred in: + + > ### Name: geom_qqboxplot + > ### Title: A modification of the boxplot with information about the tails + > ### Aliases: geom_qqboxplot + > + > ### ** Examples + > + > p <- ggplot2::ggplot(simulated_data, ggplot2::aes(factor(group, + ... + 13. │ └─l$compute_statistic(d, layout) + 14. │ └─ggplot2 (local) compute_statistic(..., self = self) + 15. │ └─self$stat$setup_params(data, self$stat_params) + 16. │ └─qqboxplot (local) setup_params(...) + 17. └─base::.handleSimpleError(...) + 18. └─rlang (local) h(simpleError(msg, call)) + 19. └─handlers[[1L]](cnd) + 20. └─cli::cli_abort(...) + 21. └─rlang::abort(...) + Execution halted + ``` + * checking re-building of vignette outputs ... WARNING ``` Error(s) in re-building vignettes: + --- re-building ‘qqboxplot-basic-usage.Rmd’ using rmarkdown + + Attaching package: 'dplyr' + + The following objects are masked from 'package:stats': + + filter, lag + + The following objects are masked from 'package:base': + ... + ℹ Error occurred in the 1st layer. + Caused by error in `has_groups()`: + ! could not find function "has_groups" + --- failed re-building ‘qqboxplot-paper-replication.Rmd’ + + SUMMARY: processing the following files failed: + ‘qqboxplot-basic-usage.Rmd’ ‘qqboxplot-paper-replication.Rmd’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# RJafroc + +
+ +* Version: 2.1.1 +* GitHub: NA +* Source code: https://github.com/cran/RJafroc +* Date/Publication: 2022-08-12 20:30:03 UTC +* Number of recursive dependencies: 95 + +Run `cloud_details(, "RJafroc")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + PlotRsmOperatingCharacteristics(...) not equal to `ret`. + Component "wAFROCPlot": Component "layers": Component 1: Names: 10 string mismatches + Component "wAFROCPlot": Component "layers": Component 1: Length mismatch: comparison on first 11 components + Component "wAFROCPlot": Component "layers": Component 1: Component 2: Modes of target, current: call, list + Component "wAFROCPlot": Component "layers": Component 1: Component 2: target, current do not match when deparsed + Component "wAFROCPlot": Component "layers": Component 1: Component 3: 'target' is not an environment + Component "wAFROCPlot": Component "layers": Component 1: Component 4: 'current' is not an environment + Component "wAFROCPlot": Component "layers": Component 1: Component 5: Modes: list, logical + Component "wAFROCPlot": Component "layers": Component 1: Component 5: names for target but not for current + Component "wAFROCPlot": Component "layers": Component 1: Component 5: Length mismatch: comparison on first 1 components + ... + + [ FAIL 17 | WARN 1 | SKIP 9 | PASS 1457 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 5.8Mb + sub-directories of 1Mb or more: + extdata 1.6Mb + libs 2.7Mb + ``` + +# robustlmm + +
+ +* Version: 3.0-4 +* GitHub: https://github.com/kollerma/robustlmm +* Source code: https://github.com/cran/robustlmm +* Date/Publication: 2022-09-17 20:36:08 UTC +* Number of recursive dependencies: 86 + +Run `cloud_details(, "robustlmm")` for more info + +
+ +## Newly broken + +* checking running R code from vignettes ... WARNING + ``` + Errors in running code in vignettes: + when running code in ‘simulationStudies.Rnw’ + ... + Warning in library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE, : + there is no package called ‘robustvarComp’ + Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0. + ℹ Please use `linewidth` instead. + + > print(plot_robustnessDiagonal) + + When sourcing ‘simulationStudies.R’: + Error: could not find function "rbind_dfs" + Execution halted + + ‘rlmer.Rnw’ using ‘UTF-8’... OK + ‘simulationStudies.Rnw’ using ‘UTF-8’... failed + ``` + +## In both + +* checking installed package size ... NOTE + ``` + installed size is 53.8Mb + sub-directories of 1Mb or more: + doc 1.7Mb + libs 49.6Mb + simulationStudy 1.5Mb + ``` + +* checking re-building of vignette outputs ... NOTE + ``` + Error(s) in re-building vignettes: + --- re-building ‘rlmer.Rnw’ using Sweave + Loading required package: robustlmm + Loading required package: lme4 + Loading required package: Matrix + Warning in eval(expr, .GlobalEnv) : + Current dir: /tmp/workdir/robustlmm/new/robustlmm.Rcheck/robustlmm/ has contents: CITATION, DESCRIPTION, INDEX, Meta, NAMESPACE, R, doc, help, html, libs, simulationStudy, xtraR + Warning in eval(expr, .GlobalEnv) : + doc dir: /tmp/workdir/robustlmm/new/robustlmm.Rcheck/robustlmm/doc has contents: Penicillin.R, ggplot.theme.R, index.html, plots.R, rlmer.R, rlmer.Rnw, rlmer.pdf, simulationStudies.R, simulationStudies.Rnw, simulationStudies.pdf, sleepstudy.R + Warning in eval(expr, .GlobalEnv) : + ... + chunk 25 (label = plot_robustnessDiagonal) + Error in rbind_dfs(values[has_all]) : could not find function "rbind_dfs" + + --- failed re-building ‘simulationStudies.Rnw’ + + SUMMARY: processing the following files failed: + ‘rlmer.Rnw’ ‘simulationStudies.Rnw’ + + Error: Vignette re-building failed. + Execution halted + ``` + +# scdhlm + +
+ +* Version: 0.6.0 +* GitHub: https://github.com/jepusto/scdhlm +* Source code: https://github.com/cran/scdhlm +* Date/Publication: 2022-07-07 22:20:02 UTC +* Number of recursive dependencies: 111 + +Run `cloud_details(, "scdhlm")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + 11. └─base::all.equal.list(Lt, Lc, ...) + 12. ├─base::all.equal(...) + 13. └─base::all.equal.function(...) + 14. └─base::all.equal.environment(...) + 15. └─base::all.equal.list(Lt, Lc, ...) + 16. ├─base::all.equal(...) + 17. └─base::all.equal.environment(...) + 18. └─base::all.equal.list(Lt, Lc, ...) + 19. ├─base::all.equal(...) + 20. └─base::all.equal.environment(...) + 21. └─base::as.list.environment(target, all.names = all.names, sorted = TRUE) + + [ FAIL 3 | WARN 1 | SKIP 10 | PASS 156 ] + Error: Test failures + Execution halted + ``` + +# schtools + +
+ +* Version: 0.3.0 +* GitHub: https://github.com/SchlossLab/schtools +* Source code: https://github.com/cran/schtools +* Date/Publication: 2022-10-05 21:50:02 UTC +* Number of recursive dependencies: 115 + +Run `cloud_details(, "schtools")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + plot_sovacool$theme not equal to structure(...). + Names: 7 string mismatches + Length mismatch: comparison on first 93 components + Component "line": Names: 1 string mismatch + Component "rect": Names: 1 string mismatch + Component "axis.ticks": Names: 1 string mismatch + Component "legend.background": Names: 1 string mismatch + Component "legend.key": Names: 1 string mismatch + Component "panel.background": Names: 1 string mismatch + Component "panel.border": Names: 1 string mismatch ... - --- re-building ‘gggrid.Rmd’ using rmarkdown - Quitting from lines 129-142 (gggrid.Rmd) - Error: processing vignette 'gggrid.Rmd' failed with diagnostics: - $ operator is invalid for atomic vectors - --- failed re-building ‘gggrid.Rmd’ + + [ FAIL 1 | WARN 1 | SKIP 0 | PASS 46 ] + Error: Test failures + Execution halted + ``` + +# tcpl + +
+ +* Version: 3.0.0 +* GitHub: https://github.com/USEPA/CompTox-ToxCast-tcpl +* Source code: https://github.com/cran/tcpl +* Date/Publication: 2022-08-31 08:40:02 UTC +* Number of recursive dependencies: 123 + +Run `cloud_details(, "tcpl")` for more info + +
+ +## Newly broken + +* checking re-building of vignette outputs ... WARNING + ``` + Error(s) in re-building vignettes: + --- re-building ‘Assay_Registration.Rmd’ using rmarkdown + tcpl (v3.0.0) loaded with the following settings: + TCPL_DB: /tmp/workdir/tcpl/new/tcpl.Rcheck/tcpl/csv + TCPL_USER: NA + TCPL_HOST: NA + TCPL_DRVR: tcplLite + Default settings stored in tcpl config file. See ?tcplConf for more information. + --- finished re-building ‘Assay_Registration.Rmd’ + + ... + TCPL_HOST: NA + TCPL_DRVR: tcplLite + Default settings stored in tcpl config file. See ?tcplConf for more information. + --- finished re-building ‘Introduction_Appendices.Rmd’ SUMMARY: processing the following file failed: - ‘gggrid.Rmd’ + ‘Data_processing.Rmd’ Error: Vignette re-building failed. Execution halted ``` +# tvthemes + +
+ +* Version: 1.3.1 +* GitHub: https://github.com/Ryo-N7/tvthemes +* Source code: https://github.com/cran/tvthemes +* Date/Publication: 2022-07-19 06:10:02 UTC +* Number of recursive dependencies: 74 + +Run `cloud_details(, "tvthemes")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + thm$axis.ticks$size not equal to 0.15. + target is NULL, current is numeric + ── Failure ('test-spongebob.R:48'): theme_spongeBob works ────────────────────── + thm$axis.ticks$size not equal to 0.15. + target is NULL, current is numeric + ── Failure ('test-thelastairbender.R:48'): theme_theLastAirbender works ──────── + thm$axis.ticks$size not equal to 0.15. + target is NULL, current is numeric + ── Failure ('test-thelastairbender.R:103'): theme_avatar works ───────────────── + thm$axis.ticks$size not equal to 0.15. + target is NULL, current is numeric + + [ FAIL 12 | WARN 43 | SKIP 1 | PASS 861 ] + Error: Test failures + Execution halted + ``` + +# usmap + +
+ +* Version: 0.6.0 +* GitHub: https://github.com/pdil/usmap +* Source code: https://github.com/cran/usmap +* Date/Publication: 2022-02-27 17:10:05 UTC +* Number of recursive dependencies: 80 + +Run `cloud_details(, "usmap")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + plot_usmap(regions = "states")$layers not equal to plot_usmap(regions = "state")$layers. + Component 1: Component 12: Component 5: Component 21: Component 11: 1 string mismatch + Component 1: Component 12: Component 5: Component 21: Component 12: 1 string mismatch + Component 2: Component 12: Component 5: Component 21: Component 11: 1 string mismatch + Component 2: Component 12: Component 5: Component 21: Component 12: 1 string mismatch + ── Failure ('test-plot.R:140'): singular regions can be used ─────────────────── + plot_usmap(regions = "counties")$layers not equal to plot_usmap(regions = "county")$layers. + Component 1: Component 12: Component 5: Component 21: Component 11: 1 string mismatch + Component 1: Component 12: Component 5: Component 21: Component 12: 1 string mismatch + Component 2: Component 12: Component 5: Component 21: Component 11: 1 string mismatch + Component 2: Component 12: Component 5: Component 21: Component 12: 1 string mismatch + + [ FAIL 2 | WARN 3 | SKIP 0 | PASS 163 ] + Error: Test failures + Execution halted + ``` + +## In both + +* checking data for non-ASCII characters ... NOTE + ``` + Note: found 1 marked UTF-8 string + ``` + +# xpose + +
+ +* Version: 0.4.13 +* GitHub: https://github.com/UUPharmacometrics/xpose +* Source code: https://github.com/cran/xpose +* Date/Publication: 2021-06-30 08:00:02 UTC +* Number of recursive dependencies: 108 + +Run `cloud_details(, "xpose")` for more info + +
+ +## Newly broken + +* checking tests ... ERROR + ``` + Running ‘testthat.R’ + Running the tests in ‘tests/testthat.R’ failed. + Last 13 lines of output: + ▆ + 1. ├─testthat::expect_error(...) at test-xpose_save.R:33:2 + 2. │ └─testthat:::quasi_capture(...) + 3. │ ├─testthat (local) .capture(...) + 4. │ │ └─base::withCallingHandlers(...) + 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) + 6. └─xpose::xpose_save(plot = plot, file = paths_1) + 7. └─ggplot2::ggsave(...) + 8. └─ggplot2:::plot_dev(device, filename, dpi = dpi) + 9. └─cli::cli_abort(...) + 10. └─rlang::abort(...) + + [ FAIL 6 | WARN 4 | SKIP 7 | PASS 516 ] + Error: Test failures + Execution halted + ``` + diff --git a/tests/testthat/_snaps/aes-calculated.md b/tests/testthat/_snaps/aes-calculated.md index 9e0d778121..629d2007d5 100644 --- a/tests/testthat/_snaps/aes-calculated.md +++ b/tests/testthat/_snaps/aes-calculated.md @@ -9,10 +9,10 @@ # A deprecated warning is issued when stat(var) or ..var.. is used `stat(foo)` was deprecated in ggplot2 3.4.0. - Please use `after_stat(foo)` instead. + i Please use `after_stat(foo)` instead. --- The dot-dot notation (`..bar..`) was deprecated in ggplot2 3.4.0. - Please use `after_stat(bar)` instead. + i Please use `after_stat(bar)` instead. diff --git a/tests/testthat/_snaps/coord_sf/limits-specified-in-long-lat.svg b/tests/testthat/_snaps/coord_sf/limits-specified-in-long-lat.svg index aed4074275..b31ba03f0a 100644 --- a/tests/testthat/_snaps/coord_sf/limits-specified-in-long-lat.svg +++ b/tests/testthat/_snaps/coord_sf/limits-specified-in-long-lat.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/coord_sf/limits-specified-in-projected-coords.svg b/tests/testthat/_snaps/coord_sf/limits-specified-in-projected-coords.svg index 01ad38ec0f..e22101c69f 100644 --- a/tests/testthat/_snaps/coord_sf/limits-specified-in-projected-coords.svg +++ b/tests/testthat/_snaps/coord_sf/limits-specified-in-projected-coords.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-long-lat.svg b/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-long-lat.svg index ef1938d411..36db42661e 100644 --- a/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-long-lat.svg +++ b/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-long-lat.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-projected-coords.svg b/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-projected-coords.svg index 316cb98216..eba8764b6b 100644 --- a/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-projected-coords.svg +++ b/tests/testthat/_snaps/coord_sf/non-sf-geoms-using-projected-coords.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/coord_sf/sf-polygons.svg b/tests/testthat/_snaps/coord_sf/sf-polygons.svg index dc682bfc86..d09ff26cc2 100644 --- a/tests/testthat/_snaps/coord_sf/sf-polygons.svg +++ b/tests/testthat/_snaps/coord_sf/sf-polygons.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/geom-sf/north-carolina-county-boundaries.svg b/tests/testthat/_snaps/geom-sf/north-carolina-county-boundaries.svg index ad792fb43c..40e2e8c503 100644 --- a/tests/testthat/_snaps/geom-sf/north-carolina-county-boundaries.svg +++ b/tests/testthat/_snaps/geom-sf/north-carolina-county-boundaries.svg @@ -36,7 +36,7 @@ - + diff --git a/tests/testthat/_snaps/guides.md b/tests/testthat/_snaps/guides.md index 88a8a97b71..0fbf1cebef 100644 --- a/tests/testthat/_snaps/guides.md +++ b/tests/testthat/_snaps/guides.md @@ -70,6 +70,6 @@ # a warning is generated when guides( = FALSE) is specified - `guide = FALSE` is deprecated - i Please use `guide = "none"` instead. + The `guide` argument in `scale_*()` cannot be `FALSE`. This was deprecated in ggplot2 3.3.4. + i Please use "none" instead. diff --git a/tests/testthat/test-build.r b/tests/testthat/test-build.r index 7d112f8d4f..24930a0373 100644 --- a/tests/testthat/test-build.r +++ b/tests/testthat/test-build.r @@ -23,8 +23,8 @@ test_that("position aesthetics are coerced to correct type", { l2 <- ggplot(df, aes(x, z)) + geom_point() + scale_x_discrete() d2 <- layer_data(l2, 1) - expect_s3_class(d2$x, "ggplot2_mapped_discrete") - expect_s3_class(d2$y, "ggplot2_mapped_discrete") + expect_s3_class(d2$x, "mapped_discrete") + expect_s3_class(d2$y, "mapped_discrete") }) test_that("non-position aesthetics are mapped", { diff --git a/tests/testthat/test-geom-col.R b/tests/testthat/test-geom-col.R index 4421ba54a2..cbb83004f0 100644 --- a/tests/testthat/test-geom-col.R +++ b/tests/testthat/test-geom-col.R @@ -37,12 +37,12 @@ test_that("geom_col supports alignment of columns", { expect_equal(as.numeric(y$xmin), c(0.55, 1.55)) expect_equal(as.numeric(y$xmax), c(1.45, 2.45)) - p <- ggplot(dat, aes(x, y)) + geom_col(just = 0.0) + p <- ggplot(dat, aes(x, y)) + geom_col(just = 1.0) y <- layer_data(p) expect_equal(as.numeric(y$xmin), c(0.1, 1.1)) expect_equal(as.numeric(y$xmax), c(1.0, 2.0)) - p <- ggplot(dat, aes(x, y)) + geom_col(just = 1.0) + p <- ggplot(dat, aes(x, y)) + geom_col(just = 0.0) y <- layer_data(p) expect_equal(as.numeric(y$xmin), c(1.0, 2.0)) expect_equal(as.numeric(y$xmax), c(1.9, 2.9)) diff --git a/tests/testthat/test-geom-freqpoly.R b/tests/testthat/test-geom-freqpoly.R index 60b798787f..762b075977 100644 --- a/tests/testthat/test-geom-freqpoly.R +++ b/tests/testthat/test-geom-freqpoly.R @@ -4,7 +4,7 @@ test_that("can do frequency polygon with categorical x", { p <- ggplot(df, aes(x)) + geom_freqpoly(stat = "count") d <- layer_data(p) - expect_s3_class(d$x, "ggplot2_mapped_discrete") + expect_s3_class(d$x, "mapped_discrete") expect_equal(d$x, mapped_discrete(1:3)) expect_equal(d$y, 3:1) }) diff --git a/tests/testthat/test-geom-quantile.R b/tests/testthat/test-geom-quantile.R index bdcef0ac7f..6904ee263b 100644 --- a/tests/testthat/test-geom-quantile.R +++ b/tests/testthat/test-geom-quantile.R @@ -1,4 +1,8 @@ test_that("geom_quantile matches quantile regression", { + withr::local_options( + warnPartialMatchArgs = FALSE, + warnPartialMatchDollar = FALSE + ) skip_if_not_installed("quantreg") set.seed(6531) diff --git a/tests/testthat/test-geom-smooth.R b/tests/testthat/test-geom-smooth.R index 242742763c..e300d13133 100644 --- a/tests/testthat/test-geom-smooth.R +++ b/tests/testthat/test-geom-smooth.R @@ -22,6 +22,7 @@ test_that("geom_smooth works in both directions", { }) test_that("default smoothing methods for small and large data sets work", { + withr::local_options(warnPartialMatchArgs = FALSE) # Numeric differences on the MLK machine on CRAN makes these test fail # on that particular machine skip_on_cran() diff --git a/tests/testthat/test-scale-discrete.R b/tests/testthat/test-scale-discrete.R index f06531cf2e..d9ce98c494 100644 --- a/tests/testthat/test-scale-discrete.R +++ b/tests/testthat/test-scale-discrete.R @@ -152,13 +152,13 @@ test_that("Aesthetics with no continuous interpretation fails when called", { test_that("mapped_discrete vectors behaves as predicted", { expect_null(mapped_discrete(NULL)) - expect_s3_class(mapped_discrete(c(0, 3.5)), "ggplot2_mapped_discrete") - expect_s3_class(mapped_discrete(seq_len(4)), "ggplot2_mapped_discrete") + expect_s3_class(mapped_discrete(c(0, 3.5)), "mapped_discrete") + expect_s3_class(mapped_discrete(seq_len(4)), "mapped_discrete") expect_error(mapped_discrete(letters)) x <- mapped_discrete(1:10) - expect_s3_class(x[2:4], "ggplot2_mapped_discrete") - expect_s3_class(c(x, x), "ggplot2_mapped_discrete") + expect_s3_class(x[2:4], "mapped_discrete") + expect_s3_class(c(x, x), "mapped_discrete") x[5:7] <- mapped_discrete(seq_len(3)) - expect_s3_class(x, "ggplot2_mapped_discrete") + expect_s3_class(x, "mapped_discrete") }) diff --git a/vignettes/ggplot2-in-packages.Rmd b/vignettes/ggplot2-in-packages.Rmd index bc82741c55..c6413a5914 100644 --- a/vignettes/ggplot2-in-packages.Rmd +++ b/vignettes/ggplot2-in-packages.Rmd @@ -204,7 +204,7 @@ mpg_drv_summary2 <- function() { ### Testing ggplot2 output -We suggest testing the output of ggplot2 in using the [vdiffr](https://cran.r-project.org/package=vdiffr) package, which is a tool to manage visual test cases (this is one of the ways we test ggplot2). If changes in ggplot2 or your code introduce a change in the visual output of a ggplot, tests will fail when you run them locally or on Travis. To use vdiffr, make sure you are using [testthat](https://testthat.r-lib.org/) (you can use `usethis::use_testthat()` to get started) and add vdiffr to `Suggests` in your `DESCRIPTION`. Then, use `vdiffr::expect_doppleganger(, )` to make a test that fails if there are visual changes in ``. +We suggest testing the output of ggplot2 in using the [vdiffr](https://cran.r-project.org/package=vdiffr) package, which is a tool to manage visual test cases (this is one of the ways we test ggplot2). If changes in ggplot2 or your code introduce a change in the visual output of a ggplot, tests will fail when you run them locally or as part of a Continuous Integration setup. To use vdiffr, make sure you are using [testthat](https://testthat.r-lib.org/) (you can use `usethis::use_testthat()` to get started) and add vdiffr to `Suggests` in your `DESCRIPTION`. Then, use `vdiffr::expect_doppleganger(, )` to make a test that fails if there are visual changes in ``. However, you should consider whether visual testing is the best strategy because it adds a dependency on how ggplot2 performs its rendering which may change between versions. If extracting the layer data using `layer_data()` and testing the values directly is possible it is far better as it more directly test the behaviour of your own code. ```r test_that("output of ggplot() is stable", { @@ -239,3 +239,6 @@ Generally, if you add a method for a ggplot2 generic like `autoplot()`, ggplot2 } } ``` + +## Read more +There are other things to consider when taking on a dependency. [This post]( https://www.tidyverse.org/blog/2022/09/playing-on-the-same-team-as-your-dependecy/) goes into detail with many of these using ggplot2 as an example and is a good read for anyone developing a package using ggplot2. diff --git a/vignettes/ggplot2-specs.Rmd b/vignettes/ggplot2-specs.Rmd index 2052eb5552..7c041da04b 100644 --- a/vignettes/ggplot2-specs.Rmd +++ b/vignettes/ggplot2-specs.Rmd @@ -43,7 +43,7 @@ Almost every geom has either colour, fill, or both. Colours and fills can be spe ## Lines -As well as `colour`, the appearance of a line is affected by `size`, `linetype`, `linejoin` and `lineend`. +As well as `colour`, the appearance of a line is affected by `linewidth`, `linetype`, `linejoin` and `lineend`. ### Line type {#sec:line-type-spec} @@ -91,7 +91,9 @@ Line types can be specified with: ### Linewidth -The `linewidth` of a line is its width in mm. +Due to a historical error, the unit of linewidth is roughly 0.75 mm. Making it +exactly 1 mm would change a very large number of existing plots, so we're stuck +with this mistake. ### Line end/join paramters