rstudio / renv

renv: Project environments for R.

Home Page:https://rstudio.github.io/renv/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

renv::restore() failing with `platform mismatch` and `dependency conflict` errors when `RENV_CONFIG_PAK_ENABLED=TRUE`

kmasiello opened this issue · comments

@kevinushey, following up from our troubleshooting.

Steps to reproduce:

  • Clone https://github.com/sol-eng/bike_predict into new environment (I happened to be running R 4.1.3, though lockfile is 4.1.2).
  • Modify lockfile / .Rprofile to remove references to old bionic os, updated to Jammy.
  • Set RENV_CONFIG_PAK_ENABLED=TRUE
  • renv::upgrade() to bring the lockfile renv version up to date
  • renv::restore() results in unresolved dependencies and platform mismatch errors.
> renv::restore()
! Using bundled GitHub PAT. Please add your own PAT using `gitcreds::gitcreds_set()`.
✔ Loading metadata database ... done                                                         
Error:                                                                                          
! error in pak subprocess
Caused by error: 
! Could not solve package dependencies:
* sol-eng/bikeHelpR@main:
  * Can't install dependency purrr
  * Can't install dependency tibble
  * Can't install dependency xgboost
  * Can't install dependency yardstick
  * Can't install dependency dplyr
* dplyr: Conflicts with dplyr@1.0.9
* purrr: Conflicts with purrr@0.3.4
* tibble: Conflicts with tibble@3.1.7
* xgboost: Conflicts with xgboost@1.6.0.1
* yardstick: Conflicts with yardstick@0.0.9
* rstudio/connectapi@HEAD:
  * Can't install dependency dplyr (>= 0.4.2) (>= 0.3.0)
  * Can't install dependency fs (>= 0.4.2) (>= 0.3.0)
  * Can't install dependency glue (>= 0.4.2) (>= 0.3.0)
  * Can't install dependency purrr (>= 0.4.2) (>= 0.3.0)
  * Can't install dependency rlang (>= 0.4.2) (>= 0.3.0)
  * Can't install dependency tibble (>= 0.3.0)
  * Can't install dependency uuid (>= 0.3.0)
  * Can't install dependency vctrs (>= 0.3.0)
  * Can't install dependency yaml
  * Can't install dependency jsonlite
* fs: Conflicts with fs@1.5.2
* glue: Conflicts with glue@1.6.2
* jsonlite: Conflicts with jsonlite@1.8.0
* rlang: Conflicts with rlang@1.0.2
* vctrs: Conflicts with vctrs@0.4.1
* yaml: Conflicts with yaml@2.3.5
* uuid: Conflicts with uuid@1.1-0
* rstudio/rsconnect@main:
  * Can't install dependency cli (>= 2.0.0) (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency curl (>= 2.0.0) (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency digest (>= 2.0.0) (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency jsonlite (>= 2.0.0) (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency openssl (>= 2.0.0) (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency rlang (>= 1.0.0) (>= 2.1.5)
  * Can't install dependency yaml (>= 2.1.5)
* cli: Conflicts with cli@3.3.0
* curl: Conflicts with curl@4.3.2
* digest: Conflicts with digest@0.6.28
* openssl: Conflicts with openssl@2.0.0
* RColorBrewer@1.1-2: dependency conflict
* DBI@1.1.2: dependency conflict
* R6@2.5.1: dependency conflict
* callr@3.7.0: Platform mismatch
* cpp11@0.4.2: dependency conflict
* connectwidgets@0.1.1: Platform mismatch
* gh@1.3.0: Platform mismatch
* generics@0.1.2: dependency conflict
* future@1.22.1: Platform mismatch
* globals@0.14.0: dependency conflict
* fontawesome@0.2.2: Platform mismatch
* googlesheets4@1.0.0: Platform mismatch
* gtable@0.3.0: Platform mismatch
* highr@0.9: Platform mismatch
* httr2@0.2.0: Platform mismatch
* htmlwidgets@1.5.4: Platform mismatch
* labeling@0.4.2: dependency conflict
* leaflet.providers@1.9.0: Platform mismatch
* modelr@0.1.8: Platform mismatch
* lava@1.6.10: Platform mismatch
* parallelly@1.28.1: dependency conflict
* pins@1.0.1: Platform mismatch
* progressr@0.9.0: Platform mismatch
* reactR@0.4.4: Platform mismatch
* rapidoc@8.4.3: dependency conflict
* rprojroot@2.0.2: dependency conflict
* shiny@1.7.1: Platform mismatch
* tidyverse@1.3.1: Platform mismatch
* whisker@0.4: dependency conflict
* viridis@0.6.2: Platform mismatch
* SQUAREM@2021.1: dependency conflict
* xtable@1.8-4: dependency conflict
* assertthat@0.2.1: dependency conflict
* config@0.3.1: Platform mismatch
* broom@0.7.9: Platform mismatch
* clipr@0.7.1: dependency conflict
* crosstalk@1.1.1: Platform mismatch
* desc@1.4.0: Platform mismatch
* evaluate@0.14: dependency conflict
* future.apply@1.8.1: Platform mismatch
* hms@1.1.1: Platform mismatch
* httr@1.4.2: Platform mismatch
* ggplot2@3.3.5: Platform mismatch
* lazyeval@0.2.2: dependency conflict
* knitr@1.36: Platform mismatch
* listenv@0.8.0: dependency conflict
* pillar@1.7.0: Platform mismatch
* quarto@1.1: Platform mismatch
* progress@1.2.2: Platform mismatch
* rstudioapi@0.13: dependency conflict
* reprex@2.0.1: Platform mismatch
* recipes@0.2.0: Platform mismatch
* stringr@1.4.0: Platform mismatch
* webshot@0.5.2: Platform mismatch
* tidyselect@1.1.2: Platform mismatch
* usethis@2.1.0: Platform mismatch
* vetiver@0.1.5: Platform mismatch
* workflows@0.2.6: Platform mismatch
* blob@1.2.2: Platform mismatch
* forcats@0.5.1: Platform mismatch
* dtplyr@1.1.0: Platform mismatch
* googledrive@2.0.0: Platform mismatch
* kableExtra@1.3.4: Platform mismatch
* magrittr@2.0.3: dependency conflict
* numDeriv@2016.8-1.1: dependency conflict
* packrat@0.7.0: dependency conflict
* prettyunits@1.1.1: dependency conflict
* reactable@0.2.3: Platform mismatch
* leaflet@2.0.4.1: Platform mismatch
* rvest@1.0.2: Platform mismatch
* repr@1.1.3: Platform mismatch
* skimr@2.1.3: Platform mismatch
* base64enc@0.1-3: dependency conflict
* butcher@0.1.5: Platform mismatch
* crayon@1.5.1: dependency conflict
* lifecycle@1.0.1: Platform mismatch
* pkgconfig@2.0.3: dependency conflict
* withr@2.4.2: dependency conflict
* credentials@1.3.1: Platform mismatch
* bslib@0.3.1: Platform mismatch
* ini@0.3.1: dependency conflict
* parsnip@0.2.1: Platform mismatch
* rmarkdown@2.14: Platform mismatch
* tinytex@0.34: Platform mismatch
* gitcreds@0.1.1: dependency conflict
* dbplyr@2.1.1: Platform mismatch
* rappdirs@0.3.3: dependency conflict
* viridisLite@0.4.0: dependency conflict
* plumber@1.1.0: Platform mismatch
* codetools@0.2-18: dependency conflict
* scales@1.1.1: Platform mismatch
* rematch@1.0.1: dependency conflict
* hardhat@0.2.0: Platform mismatch
* swagger@3.33.1: dependency conflict
* gargle@1.2.0: Platform mismatch
* timeDate@3043.102: dependency conflict
* mime@0.12: dependency conflict
Type .Last.error to see the more details.

When I disabled RENV_CONFIG_PAK_ENABLED the restore eventually completed, however an iteration of renv::restore() and remotes::install_version() was required. That output of this is interesting because renv wasn't able to install a package binary but remotes was. This output is captured in https://gist.github.com/kmasiello/c38e7cf0a03cd375d5b0a1004f37be50. LMK if you want a separate issue for this one. ;)

I'm running into the exact same error with my builds. Strangely it was working fine yesterday. Similarly I have RENV_CONFIG_PAK_ENABLED in my .Rprofile. I've tested this in local, docker and ci/cd builds, all showing the same error.

#14 0.380 # Bootstrapping renv 1.0.5 ---------------------------------------------------
#14 0.380 - Downloading renv ... OK
#14 1.491 - Installing renv  ... OK
#14 10.27 
#14 10.72 - One or more packages recorded in the lockfile are not installed.
#14 10.72 - Use `renv::status()` for more details.
#14 11.31 # Downloading packages -------------------------------------------------------
#14 11.31 - Downloading pak from r-lib ...                OK [7.6 Mb in 0.36s]
#14 11.87 Successfully downloaded 1 package in 0.72 seconds.
#14 11.87 
#14 11.87 The following package(s) will be installed:
#14 11.87 - pak [0.7.1]
#14 11.87 These packages will be installed into "/home/app/renv/library/R-4.3/x86_64-pc-linux-gnu".
#14 11.87 
#14 11.87 # Installing packages --------------------------------------------------------
#14 11.97 - Installing pak ...                            OK [installed binary and cached in 0.88s]
#14 12.87 Successfully installed 1 package in 0.99 seconds.
#14 16.01 
#14 21.01 ✔ Updated metadata database: 4.27 MB in 9 files.
#14 21.01 
#14 21.01 ℹ Updating metadata database
#14 24.77 ✔ Updating metadata database ... done
#14 24.77 
#14 46.87 Error: 
#14 46.87 ! error in pak subprocess
#14 46.87 Caused by error: 
#14 46.87 ! Could not solve package dependencies:
#14 46.87 * R.cache@0.16.0: dependency conflict
#14 46.87 * desc@1.4.3: dependency conflict
#14 46.87 * pbapply@1.7-2: dependency conflict
#14 46.87 * DT@0.32: dependency conflict
#14 46.87 * dotenv@1.0.3: dependency conflict
#14 46.87 * cyclocomp@1.1.1: dependency conflict
#14 46.87 * crosstalk@1.2.1: dependency conflict
#14 46.87 * globals@0.16.2: dependency conflict
#14 46.87 * rex@1.2.1: dependency conflict
#14 46.87 * fontawesome@0.5.2: dependency conflict
#14 46.87 * waldo@0.5.2: dependency conflict
#14 46.87 * callr@3.7.5: dependency conflict
#14 46.87 * cowplot@1.1.3: dependency conflict
#14 46.87 * config@0.3.2: dependency conflict
#14 46.87 * spatstat.data@3.0-4: dependency conflict
#14 46.87 * fastDummies@1.7.3: dependency conflict
#14 46.87 * ica@1.0-3: dependency conflict
#14 46.87 * labeling@0.4.3: dependency conflict
#14 46.87 * jquerylib@0.1.4: dependency conflict
#14 46.87 * listenv@0.9.1: dependency conflict
#14 46.87 * lifecycle@1.0.4: dependency conflict
#14 46.87 * pkgload@1.3.4: dependency conflict
#14 46.87 * lattice@0.22-5: dependency conflict
#14 46.87 * rprojroot@2.0.4: dependency conflict
#14 46.87 * pillar@1.9.0: dependency conflict
#14 46.87 * tinytex@0.49: dependency conflict
#14 46.87 * stringr@1.5.1: dependency conflict
#14 46.87 * shinyjqui@0.4.1: dependency conflict
#14 46.87 * xtable@1.8-4: dependency conflict
#14 46.87 * vctrs@0.6.5: dependency conflict
#14 46.87 * xmlparsedata@1.0.5: dependency conflict
#14 46.87 * R.oo@1.26.0: dependency conflict
#14 46.87 * leiden@0.4.3.1: dependency conflict
#14 46.87 * abind@1.4-5: dependency conflict
#14 46.87 * RcppTOML@0.2.2: dependency conflict
#14 46.87 * cachem@1.0.8: dependency conflict
#14 46.87 * zoo@1.8-12: dependency conflict
#14 46.87 * base64enc@0.1-3: dependency conflict
#14 46.87 * commonmark@1.9.1: dependency conflict
#14 46.87 * cli@3.6.2: dependency conflict
#14 46.87 * dplyr@1.1.4: dependency conflict
#14 46.87 * farver@2.1.1: dependency conflict
#14 46.87 * gplots@3.1.3.1: dependency conflict
#14 46.87 * fitdistrplus@1.1-11: dependency conflict
#14 46.87 * ggridges@0.5.6: dependency conflict
#14 46.87 * httpuv@1.6.14: dependency conflict
#14 46.87 * future@1.33.1: dependency conflict
#14 46.87 * httr2@1.0.0: dependency conflict
#14 46.87 * magrittr@2.0.3: dependency conflict
#14 46.87 * matrixStats@1.2.0: dependency conflict
#14 46.87 * logger@0.2.2: dependency conflict
#14 46.87 * png@0.1-8: dependency conflict
#14 46.87 * munsell@0.5.0: dependency conflict
#14 46.87 * pkgconfig@2.0.3: dependency conflict
#14 46.87 * knitr@1.45: dependency conflict
#14 46.87 * progressr@0.14.0: dependency conflict
#14 46.87 * openssl@2.1.1: dependency conflict
#14 46.87 * rematch2@2.1.2: dependency conflict
#14 46.87 * promises@1.2.1: dependency conflict
#14 46.87 * ggplot2@3.5.0: dependency conflict
#14 46.87 * nlme@3.1-164: dependency conflict
#14 46.87 * reticulate@1.35.0: dependency conflict
#14 46.87 * rlang@1.1.3: dependency conflict
#14 46.87 * rhino@1.7.0: dependency conflict
#14 46.87 * tensor@1.5: dependency conflict
#14 46.87 * scales@1.3.0: dependency conflict
#14 46.87 * utf8@1.2.4: dependency conflict
#14 46.87 * styler@1.10.2: dependency conflict
#14 46.87 * showtextdb@3.0: dependency conflict
#14 46.87 * sass@0.4.8: dependency conflict
#14 46.87 * R.methodsS3@1.8.2: dependency conflict
#14 46.87 * RColorBrewer@1.1-3: dependency conflict
#14 46.87 * xfun@0.42: dependency conflict
#14 46.87 * sysfonts@0.8.9: dependency conflict
#14 46.87 * tibble@3.2.1: dependency conflict
#14 46.87 * xml2@1.3.6: dependency conflict
#14 46.87 * RcppAnnoy@0.0.22: dependency conflict
#14 46.87 * caTools@1.18.2: dependency conflict
#14 46.87 * bitops@1.0-7: dependency conflict
#14 46.87 * codetools@0.2-19: dependency conflict
#14 46.87 * future.apply@1.11.1: dependency conflict
#14 46.87 * highr@0.10: dependency conflict
#14 46.87 * R.utils@2.12.3: dependency conflict
#14 46.87 * shiny@1.8.0: dependency conflict
#14 46.87 * curl@5.2.1: dependency conflict
#14 46.87 * later@1.3.2: dependency conflict
#14 46.87 * praise@1.0.0: dependency conflict
#14 46.87 * httr@1.4.7: dependency conflict
#14 46.87 * htmlwidgets@1.6.4: dependency conflict
#14 46.87 * polyclip@1.10-6: dependency conflict
#14 46.87 * remotes@2.4.2.1: dependency conflict
#14 46.87 * lintr@3.1.1: dependency conflict
#14 46.87 * purrr@1.0.2: dependency conflict
#14 46.87 * rstudioapi@0.15.0: dependency conflict
#14 46.87 * processx@3.8.3: dependency conflict
#14 46.87 * svglite@2.1.3: Can't install dependency systemfonts (>= 1.0.0)
#14 46.87 * systemfonts: Conflicts with systemfonts@1.0.5
#14 46.87 * shinyjs@2.1.0: dependency conflict
#14 46.87 * tidyselect@1.2.0: dependency conflict
#14 46.87 * patchwork@1.2.0: dependency conflict
#14 46.87 * yaml@2.3.8: dependency conflict
#14 46.87 * waiter@0.2.5: dependency conflict
#14 46.87 * brio@1.1.4: dependency conflict
#14 46.87 * testthat@3.2.1: dependency conflict
#14 46.87 * plotly@4.10.4: dependency conflict
#14 46.87 * evaluate@0.23: dependency conflict
#14 46.87 * gtable@0.3.4: dependency conflict
#14 46.87 * generics@0.1.3: dependency conflict
#14 46.87 * memoise@2.0.1: dependency conflict
#14 46.87 * pkgbuild@1.4.3: dependency conflict
#14 46.87 * mime@0.12: dependency conflict
#14 46.87 * ps@1.7.6: dependency conflict
#14 46.87 * shinyFiles@0.9.3: dependency conflict
#14 46.87 * spatstat.utils@3.0-4: dependency conflict
#14 46.87 * withr@3.0.0: dependency conflict
#14 46.87 * spatstat.random@3.2-3: dependency conflict
#14 46.87 * colorspace@2.1-0: dependency conflict
#14 46.87 * fansi@1.0.6: dependency conflict
#14 46.87 * miniUI@0.1.1.1: dependency conflict
#14 46.87 * reshape2@1.4.4: dependency conflict
#14 46.87 * viridisLite@0.4.2: dependency conflict
#14 46.87 * gridExtra@2.3: dependency conflict
#14 46.87 * here@1.0.1: dependency conflict
#14 46.87 * rappdirs@0.3.3: dependency conflict
#14 46.87 * ROCR@1.0-11: dependency conflict
#14 46.87 * tidyr@1.3.1: dependency conflict
#14 46.87 * crayon@1.5.2: dependency conflict
#14 46.87 * spatstat.sparse@3.0-3: dependency conflict
#14 46.87 * R6@2.5.1: dependency conflict
#14 46.87 * bslib@0.6.1: dependency conflict
#14 46.87 * mgcv@1.9-1: dependency conflict
#14 46.87 * rmarkdown@2.25: dependency conflict
#14 46.87 * igraph@2.0.2: dependency conflict
#14 46.87 ---
#14 46.87 Backtrace:
#14 46.87 1. renv::restore(clean = TRUE)
#14 46.87 2. renv:::renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclu…
#14 46.87 3. pak$pkg_install(remotes)
#14 46.87 4. pak:::remote(function(...) get("pkg_install_make_plan", asNamespace("pak"))(...)…
#14 46.87 5. err$throw(res$error)
#14 46.87 ---
#14 46.87 Subprocess backtrace:
#14 46.87 1. base::withCallingHandlers(cli_message = function(msg) { …
#14 46.87 2. get("pkg_install_make_plan", asNamespace("pak"))(...)
#14 46.87 3. prop$stop_for_solution_error()
#14 46.87 4. private$plan$stop_for_solve_error()
#14 46.87 5. pkgdepends:::pkgplan_stop_for_solve_error(self, private)
#14 46.87 6. base::throw(new_error("Could not solve package dependencies:\n", msg, …
#14 46.87 7. | base::signalCondition(cond)
#14 46.87 8. global (function (e) …
#14 46.87 Traceback (most recent calls last):
#14 46.87 6: renv::restore(clean = TRUE)
#14 46.87 5: renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclude, 
#14 46.87        project = project)
#14 46.87 4: pak$pkg_install(remotes)
#14 46.87 3: remote(function(...) get("pkg_install_make_plan", asNamespace("pak"))(...), 
#14 46.87        list(pkg = pkg, lib = lib, upgrade = upgrade, ask = ask, 
#14 46.87            start = start, dependencies = dependencies, loaded = loaded_packages(lib)))
#14 46.87 2: err$throw(res$error)
#14 46.87 1: base::stop(cond)
#14 46.87 Execution halted
#14 ERROR: process "/bin/sh -c Rscript -e 'renv::restore(clean = TRUE)'" did not complete successfully: exit code: 1
------
 > [r-dependencies 7/9] RUN Rscript -e 'renv::restore(clean = TRUE)':
46.87 6: renv::restore(clean = TRUE)
46.87 5: renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclude, 
46.87        project = project)
46.87 4: pak$pkg_install(remotes)
46.87 3: remote(function(...) get("pkg_install_make_plan", asNamespace("pak"))(...), 
46.87        list(pkg = pkg, lib = lib, upgrade = upgrade, ask = ask, 
46.87            start = start, dependencies = dependencies, loaded = loaded_packages(lib)))
46.87 2: err$throw(res$error)
46.87 1: base::stop(cond)
46.87 Execution halted

@mshunj can you please file a separate issue with a reproducible example?