rstudio / renv

renv: Project environments for R.
https://rstudio.github.io/renv/
MIT License
995 stars 153 forks source link

`renv::restore()` doesn't use RemoteSHA recorded in the lockfile when running in Docker container #1883

Open yogat3ch opened 4 months ago

yogat3ch commented 4 months ago

Hi @kevinushey and renv dev team, We're using renv::restore as part of our Docker build process and just discovered that when renv::restore runs while building the Docker image it's not respecting the RemoteSHA recorded in the lockfile for github dependencies, and is rather using the most recent commit. I was under the assumption that renv::restore uses the RemoteSHA specified in the renv.lock file, but that doesn't seem to be the case. Am I missing a configuration option to ensure that renv::restore uses the RemoteSHA from the lock file?

kevinushey commented 4 months ago

Can you please provide a reproducible example? Also note that the field is normally called RemoteSha, in case you're generating your renv lock files by hand.

yogat3ch commented 4 months ago

Hi @kevinushey, thank you for the prompt response! Not editing by hand, we use explicit snapshots. I'll see about making a test repo with a Dockerfile, it may take me a bit to get it working properly.

yogat3ch commented 4 months ago

Hi @kevinushey, The repo is up here! To reproduce:

  1. Clone the repo
  2. Set your architecture in the Dockerfile if you don't want arm64
  3. Start docker
  4. Run
    docker build -f Dockerfile -t test:arm64_latest . 2>&1 | tee build.log

    And check the build.log and note the discrepancy in RemoteSha of the UU package. You can also just take a look at the build.log file that's present from when I just ran it and see that the hash in the log is different from the hash in the renv.lock. It's the hash of the most recent commit on the repo. image image

Thank you in advance for looking into this!

kevinushey commented 4 months ago

Thanks -- much appreciated! I'll try to take a closer look tomorrow.

yogat3ch commented 4 months ago

Sounds good, thank you @kevinushey !

kevinushey commented 4 months ago

Thanks! I've confirmed the issue, and it's specific to usages of GitHub repositories when renv.config.pak.enabled is set. (To be specific, it's a bug in how renv is trying to use pak, not pak).

We're creating the remote specification using RemoteRef rather than RemoteSha, which is incorrect.

For the curious:

https://github.com/rstudio/renv/blob/5cbf955aef25396ede5d27d5fb375611b4251a4c/R/pak.R#L126-L127

but we prefer using RemoteRef when available when formatting a remote:

https://github.com/rstudio/renv/blob/5cbf955aef25396ede5d27d5fb375611b4251a4c/R/records.R#L131-L138

so we'll want to adjust how we format the remote for use by pak to prefer using the RemoteSha instead.

Thanks again for providing the reproducible example; it made it far easier to ascertain the root cause here!

yogat3ch commented 4 months ago

@kevinushey Awesome, thank you for diagnosing the issue! So is it just a matter of switching the order of the if else statement there?

kevinushey commented 4 months ago

Not quite; that function is used both when trying to format a record as a remote for display (where we might want to truncate the SHA since just the first few characters are probably fine), whereas we'd want to preserve the entire SHA when using that for an actual installation request. I'm going to poke at it a bit further.

kevinushey commented 4 months ago

This should now be fixed up in the development version of renv -- would you be able to test and verify on your side as well?

yogat3ch commented 4 months ago

Hi @kevinushey, Verified working on my end! Thank you for fixing that so quickly!

yogat3ch commented 3 months ago

Hi @kevinushey, It looks like this is having some unexpected downstream consequences with pak. It seems like pak has some kind of internal dependency version checking for when multiple packages point to different versions of a single dependency, it has no way of resolving which to install

#19 49.58 Error:
--
2478 | #19 49.58 ! error in pak subprocess
2479 | #19 49.58 Caused by error:
2480 | #19 49.58 ! Could not solve package dependencies:
2481 | #19 49.58 * yogat3ch/DTExtend@436c239d6c7c7c4bc4df1d7ff2acc9b03fb0934a: Can't install dependency yogat3ch/UU (>= 1.44.0)
2482 | #19 49.58 * yogat3ch/UU: Conflicts with yogat3ch/UU@1935fc3262898ed6c93237407565e3b910579616
2483 | #19 49.58 * yogat3ch/OpenMCE@a1ad9b528138a58b0537531aa8dcc00be12e7850: Can't install dependency yogat3ch/UU
2484 | #19 49.58 * yogat3ch/bs4Dash@1d4d4618e47457067fd07e17c840e58f0213c684: Can't install dependency yogat3ch/UU (>= 1.5.1)
2485 | #19 49.58 * Martin-McCoy/DMDUAPI@3846630ba715eef40230ae5e81608dc129bbac32: Can't install dependency yogat3ch/UU (>= 1.39.3)
2486 | #19 49.58 * nlme@3.1-162: dependency conflict
2487 | #19 49.58 * Martin-McCoy/shinyVirga@59764669b9b9fe679220c78130e038fd548d0231: Can't install dependency yogat3ch/UU (>= 1.43.0)
2488 | #19 49.58 * JohnCoene/tippy@0d89b2a5cf67c7ba2868a4777125326ef462ec76: dependency conflict
2489 | #19 49.58 * Martin-McCoy/virgaUtils@3dbd35799aa988f6b43ebe512a64069f77356e2c: Can't install dependency yogat3ch/UU (>= 0.24.2)
2490 | #19 49.58 * codetools@0.2-19: dependency conflict
2491 | #19 49.58 * R6@2.5.1: dependency conflict
2492 | #19 49.58 * cpp11@0.4.7: dependency conflict
2493 | #19 49.58 * credentials@2.0.1: dependency conflict
2494 | #19 49.58 * curl@5.2.1: dependency conflict
2495 | #19 49.58 * dplyr@1.1.4: dependency conflict

Does it make sense to you that this would happen or should I try to create a reprex?

It seems like it needs to resolve to whichever is the latest, unless that conflict with an explicit exact version/hash declaration that uses the == ?

Or it could just ignore all the dependency versions and install whatever the explicitly declared version is in the renv.lock, and if there isn't one, encourage the user to install the version they want and snapshot it.

yogat3ch commented 3 months ago

Hey @kevinushey, Bumping this as the workaround we tried does not fix the issue. renv will use the latest version of every Github package if the package is installed from Github, even if the version number is not what's specified in the renv.lock and even if the DESCRIPTION explicitly specifies a package version other than the most recent. A quick scan over the recent issues suggests that 9328cfe might be causing other people's builds to fail if they installed renv from Github, given how renv is automatically using the most recent version of everything installed from Github, anyone with renv recorded in their lockfile from Github is going to get the latest version, regardless of whats in the lockfile.

yogat3ch commented 3 months ago

We just built these two utilities for overwriting the latest version that renv installs with the version specified in the lockfile. Hopefully they prove helpful for fixing the issue:

renv_gh_pkgs <- function(file = "renv.lock") {
  lf <- if (!inherits(file, "renv_lockfile"))
    renv::lockfile_read(file)
  else
    file
  gh_pkgs <- purrr::keep(lf$Packages, \(.x) .x$Source == "GitHub")
}

renv_gh_pkgs_install <- function(pkgs) {
  purrr::walk(pkgs, \(.x) {
    remotes::install_github(
      sprintf("%s/%s", .x$RemoteUsername, .x$RemoteRepo),
      ref = .x$RemoteSha
    )
  })

}

We've implemented after renv::restore in the Dockerfile as follows:


# Copies the renv.lock file from your local project into the Docker image.
# This lock file ensures that R packages are installed at specific versions for reproducibility.
COPY renv.lock renv.lock

# Copies the .Renviron file, which typically contains environment variables for R.
# This can include API keys or other credentials needed for your R environment.
COPY .Renviron .Renviron

# Copies the .Rprofile, which can contain R commands to run every time an R session starts.
# This can be used to set global options or load certain packages by default.
COPY .Rprofile .Rprofile

# Copies the .Rbuildignore file into the Docker image.
# This file indicates which files and directories should be ignored by R build tools.
COPY .Rbuildignore .Rbuildignore

# Copies the 'renv' directory, which contains R package caches and configuration files.
# This directory helps 'renv' manage packages more efficiently.
COPY renv renv

# Sets the RENV_PATHS_LIBRARY environment variable.
# This tells 'renv' where to store and look for installed R packages.
ENV RENV_PATHS_LIBRARY /usr/local/lib/R/site-library

# Installs the 'remotes' package, which is useful for installing R packages from sources such as GitHub.
RUN R --quiet -e "install.packages('remotes')"

# Installs the 'renv' package, a package management tool that helps isolate project-specific dependencies.
# This version includes a fix that ensures the SHA of Github packages recorded in the lockfile are installed instead of the most recent version.
RUN R --quiet -e "install.packages('renv')"

# Restores the R environment based on the renv.lock file.
# This ensures that all R package dependencies are installed.
RUN R --quiet -e "renv::diagnostics();renv::restore(library = '/usr/local/lib/R/site-library')"

# Copy functions for installing specific versions
COPY R/utils_renv.R R/utils_renv.R

# Overwrite whatever versions the `renv::restore` installed for Github Repositories with those recorded in the lockfile
RUN R --quiet -e "source('R/utils_renv.R'); renv_gh_pkgs_install(renv_gh_pkgs());"
kevinushey commented 3 months ago

Could you also share the lockfile where you saw this issue, so I can try to reproduce locally and better understand the issue?

yogat3ch commented 3 months ago

Hi @kevinushey, I've updated the testRenvDocker repo with a lockfile that is similar to the one we're using except that it has private Github repos removed. I've installed the dev version of renv there so It will throw the dependency conflict error mentioned above.

As I'm debugging this Dockerfile, it looks like renv is not observing version numbers for CRAN installed packages. It seems like the most recent version of DT gets installed as a dependency, renv::restore detects the presence of this later version of DT and doesn't install the version specified in the lockfile. It seems like renv::restore needs an argument like use_lockfile_versions that will re-install the specific Github hashes and or versions of packages specified by the lockfile. rebuild is close, but that sounds like it reinstalls literally everything, and not just the packages that have Version/RemoteSha discrepancies. Thoughts on that approach?

We've happened upon another issue, which I can move over to another issue if need be. UPDATE The below issue is resolved. Rebooting the computer was apparently all that was needed since that's the only change since I tried last night! 🤷

We re-arranged our workaround a bit in the Dockerfile:

# This tells 'renv' where to store and look for installed R packages.
ENV RENV_PATHS_LIBRARY /usr/local/lib/R/site-library

# Installs the 'remotes' package, which is useful for installing R packages from sources such as GitHub.
RUN R --quiet -e "install.packages('remotes', lib = Sys.getenv('RENV_PATHS_LIBRARY'))"

# Installs the 'renv' package, a package management tool that helps isolate project-specific dependencies.
# This version includes a fix that ensures the SHA of Github packages recorded in the lockfile are installed instead of the most recent version.
RUN R --quiet -e "install.packages('renv', lib = Sys.getenv('RENV_PATHS_LIBRARY'))"

# Copy functions for installing specific versions
COPY R/utils_renv.R R/utils_renv.R

# Need purrr for subsequent calls
RUN R --quiet -e "install.packages('purrr', lib = Sys.getenv('RENV_PATHS_LIBRARY'))"
# Overwrite whatever versions the `renv::restore` installed for Github Repositories with those recorded in the lockfile
RUN R --quiet -e "source('R/utils_renv.R'); renv::deactivate(); renv_gh_pkgs_install(renv_gh_pkgs());"

# Restores the R environment based on the renv.lock file.
# This ensures that all R package dependencies are installed.
RUN R --quiet -e "renv::deactivate();source('R/utils_renv.R'); renv::restore(exclude = names(renv_gh_pkgs()))"

In order to install the Github repos first, using their specific RemoteSha values, and then exclude them from the renv::restore so as not to install the dependencies twice.

For some reason, switching the order of operations has now produced this obtuse error when running renv::restore:

#21 146.7 ℹ Installing system requirements
#21 146.7 ℹ Executing `sh -c apt-get -y update`
#21 150.7 Error: 
#21 150.7 ! error in pak subprocess
#21 150.7 Caused by error in `processx::run(sh, cmdline, stdout_callback = callback, stderr_to_stdout = TRUE)`:
#21 150.7 ! System command 'sh' failed

The container is built off of this image:

FROM rocker/r-ver:4.3.0@sha256:9c1703e265fca5a17963a1b255b3b2ead6dfc6d65c57e4af2f31bec15554da86 AS base-arm64

And I verified that it can run sh commands by booting an already built version of it interactively using the sh command

image

Any idea what's going on here? Seems like it can't run the sh command from the background process initialized by processx::run? Should I move this to a new issue?

Full build.log output with traceback ``` #21 143.7 ✔ Got parsnip 1.0.4 (source) (971.48 kB) #21 144.5 ✔ Got plotly 4.10.1 (source) (3.89 MB) #21 144.5 ✔ Got ggbeeswarm 0.7.2 (source) (1.72 MB) #21 146.7 ✔ Got vipor 0.4.5 (source) (4.70 MB) #21 146.7 ℹ Installing system requirements #21 146.7 ℹ Executing `sh -c apt-get -y update` #21 150.7 Error: #21 150.7 ! error in pak subprocess #21 150.7 Caused by error in `processx::run(sh, cmdline, stdout_callback = callback, stderr_to_stdout = TRUE)`: #21 150.7 ! System command 'sh' failed #21 150.7 --- #21 150.7 Exit status: 100 #21 150.7 Stdout & stderr: #21 150.7 Get:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease [270 kB] #21 150.7 Err:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease #21 150.7 At least one invalid signature was encountered. #21 150.7 Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [119 kB] #21 150.7 Err:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease #21 150.7 At least one invalid signature was encountered. #21 150.7 Get:3 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [109 kB] #21 150.7 Err:3 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease #21 150.7 At least one invalid signature was encountered. #21 150.7 Get:4 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [110 kB] #21 150.7 Err:4 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease #21 150.7 At least one invalid signature was encountered. #21 150.7 Reading package lists... #21 150.7 W: GPG error: http://ports.ubuntu.com/ubuntu-ports jammy InRelease: At least one invalid signature was encountered. #21 150.7 E: The repository 'http://ports.ubuntu.com/ubuntu-ports jammy InRelease' is not signed. #21 150.7 W: GPG error: http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease: At least one invalid signature was encountered. #21 150.7 E: The repository 'http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease' is not signed. #21 150.7 W: GPG error: http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease: At least one invalid signature was encountered. #21 150.7 E: The repository 'http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease' is not signed. #21 150.7 W: GPG error: http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease: At least one invalid signature was encountered. #21 150.7 E: The repository 'http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease' is not signed. #21 150.7 --- #21 150.7 Backtrace: #21 150.7 1. renv::restore(exclude = names(renv_gh_pkgs())) #21 150.7 2. renv:::renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclu… #21 150.7 3. pak$pkg_install(remotes) #21 150.7 4. pak:::remote(function(...) get("pkg_install_do_plan", asNamespace("pak"))(...), … #21 150.7 5. err$throw(res$error) #21 150.7 --- #21 150.7 Subprocess backtrace: #21 150.7 1. base::withCallingHandlers(cli_message = function(msg) { … #21 150.7 2. get("pkg_install_do_plan", asNamespace("pak"))(...) #21 150.7 3. proposal$install_sysreqs() #21 150.7 4. pkgdepends:::sysreqs_install(cmds, config) #21 150.7 5. base::lapply(cmds, function(cmd) { … #21 150.7 6. local FUN(X[[i]], ...) #21 150.7 7. processx::run(sh, cmdline, stdout_callback = callback, stderr_to_stdout = … #21 150.7 8. base::throw(new_process_error(res, call = sys.call(), echo = echo, … #21 150.7 9. | base::signalCondition(cond) #21 150.7 10. global (function (e) … #21 150.7 Traceback (most recent calls last): #21 150.7 6: renv::restore(exclude = names(renv_gh_pkgs())) #21 150.7 5: renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclude, #21 150.7 project = project) #21 150.7 4: pak$pkg_install(remotes) #21 150.7 3: remote(function(...) get("pkg_install_do_plan", asNamespace("pak"))(...), #21 150.7 list(proposal = NULL)) #21 150.7 2: err$throw(res$error) #21 150.7 1: base::stop(cond) #21 150.7 Execution halted #21 ERROR: process "/bin/sh -c R --quiet -e \"renv::deactivate();source('R/utils_renv.R'); renv::restore(exclude = names(renv_gh_pkgs()))\"" did not complete successfully: exit code: 1 ------ > [stage-2 16/16] RUN R --quiet -e "renv::deactivate();source('R/utils_renv.R'); renv::restore(exclude = names(renv_gh_pkgs()))": 150.7 Traceback (most recent calls last): 150.7 6: renv::restore(exclude = names(renv_gh_pkgs())) 150.7 5: renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclude, 150.7 project = project) 150.7 4: pak$pkg_install(remotes) 150.7 3: remote(function(...) get("pkg_install_do_plan", asNamespace("pak"))(...), 150.7 list(proposal = NULL)) 150.7 2: err$throw(res$error) 150.7 1: base::stop(cond) 150.7 Execution halted ------ Dockerfile:104 -------------------- 102 | # Restores the R environment based on the renv.lock file. 103 | # This ensures that all R package dependencies are installed. 104 | >>> RUN R --quiet -e "renv::deactivate();source('R/utils_renv.R'); renv::restore(exclude = names(renv_gh_pkgs()))" 105 | 106 | -------------------- ERROR: failed to solve: process "/bin/sh -c R --quiet -e \"renv::deactivate();source('R/utils_renv.R'); renv::restore(exclude = names(renv_gh_pkgs()))\"" did not complete successfully: exit code: 1 ```
yogat3ch commented 3 months ago

Hey @kevinushey, We're still trying to figure out a workaround for this issue as it's holding up our production build. Having the right versions of packages is critical.

In the process of attempting to derive a functioning workaround we're encountering other unexpected issues, one of which I thought ought to be surfaced to the renv team.

I'm interactively debugging a container built from the rocker/r-ver:4.3.0@sha256:9c1703e265fca5a17963a1b255b3b2ead6dfc6d65c57e4af2f31bec15554da86 ARM64 build.

The container has been built with the 2.2.1 version of bs4Dash, which can be seen in the packageDescription output below:

packageDescription("bs4Dash")
Package: bs4Dash
Type: Package
Title: A 'Bootstrap 4' Version of 'shinydashboard'
Version: 2.2.1
Authors@R: c( person("David", "Granjon", email = "dgranjon@ymail.com",
        role = c("aut", "cre")), person(family = "RinteRface", role =
        "cph"), person(family = "Almasaeed Studio", role = c("ctb",
        "cph"), comment = "AdminLTE3 theme for Bootstrap 4"),
        person("Winston", "Chang", role = c("ctb", "cph"), comment =
        "Utils functions from shinydashboard"))
Maintainer: David Granjon <dgranjon@ymail.com>
Description: Make 'Bootstrap 4' Shiny dashboards. Use the full power of
        'AdminLTE3', a dashboard template built on top of 'Bootstrap 4'
        <https://github.com/ColorlibHQ/AdminLTE>.
URL: https://rinterface.github.io/bs4Dash/index.html,
        https://github.com/RinteRface/bs4Dash
BugReports: https://github.com/RinteRface/bs4Dash/issues
License: GPL (>= 2) | file LICENSE
Imports: shiny (>= 1.6.0), htmltools (>= 0.5.1.1), jsonlite (>=
        0.9.16), fresh, grDevices, waiter (>= 0.2.3), httpuv (>=
        1.5.2), lifecycle, bslib (>= 0.2.4), httr, UU (>= 1.5.1)
Suggests: knitr, rmarkdown, testthat (>= 2.1.0), golem, DT, thematic
        (>= 0.1.2)
Encoding: UTF-8
RoxygenNote: 7.2.3
VignetteBuilder: knitr
Collate: 'aaa_reimports.R' 'feedbacks.R' 'useful-items.R' 'tabs.R'
        .....
RdMacros: lifecycle
Remotes: yogat3ch/UU
NeedsCompilation: no
Packaged: 2024-05-23 14:58:06 UTC; root
Author: David Granjon [aut, cre], RinteRface [cph], Almasaeed Studio
        [ctb, cph] (AdminLTE3 theme for Bootstrap 4), Winston Chang
        [ctb, cph] (Utils functions from shinydashboard)
Built: R 4.3.0; ; 2024-05-23 14:58:07 UTC; unix
RemoteType: github
RemoteHost: api.github.com
RemoteRepo: bs4Dash
RemoteUsername: yogat3ch
RemotePkgRef: yogat3ch/bs4Dash@HEAD
RemoteRef: HEAD
RemoteSha: 1d4d4618e47457067fd07e17c840e58f0213c684
GithubRepo: bs4Dash
GithubUsername: yogat3ch
GithubRef: HEAD
GithubSHA1: 1d4d4618e47457067fd07e17c840e58f0213c684

-- File: /usr/local/lib/R/site-library/bs4Dash/Meta/package.rds 

As part of the Dockerfile build process, one step is renv::restore which produces the following output:

RUN R --quiet -e "renv::restore()"
#10 [stage-4 5/5] RUN R --quiet -e "renv::restore()"
#10 0.368 > renv::restore()
#10 4.992 
#10 6.615 ✔ Updated metadata database: 1.37 MB in 1 file.
#10 6.615 
#10 6.616 ℹ Updating metadata database
#10 8.851 ✔ Updating metadata database ... done
#10 8.852 
#10 9.077  
#10 9.078   
#10 9.240 ℹ No downloads are needed
#10 9.273 ✔ 2 pkgs + 1 dep:  [5.3s]
#10 9.296 > 
#10 9.296 > 
#10 DONE 9.8s

despite the fact that in the renv.lock has the following entry (viewed from the output of renv::lockfile_read):

> rl$Packages$bs4Dash
$Package
[1] "bs4Dash"

$Version
[1] "2.3.3"

$Source
[1] "GitHub"

$Remotes
[1] "yogat3ch/UU"

$RemoteType
[1] "github"

$RemoteHost
[1] "api.github.com"

$RemoteRepo
[1] "bs4Dash"

$RemoteUsername
[1] "yogat3ch"

$RemoteRef
[1] "bc1e40f"

$RemoteSha
[1] "bc1e40f404915e566c0a70acc543288a0928989f"

$Requirements
 [1] "UU"        "bslib"     "fresh"     "grDevices" "htmltools" "httpuv"   
 [7] "httr"      "jsonlite"  "lifecycle" "shiny"     "waiter"   

$Hash
[1] "a707c272226b7265b5d2221f66a604c8"

There's a discrepancy in version number and hash number that renv::restore doesn't seem to pick up on.

I've replicated this same behavior outside the Docker container on my Mac environment. This is the output of .libPaths for context:

.libPaths()
[1] "/Users/stephenholsenbeck/Library/Caches/org.R-project.R/R/renv/library/dmdu-4393acb2/R-4.3/aarch64-apple-darwin20"
[2] "/Users/stephenholsenbeck/Library/Caches/org.R-project.R/R/renv/sandbox/R-4.3/aarch64-apple-darwin20/ac5c2659"

Am I missing something critical about how renv::restore is supposed to work? I thought it was meant to synchronize the version of packages in the library with the versions of packages specified in the lockfile? I feel like renv::restore has synchronized based on the lockfile properly in the past when there was a version discrepancy, but it doesn't seem to be doing it anymore? Or is there some setting that's making it overlook the discrepancy in package versions?

renv::diagnostics from my mac ```R renv::diagnostics() Diagnostics Report [renv 1.0.7] =============================== # Session Info -------------------------------------------------------- R version 4.3.0 (2023-04-21) Platform: aarch64-apple-darwin20 (64-bit) Running under: macOS 14.5 Matrix products: default BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.11.0 locale: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 time zone: America/New_York tzcode source: internal attached base packages: [1] stats graphics grDevices datasets utils methods base loaded via a namespace (and not attached): [1] utf8_1.2.4 magrittr_2.0.3 glue_1.6.2 stringr_1.5.0 [5] tibble_3.2.1 pkgconfig_2.0.3 lifecycle_1.0.3 cli_3.6.2 [9] fansi_1.0.4 vctrs_0.6.5 renv_1.0.7 compiler_4.3.0 [13] plyr_1.8.8 tools_4.3.0 purrr_1.0.2 rstudioapi_0.15.0 [17] pillar_1.9.0 Rcpp_1.0.11 rlang_1.1.3 fs_1.6.3 [21] stringi_1.7.12 # Project ------------------------------------------------------------- Project path: "~/Documents/R/Contributor_Repos/VirgaLabs/dmdu" # Status -------------------------------------------------------------- No issues found -- the project is in a consistent state. # Packages ------------------------------------------------------------ Library Source Lockfile Source Path Dependency AsioHeaders 1.22.1-2 CRAN [1] indirect BH 1.81.0-1 CRAN 1.81.0-1 CRAN [1] indirect BOR 0.4.0 GitHub [1] direct DBI 1.1.3 CRAN [1] DMDUAPI 2.9.0 GitHub 2.9.0 GitHub [1] direct DT 0.27 CRAN 0.27 CRAN [1] direct DTExtend 1.3.1.9000 GitHub 1.3.1.9000 GitHub [1] direct DiagrammeR 1.0.10 CRAN 1.0.10 CRAN [1] direct Formula 1.2-5 CRAN [1] KernSmooth 2.23-20 CRAN [2] MASS 7.3-60 CRAN 7.3-60 CRAN [1] direct Matrix 1.5-4.1 CRAN 1.5-4.1 CRAN [1] indirect OpenMCE 1.0.1 GitHub 1.0.1 GitHub [1] direct R.cache 0.16.0 CRAN [1] R6 2.5.1 CRAN 2.5.1 CRAN [1] direct RColorBrewer 1.1-3 CRAN 1.1-3 CRAN [1] direct RMySQL 0.10.25 CRAN [1] Rcpp 1.0.12 CRAN 1.0.12 CRAN [1] indirect RcppCCTZ 0.2.12 CRAN [1] RcppDate 0.0.3 CRAN [1] UU 1.54.1 GitHub 1.54.1 GitHub [1] direct V8 4.3.3 CRAN 4.3.3 CRAN [1] indirect airtabler 0.1.6 GitHub 0.1.6 GitHub [1] direct anytime 0.3.9 CRAN 0.3.9 CRAN [1] indirect askpass 1.2.0 CRAN 1.2.0 CRAN [1] indirect assertthat 0.2.1 CRAN 0.2.1 CRAN [1] indirect attempt 0.3.1 CRAN 0.3.1 CRAN [1] indirect aws.iam 0.1.8 CRAN [1] aws.s3 0.3.21 CRAN [1] direct aws.signature 0.6.0 CRAN [1] indirect backports 1.4.1 CRAN 1.4.1 CRAN [1] indirect base [2] direct base64enc 0.1-3 CRAN 0.1-3 CRAN [1] indirect bayestestR 0.13.0 CRAN [1] beeswarm 0.4.0 CRAN 0.4.0 CRAN [1] indirect bit 4.0.5 CRAN 4.0.5 CRAN [1] indirect bit64 4.0.5 CRAN 4.0.5 CRAN [1] indirect blob 1.2.4 CRAN [1] boot 1.3-28.1 CRAN [2] brew 1.0-10 CRAN 1.0-10 CRAN [1] indirect brio 1.1.3 CRAN 1.1.3 CRAN [1] indirect broom 1.0.5 CRAN 1.0.5 CRAN [1] indirect bs4Dash 2.2.1 GitHub 2.2.1 GitHub [1] direct bslib 0.6.1 CRAN 0.6.1 CRAN [1] indirect cachem 1.0.8 CRAN 1.0.8 CRAN [1] indirect callr 3.7.3 RSPM 3.7.3 CRAN [1] indirect capture 0.1.4 GitHub 0.1.4 GitHub [1] direct cellranger 1.1.0 CRAN [1] indirect checkmate 2.2.0 CRAN 2.2.0 CRAN [1] indirect chromote 0.1.2.9000 GitHub [1] indirect cicerone 1.0.5.9000 GitHub [1] class 7.3-21 CRAN [2] cli 3.6.2 CRAN 3.6.2 CRAN [1] direct clipr 0.8.0 CRAN 0.8.0 CRAN [1] indirect cluster 2.1.4 CRAN [2] codetools 0.2-19 CRAN 0.2-19 CRAN [2] indirect collections 0.3.7 CRAN [1] colorspace 2.1-0 CRAN 2.1-0 CRAN [1] direct commonmark 1.9.1 CRAN 1.9.1 CRAN [1] indirect compiler [2] indirect config 0.3.1 CRAN 0.3.1 CRAN [1] direct correlation 0.8.3 CRAN [1] corrplot 0.92 CRAN 0.92 CRAN [1] indirect countrycode 1.5.0 CRAN 1.5.0 CRAN [1] indirect covrpage direct cpp11 0.4.7 CRAN 0.4.7 CRAN [1] indirect crayon 1.5.2 CRAN 1.5.2 CRAN [1] indirect credentials 2.0.1 CRAN 2.0.1 CRAN [1] indirect crew 0.9.2 CRAN 0.9.2 CRAN [1] direct crosstalk 1.2.1 GitHub 1.2.1 GitHub [1] direct crssDB 1.0.0 GitHub [1] curl 5.2.1 CRAN 5.2.1 CRAN [1] direct cyclocomp 1.1.0 CRAN [1] data.table 1.14.10 CRAN 1.14.10 CRAN [1] indirect data.tree 1.0.0 CRAN 1.0.0 CRAN [1] indirect datawizard 0.7.1 CRAN [1] dbplyr 2.3.2 CRAN [1] desc [1] indirect devtools 2.4.5 CRAN 2.4.5 CRAN [1] direct diffobj 0.3.5 CRAN 0.3.5 CRAN [1] indirect digest 0.6.35 CRAN 0.6.35 CRAN [1] direct dmdu 1.32.0 unknown [1] direct downlit 0.4.3 CRAN 0.4.3 CRAN [1] indirect downloader 0.4 CRAN 0.4 CRAN [1] indirect dplyr 1.1.4 CRAN 1.1.4 CRAN [1] direct echarts4r 0.4.5 CRAN 0.4.5 CRAN [1] direct echartsUtils 0.8.0.9000 GitHub 0.8.0.9000 GitHub [1] direct echarty 1.4.5 CRAN 1.4.5 CRAN [1] direct effectsize 0.8.3 CRAN [1] ellipsis 0.3.2 CRAN 0.3.2 CRAN [1] indirect emayili 0.7.18 CRAN 0.7.18 CRAN [1] indirect english 1.2-6 CRAN 1.2-6 CRAN [1] direct evaluate 0.21 CRAN 0.21 CRAN [1] indirect fansi 1.0.4 CRAN 1.0.4 CRAN [1] indirect farver 2.1.1 CRAN 2.1.1 CRAN [1] indirect fastmap 1.1.1 CRAN 1.1.1 CRAN [1] indirect filelock 1.0.2 CRAN [1] fontawesome 0.5.2 CRAN 0.5.2 CRAN [1] indirect foreign 0.8-84 CRAN [2] fresh 0.2.0 CRAN 0.2.0 CRAN [1] indirect fs 1.6.3 CRAN 1.6.3 CRAN [1] direct gargle 1.3.0 CRAN [1] direct generics 0.1.3 CRAN 0.1.3 CRAN [1] indirect gert 2.0.1 CRAN 2.0.1 CRAN [1] indirect getip 0.1-4 CRAN 0.1-4 CRAN [1] indirect ggbeeswarm 0.7.2 CRAN 0.7.2 CRAN [1] direct ggplot2 3.4.4 CRAN 3.4.4 CRAN [1] direct gh 1.4.0 CRAN 1.4.0 CRAN [1] indirect gitcreds 0.1.2 CRAN 0.1.2 CRAN [1] indirect globals 0.16.2 CRAN 0.16.2 CRAN [1] indirect glue 1.7.0 CRAN 1.7.0 CRAN [1] direct gmailr direct golem 0.4.1 CRAN 0.4.1 CRAN [1] direct googleAuthR 2.0.1 CRAN [1] googleLanguageR 0.3.0 CRAN [1] googledrive 2.1.0 CRAN [1] direct googlesheets4 1.1.0 CRAN [1] direct grDevices [2] direct graphics [2] indirect grid [2] indirect gridExtra 2.3 CRAN 2.3 CRAN [1] indirect gtable 0.3.4 CRAN 0.3.4 CRAN [1] indirect hardhat 1.3.0 CRAN 1.3.0 CRAN [1] indirect here 1.0.1 CRAN 1.0.1 CRAN [1] indirect highr 0.10 CRAN 0.10 CRAN [1] indirect hms 1.1.3 CRAN 1.1.3 CRAN [1] indirect html2R 0.1.0 CRAN [1] html2tags 0.0.0.9000 GitHub [1] htmltools 0.5.8.1 CRAN 0.5.8.1 CRAN [1] direct htmlwidgets 1.6.4 CRAN 1.6.4 CRAN [1] direct httpuv 1.6.15 CRAN 1.6.15 CRAN [1] direct httr 1.4.7 CRAN 1.4.7 CRAN [1] indirect httr2 1.0.0 CRAN 1.0.0 CRAN [1] indirect ids 1.0.1 CRAN [1] indirect igraph 1.5.1 CRAN 1.5.1 CRAN [1] direct ini 0.3.1 CRAN 0.3.1 CRAN [1] indirect insight 0.19.1 CRAN [1] inum 1.0-5 CRAN [1] isoband 0.2.7 CRAN 0.2.7 CRAN [1] indirect jose 1.2.0 CRAN 1.2.0 CRAN [1] indirect jquerylib 0.1.4 CRAN 0.1.4 CRAN [1] indirect jsonlite 1.8.8 CRAN 1.8.8 CRAN [1] direct jsonvalidate 1.3.2 CRAN 1.3.2 CRAN [1] direct knitr 1.44 CRAN 1.44 CRAN [1] indirect labeling 0.4.3 CRAN 0.4.3 CRAN [1] indirect languageserver 0.3.15 CRAN [1] later 1.3.2 CRAN 1.3.2 CRAN [1] indirect lattice 0.20-45 CRAN 0.20-45 CRAN [1] indirect lazyeval 0.2.2 CRAN 0.2.2 CRAN [1] indirect learnr 0.11.3 CRAN 0.11.3 CRAN [1] indirect libcoin 1.0-9 CRAN [1] lifecycle 1.0.3 CRAN 1.0.3 CRAN [1] indirect lintr 3.1.0 CRAN [1] listviewer 3.0.0 CRAN [1] logger 0.2.2 CRAN 0.2.2 CRAN [1] indirect lubridate 1.9.3 CRAN 1.9.3 CRAN [1] direct magrittr 2.0.3 CRAN 2.0.3 CRAN [1] indirect markdown 1.5 CRAN 1.5 CRAN [1] indirect memoise 2.0.1 CRAN 2.0.1 CRAN [1] indirect methods [2] indirect mgcv 1.9-0 CRAN 1.9-0 CRAN [1] indirect mime 0.12 CRAN 0.12 CRAN [1] indirect miniUI 0.1.1.1 CRAN 0.1.1.1 CRAN [1] indirect mirai 0.12.0 CRAN 0.12.0 CRAN [1] indirect modelbased 0.8.6 CRAN [1] munsell 0.5.0 CRAN 0.5.0 CRAN [1] indirect mvtnorm 1.2-2 CRAN 1.2-2 CRAN [1] direct nanonext 1.0.0 CRAN 1.0.0 CRAN [1] direct nanotime 0.3.7 CRAN [1] nlme 3.1-162 CRAN 3.1-162 CRAN [2] indirect nnet 7.3-18 CRAN [2] officer direct openssl 2.1.1 CRAN 2.1.1 CRAN [1] indirect packer 0.1.3 CRAN 0.1.3 CRAN [1] indirect parallel [2] indirect parameters 0.20.2 CRAN [1] parsnip 1.0.4 CRAN 1.0.4 CRAN [1] direct partykit 1.2-19 CRAN [1] performance 0.10.2 CRAN [1] pillar 1.9.0 CRAN 1.9.0 CRAN [1] indirect pingr 2.0.2 CRAN [1] indirect pkgbuild 1.4.3 CRAN 1.4.3 CRAN [1] indirect pkgconfig 2.0.3 CRAN 2.0.3 CRAN [1] indirect pkgdown 2.0.7 CRAN 2.0.7 CRAN [1] indirect pkgload 1.3.4 CRAN 1.3.4 CRAN [1] direct plotly 4.10.1 CRAN 4.10.1 CRAN [1] direct plyr 1.8.9 CRAN 1.8.9 CRAN [1] direct pool 1.0.1 CRAN [1] praise 1.0.0 CRAN 1.0.0 CRAN [1] indirect precommit 0.4.2.9000 GitHub [1] prettyunits 1.2.0 CRAN 1.2.0 CRAN [1] indirect processx 3.8.3 CRAN 3.8.3 CRAN [1] indirect profvis 0.3.8 CRAN 0.3.8 CRAN [1] indirect progress 1.2.2 CRAN 1.2.2 CRAN [1] indirect promises 1.2.1 CRAN 1.2.1 CRAN [1] indirect ps 1.7.6 CRAN 1.7.6 CRAN [1] indirect purrr 1.0.2 CRAN 1.0.2 CRAN [1] direct ragg 1.2.5 CRAN 1.2.5 CRAN [1] indirect rappdirs 0.3.3 CRAN 0.3.3 CRAN [1] indirect rcmdcheck 1.4.0 CRAN 1.4.0 CRAN [1] indirect readr 2.1.5 CRAN 2.1.5 CRAN [1] direct rematch 1.0.1 CRAN [1] indirect rematch2 2.1.2 CRAN 2.1.2 CRAN [1] indirect remotes 2.5.0 CRAN 2.5.0 CRAN [1] direct renv 1.0.7 CRAN 1.0.7 CRAN [1] direct rex 1.2.1 RSPM [1] rhub direct rlang 1.1.3 CRAN 1.1.3 CRAN [1] direct rmarkdown [1] direct roxygen2 7.2.3 RSPM 7.2.3 RSPM [1] direct rpart 4.1.19 CRAN [2] rpart.plot 3.1.1 CRAN [1] rprojroot 2.0.4 CRAN 2.0.4 CRAN [1] indirect rrapply 1.2.6 CRAN 1.2.6 CRAN [1] direct rstudioapi 0.15.0 CRAN 0.15.0 CRAN [1] direct rversions 2.1.2 CRAN 2.1.2 CRAN [1] indirect rvest 1.0.3 CRAN 1.0.3 CRAN [1] direct sass 0.4.9 CRAN 0.4.9 CRAN [1] direct scales 1.3.0 CRAN 1.3.0 CRAN [1] direct see 0.7.5 CRAN [1] selectr 0.4-2 CRAN 0.4-2 CRAN [1] indirect sendgridr 0.6.3 GitHub 0.6.3 GitHub [1] direct sentryR 1.1.1.9000 GitHub 1.1.1.9000 GitHub [1] direct sessioninfo 1.2.2 CRAN 1.2.2 CRAN [1] indirect shiny 1.8.1.1 CRAN 1.8.1.1 CRAN [1] direct shiny.i18n 0.3.0 GitHub 0.3.0 GitHub [1] direct shiny.tailwind 0.2.2 GitHub 0.2.2 GitHub [1] direct shinyAce 0.4.2 CRAN [1] shinyVirga 0.45.1 GitHub 0.45.1 GitHub [1] direct shinyWidgets 0.8.3 GitHub 0.8.3 GitHub [1] direct shinybrowser 1.0.0 CRAN 1.0.0 CRAN [1] direct shinycssloaders 1.0.0.9011 GitHub 1.0.0.9011 GitHub [1] direct shinyjqui 0.4.1 CRAN [1] shinyjs 2.1.0 CRAN 2.1.0 CRAN [1] direct shinylogs 0.2.1 CRAN [1] shinyscreenshot 0.2.1 CRAN [1] shinytest2 0.3.1 CRAN [1] direct shinythemes 1.2.0 CRAN [1] shinyvalidate 0.1.2 CRAN 0.1.2 CRAN [1] direct sinew [1] indirect snakecase 0.11.1 CRAN 0.11.1 CRAN [1] direct sortable 0.5.0 GitHub 0.5.0 GitHub [1] direct sos [1] indirect sourcetools 0.1.7-1 CRAN 0.1.7-1 CRAN [1] indirect spatial 7.3-16 CRAN [2] splines [2] indirect stats [2] indirect stringi 1.7.12 CRAN 1.7.12 CRAN [1] direct stringr 1.5.1 CRAN 1.5.1 CRAN [1] direct styler 1.10.1 CRAN [1] survival 3.5-5 CRAN [2] svglite 2.1.1 CRAN 2.1.1 CRAN [1] direct sys 3.4.2 CRAN 3.4.2 CRAN [1] indirect systemfonts 1.0.4 CRAN 1.0.4 CRAN [1] indirect testthat 3.2.1 CRAN 3.2.1 CRAN [1] direct textshaping 0.3.6 CRAN 0.3.6 CRAN [1] indirect tibble 3.2.1 CRAN 3.2.1 CRAN [1] direct tidygraph 1.2.3.9000 GitHub [1] tidyr 1.3.1 CRAN 1.3.1 CRAN [1] direct tidyrules 0.1.5 CRAN [1] tidyselect 1.2.1 CRAN 1.2.1 CRAN [1] direct timechange 0.3.0 CRAN 0.3.0 CRAN [1] indirect tinytex 0.46 CRAN 0.46 CRAN [1] indirect tippy 1.0.0 GitHub 1.0.0 GitHub [1] direct tools [2] indirect transifex 0.0.4 GitHub 0.0.4 GitHub [1] direct triebeard 0.4.1 CRAN 0.4.1 CRAN [1] indirect tzdb 0.4.0 CRAN 0.4.0 CRAN [1] indirect urlchecker 1.0.1 CRAN 1.0.1 CRAN [1] indirect urltools 1.7.3 CRAN 1.7.3 CRAN [1] indirect usethis 2.2.2 CRAN 2.2.2 CRAN [1] direct utf8 1.2.4 CRAN 1.2.4 CRAN [1] direct utils [2] direct uuid 1.1-0 CRAN 1.1-0 CRAN [1] indirect vctrs 0.6.5 CRAN 0.6.5 CRAN [1] direct vipor 0.4.5 CRAN 0.4.5 CRAN [1] indirect virgaUtils 0.5.0 GitHub 0.5.0 GitHub [1] direct viridis 0.6.3 CRAN 0.6.3 CRAN [1] indirect viridisLite 0.4.2 CRAN 0.4.2 CRAN [1] indirect visNetwork 2.1.2 CRAN 2.1.2 CRAN [1] indirect vroom 1.6.1 CRAN 1.6.1 CRAN [1] indirect waiter 0.2.5 CRAN 0.2.5 CRAN [1] indirect waldo 0.5.1 CRAN 0.5.1 CRAN [1] indirect websocket 1.4.1 CRAN [1] indirect whisker 0.4.1 CRAN 0.4.1 CRAN [1] indirect withr 3.0.0 CRAN 3.0.0 CRAN [1] indirect xfun 0.40 CRAN 0.40 CRAN [1] indirect xgboost 1.7.5.1 CRAN 1.7.5.1 CRAN [1] direct xml2 1.3.5 CRAN 1.3.5 CRAN [1] direct xmlparsedata 1.0.5 CRAN [1] xopen 1.0.0 CRAN 1.0.0 CRAN [1] indirect xtable 1.8-4 CRAN 1.8-4 CRAN [1] indirect yaml 2.3.8 CRAN 2.3.8 CRAN [1] indirect yardstick 1.1.0 CRAN 1.1.0 CRAN [1] direct zip 2.3.1 CRAN 2.3.1 CRAN [1] indirect zoo 1.8-12 CRAN [1] [1]: /Users/stephenholsenbeck/Library/Caches/org.R-project.R/R/renv/library/dmdu-4393acb2/R-4.3/aarch64-apple-darwin20 [2]: /Users/stephenholsenbeck/Library/Caches/org.R-project.R/R/renv/sandbox/R-4.3/aarch64-apple-darwin20/ac5c2659 # ABI ----------------------------------------------------------------- - No ABI problems were detected in the set of installed packages. # User Profile -------------------------------------------------------- Source Package Require Version Dev 1 /Users/stephenholsenbeck/.Rprofile utils FALSE # Settings ------------------------------------------------------------ List of 13 $ bioconductor.version : chr(0) $ external.libraries : chr(0) $ ignored.packages : chr [1:12] "sinew" "desc" "sos" "todor" ... $ package.dependency.fields: chr [1:3] "Imports" "Depends" "LinkingTo" $ ppm.enabled : NULL $ ppm.ignored.urls : NULL $ r.version : chr(0) $ snapshot.type : chr "explicit" $ use.cache : logi TRUE $ vcs.ignore.cellar : logi TRUE $ vcs.ignore.library : logi TRUE $ vcs.ignore.local : logi TRUE $ vcs.manage.ignores : logi TRUE # Options ------------------------------------------------------------- List of 9 $ defaultPackages : chr [1:6] "datasets" "utils" "grDevices" "graphics" ... $ download.file.method : chr "libcurl" $ download.file.extra : NULL $ install.packages.compile.from.source: chr "interactive" $ pkgType : chr "both" $ repos : Named chr "https://cran.rstudio.com" ..- attr(*, "names")= chr "CRAN" $ renv.consent : logi TRUE $ renv.config.auto.snapshot : logi TRUE $ renv.verbose : logi TRUE # Environment Variables ----------------------------------------------- HOME = /Users/stephenholsenbeck LANG = en_US.UTF-8 MAKE = make R_LIBS = R_LIBS_SITE = /Library/Frameworks/R.framework/Resources/site-library R_LIBS_USER = /Users/stephenholsenbeck/Library/Caches/org.R-project.R/R/renv/library/dmdu-4393acb2/R-4.3/aarch64-apple-darwin20 RENV_DEFAULT_R_ENVIRON = RENV_DEFAULT_R_ENVIRON_USER = ~/Documents/R/.Renviron RENV_DEFAULT_R_LIBS = RENV_DEFAULT_R_LIBS_SITE = /Library/Frameworks/R.framework/Resources/site-library RENV_DEFAULT_R_LIBS_USER = /Users/stephenholsenbeck/Library/R/arm64/4.3/library RENV_DEFAULT_R_PROFILE = RENV_DEFAULT_R_PROFILE_USER = ~/Documents/R/.Rprofile RENV_DOWNLOAD_FILE_METHOD = libcurl RENV_PATHS_CACHE = ~/Documents/R/renv_cache/cache RENV_PATHS_ROOT = ~/Documents/R/renv_cache RENV_PROJECT = /Users/stephenholsenbeck/Documents/R/Contributor_Repos/VirgaLabs/dmdu # PATH ---------------------------------------------------------------- - /usr/local/bin - /System/Cryptexes/App/usr/bin - /usr/bin - /bin - /usr/sbin - /sbin - /Users/stephenholsenbeck/Library/Python/3.9/bin - /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin - /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin - /var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin - /opt/X11/bin - /opt/homebrew/Cellar/pyenv-virtualenv/1.2.3/shims - /Users/stephenholsenbeck/.pyenv/shims - /Users/stephenholsenbeck/.pyenv/bin - /opt/homebrew/bin - /opt/homebrew/sbin - /Applications/quarto/bin - /Library/TeX/texbin - /usr/texbin - /Applications/RStudio.app/Contents/Resources/app/bin/postback # Cache --------------------------------------------------------------- There are a total of 723 packages installed in the renv cache. Cache path: "~/Documents/R/renv_cache/cache/v5/R-4.3/aarch64-apple-darwin20" ```
renv::diagnostics from the Docker image ```R renv::diagnostics() Diagnostics Report [renv 1.0.7] =============================== # Session Info --------------------------------------------------------------- R version 4.3.0 (2023-04-21) Platform: aarch64-unknown-linux-gnu (64-bit) Running under: Ubuntu 22.04.2 LTS Matrix products: default BLAS: /usr/lib/aarch64-linux-gnu/openblas-pthread/libblas.so.3 LAPACK: /usr/lib/aarch64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C time zone: Etc/UTC tzcode source: system (glibc) attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] compiler_4.3.0 tools_4.3.0 parallel_4.3.0 renv_1.0.7 # Project -------------------------------------------------------------------- Project path: "/dmdu" # Status --------------------------------------------------------------------- There are no packages installed in the project library. Use `renv::restore()` to install the packages defined in lockfile. # Packages ------------------------------------------------------------------- The project library "/usr/local/lib/R/site-library/R-4.3/aarch64-unknown-linux-gnu" does not exist. Library Source Lockfile Source Path Dependency BH 1.81.0-1 CRAN 1.81.0-1 CRAN [1] indirect DMDUAPI 2.9.0 GitHub 2.9.0 GitHub [1] direct DT 0.33 CRAN 0.27 CRAN [1] direct DTExtend 1.3.1.9000 GitHub 1.3.1.9000 GitHub [1] direct DiagrammeR 1.0.10 CRAN 1.0.10 CRAN [1] direct KernSmooth 2.23-20 CRAN [2] MASS 7.3-60 CRAN 7.3-60 CRAN [1] direct Matrix 1.5-4.1 CRAN 1.5-4.1 CRAN [1] indirect OpenMCE 1.0.1 GitHub 1.0.1 GitHub [1] direct R6 2.5.1 CRAN 2.5.1 CRAN [1] direct RColorBrewer 1.1-3 CRAN 1.1-3 CRAN [1] direct Rcpp 1.0.12 CRAN 1.0.12 CRAN [1] indirect UU 1.54.1 GitHub 1.54.1 GitHub [1] direct V8 4.3.3 CRAN 4.3.3 CRAN [1] indirect airtabler 0.1.6 GitHub 0.1.6 GitHub [1] direct anytime 0.3.9 CRAN 0.3.9 CRAN [1] indirect askpass 1.2.0 CRAN 1.2.0 CRAN [1] indirect assertthat 0.2.1 CRAN 0.2.1 CRAN [1] indirect attempt 0.3.1 CRAN 0.3.1 CRAN [1] indirect backports 1.5.0 CRAN 1.4.1 CRAN [1] indirect base [2] direct base64enc 0.1-3 CRAN 0.1-3 CRAN [1] indirect beeswarm 0.4.0 CRAN 0.4.0 CRAN [1] indirect bit 4.0.5 CRAN 4.0.5 CRAN [1] indirect bit64 4.0.5 CRAN 4.0.5 CRAN [1] indirect boot 1.3-28.1 CRAN [2] brew 1.0-10 CRAN 1.0-10 CRAN [1] indirect brio 1.1.5 CRAN 1.1.3 CRAN [1] indirect broom 1.0.6 CRAN 1.0.5 CRAN [1] indirect bs4Dash 2.2.1 GitHub 2.3.3 GitHub [1] direct bslib 0.7.0 CRAN 0.6.1 CRAN [1] indirect cachem 1.1.0 CRAN 1.0.8 CRAN [1] indirect callr 3.7.6 CRAN 3.7.3 CRAN [1] indirect capture 0.1.4 GitHub 0.1.4 GitHub [1] direct checkmate 2.3.1 CRAN 2.2.0 CRAN [1] indirect class 7.3-21 CRAN [2] cli 3.6.2 CRAN 3.6.2 CRAN [1] direct clipr 0.8.0 CRAN 0.8.0 CRAN [1] indirect cluster 2.1.4 CRAN [2] codetools 0.2-19 CRAN 0.2-19 CRAN [2] indirect colorspace 2.1-0 CRAN 2.1-0 CRAN [1] direct commonmark 1.9.1 CRAN 1.9.1 CRAN [1] indirect compiler [2] indirect config 0.3.2 CRAN 0.3.1 CRAN [1] direct corrplot 0.92 CRAN 0.92 CRAN [1] indirect countrycode 1.6.0 CRAN 1.5.0 CRAN [1] indirect cpp11 0.4.7 CRAN 0.4.7 CRAN [1] indirect crayon 1.5.2 CRAN 1.5.2 CRAN [1] indirect credentials 2.0.1 CRAN 2.0.1 CRAN [1] indirect crew 0.9.2 CRAN 0.9.2 CRAN [1] direct crosstalk 1.2.1 GitHub 1.2.1 GitHub [1] direct curl 5.2.1 CRAN 5.2.1 CRAN [1] direct data.table 1.14.10 CRAN 1.14.10 CRAN [1] indirect data.tree 1.0.0 CRAN 1.0.0 CRAN [1] indirect desc [1] indirect devtools 2.4.5 CRAN 2.4.5 CRAN [1] direct diffobj 0.3.5 CRAN 0.3.5 CRAN [1] indirect digest 0.6.35 CRAN 0.6.35 CRAN [1] direct dmdu direct docopt 0.7.1 RSPM [1] downlit 0.4.3 CRAN 0.4.3 CRAN [1] indirect downloader 0.4 CRAN 0.4 CRAN [1] indirect dplyr 1.1.4 CRAN 1.1.4 CRAN [1] direct echarts4r 0.4.5 CRAN 0.4.5 CRAN [1] direct echartsUtils 0.8.0.9000 GitHub 0.8.0.9000 GitHub [1] direct echarty 1.4.5 CRAN 1.4.5 CRAN [1] direct ellipsis 0.3.2 CRAN 0.3.2 CRAN [1] indirect emayili 0.8.0 CRAN 0.7.18 CRAN [1] indirect english 1.2-6 CRAN 1.2-6 CRAN [1] direct evaluate 0.23 CRAN 0.21 CRAN [1] indirect fansi 1.0.6 CRAN 1.0.4 CRAN [1] indirect farver 2.1.2 CRAN 2.1.1 CRAN [1] indirect fastmap 1.2.0 CRAN 1.1.1 CRAN [1] indirect fontawesome 0.5.2 CRAN 0.5.2 CRAN [1] indirect foreign 0.8-84 CRAN [2] fresh 0.2.0 CRAN 0.2.0 CRAN [1] indirect fs 1.6.4 CRAN 1.6.3 CRAN [1] direct generics 0.1.3 CRAN 0.1.3 CRAN [1] indirect gert 2.0.1 CRAN 2.0.1 CRAN [1] indirect getip 0.1-4 CRAN 0.1-4 CRAN [1] indirect ggbeeswarm 0.7.2 CRAN 0.7.2 CRAN [1] direct ggplot2 3.4.4 CRAN 3.4.4 CRAN [1] direct gh 1.4.1 CRAN 1.4.0 CRAN [1] indirect gitcreds 0.1.2 CRAN 0.1.2 CRAN [1] indirect globals 0.16.2 CRAN 0.16.2 CRAN [1] indirect glue 1.7.0 CRAN 1.7.0 CRAN [1] direct golem 0.4.1 CRAN 0.4.1 CRAN [1] direct googlesheets4 direct grDevices [2] direct graphics [2] indirect grid [2] indirect gridExtra 2.3 CRAN 2.3 CRAN [1] indirect gtable 0.3.4 CRAN 0.3.4 CRAN [1] indirect hardhat 1.3.0 CRAN 1.3.0 CRAN [1] indirect here 1.0.1 CRAN 1.0.1 CRAN [1] indirect highr 0.10 CRAN 0.10 CRAN [1] indirect hms 1.1.3 CRAN 1.1.3 CRAN [1] indirect htmltools 0.5.8.1 CRAN 0.5.8.1 CRAN [1] direct htmlwidgets 1.6.4 CRAN 1.6.4 CRAN [1] direct httpuv 1.6.15 CRAN 1.6.15 CRAN [1] direct httr 1.4.7 CRAN 1.4.7 CRAN [1] indirect httr2 1.0.1 CRAN 1.0.0 CRAN [1] indirect igraph 1.5.1 CRAN 1.5.1 CRAN [1] direct ini 0.3.1 CRAN 0.3.1 CRAN [1] indirect isoband 0.2.7 CRAN 0.2.7 CRAN [1] indirect jose 1.2.0 CRAN 1.2.0 CRAN [1] indirect jquerylib 0.1.4 CRAN 0.1.4 CRAN [1] indirect jsonlite 1.8.8 CRAN 1.8.8 CRAN [1] direct jsonvalidate 1.3.2 CRAN 1.3.2 CRAN [1] direct knitr 1.46 CRAN 1.44 CRAN [1] indirect labeling 0.4.3 CRAN 0.4.3 CRAN [1] indirect later 1.3.2 CRAN 1.3.2 CRAN [1] indirect lattice 0.20-45 CRAN 0.20-45 CRAN [1] indirect lazyeval 0.2.2 CRAN 0.2.2 CRAN [1] indirect learnr 0.11.5 CRAN 0.11.3 CRAN [1] indirect lifecycle 1.0.4 CRAN 1.0.3 CRAN [1] indirect littler 0.3.18 RSPM [1] logger 0.3.0 CRAN 0.2.2 CRAN [1] indirect lubridate 1.9.3 CRAN 1.9.3 CRAN [1] direct magrittr 2.0.3 CRAN 2.0.3 CRAN [1] indirect markdown 1.12 CRAN 1.5 CRAN [1] indirect memoise 2.0.1 CRAN 2.0.1 CRAN [1] indirect methods [2] indirect mgcv 1.9-0 CRAN 1.9-0 CRAN [1] indirect mime 0.12 CRAN 0.12 CRAN [1] indirect miniUI 0.1.1.1 CRAN 0.1.1.1 CRAN [1] indirect mirai 0.12.0 CRAN 0.12.0 CRAN [1] indirect munsell 0.5.1 CRAN 0.5.0 CRAN [1] indirect mvtnorm 1.2-2 CRAN 1.2-2 CRAN [1] direct nanonext 1.0.0 CRAN 1.0.0 CRAN [1] direct nlme 3.1-162 CRAN 3.1-162 CRAN [2] indirect nnet 7.3-18 CRAN [2] openssl 2.2.0 CRAN 2.1.1 CRAN [1] indirect packer 0.1.3 CRAN 0.1.3 CRAN [1] indirect pak 0.7.2 https://r-lib.github.io/p/pak/stable/source/linux-gnu/aarch64 [1] parallel [2] indirect parsnip 1.0.4 CRAN 1.0.4 CRAN [1] direct pillar 1.9.0 CRAN 1.9.0 CRAN [1] indirect pkgbuild 1.4.4 CRAN 1.4.3 CRAN [1] indirect pkgconfig 2.0.3 CRAN 2.0.3 CRAN [1] indirect pkgdown 2.0.9 CRAN 2.0.7 CRAN [1] indirect pkgload 1.3.4 CRAN 1.3.4 CRAN [1] direct plotly 4.10.1 CRAN 4.10.1 CRAN [1] direct plyr 1.8.9 CRAN 1.8.9 CRAN [1] direct praise 1.0.0 CRAN 1.0.0 CRAN [1] indirect prettyunits 1.2.0 CRAN 1.2.0 CRAN [1] indirect processx 3.8.4 CRAN 3.8.3 CRAN [1] indirect profvis 0.3.8 CRAN 0.3.8 CRAN [1] indirect progress 1.2.2 CRAN 1.2.2 CRAN [1] indirect promises 1.3.0 CRAN 1.2.1 CRAN [1] indirect ps 1.7.6 CRAN 1.7.6 CRAN [1] indirect purrr 1.0.2 CRAN 1.0.2 CRAN [1] direct ragg 1.3.2 CRAN 1.2.5 CRAN [1] indirect rappdirs 0.3.3 CRAN 0.3.3 CRAN [1] indirect rcmdcheck 1.4.0 CRAN 1.4.0 CRAN [1] indirect readr 2.1.5 CRAN 2.1.5 CRAN [1] direct rematch2 2.1.2 CRAN 2.1.2 CRAN [1] indirect remotes 2.5.0 CRAN 2.5.0 CRAN [1] direct renv 1.0.7 CRAN 1.0.7 CRAN [1] direct rlang 1.1.3 CRAN 1.1.3 CRAN [1] direct rmarkdown [1] direct roxygen2 7.3.1 CRAN 7.2.3 RSPM [1] direct rpart 4.1.19 CRAN [2] rprojroot 2.0.4 CRAN 2.0.4 CRAN [1] indirect rrapply 1.2.6 CRAN 1.2.6 CRAN [1] direct rstudioapi 0.16.0 CRAN 0.15.0 CRAN [1] indirect rversions 2.1.2 CRAN 2.1.2 CRAN [1] indirect rvest 1.0.4 CRAN 1.0.3 CRAN [1] indirect sass 0.4.9 CRAN 0.4.9 CRAN [1] direct scales 1.3.0 CRAN 1.3.0 CRAN [1] direct selectr 0.4-2 CRAN 0.4-2 CRAN [1] indirect sendgridr 0.6.3 GitHub 0.6.3 GitHub [1] direct sentryR 1.1.1.9000 GitHub 1.1.1.9000 GitHub [1] direct sessioninfo 1.2.2 CRAN 1.2.2 CRAN [1] indirect shiny 1.8.1.1 CRAN 1.8.1.1 CRAN [1] direct shiny.i18n 0.3.0 GitHub 0.3.0 GitHub [1] direct shiny.tailwind 0.2.2 GitHub 0.2.2 GitHub [1] direct shinyVirga 0.45.1 GitHub 0.45.1 GitHub [1] direct shinyWidgets 0.8.3 GitHub 0.8.3 GitHub [1] direct shinybrowser 1.0.0 CRAN 1.0.0 CRAN [1] direct shinycssloaders 1.0.0.9011 GitHub 1.0.0.9011 GitHub [1] direct shinyjs 2.1.0 CRAN 2.1.0 CRAN [1] direct shinytest2 direct shinyvalidate 0.1.2 CRAN 0.1.2 CRAN [1] direct sinew [1] indirect snakecase 0.11.1 CRAN 0.11.1 CRAN [1] direct sortable 0.5.0 GitHub 0.5.0 GitHub [1] direct sos [1] indirect sourcetools 0.1.7-1 CRAN 0.1.7-1 CRAN [1] indirect spatial 7.3-16 CRAN [2] splines [2] indirect stats [2] indirect stringi 1.8.4 CRAN 1.7.12 CRAN [1] direct stringr 1.5.1 CRAN 1.5.1 CRAN [1] direct survival 3.5-5 CRAN [2] svglite 2.1.1 CRAN 2.1.1 CRAN [1] direct sys 3.4.2 CRAN 3.4.2 CRAN [1] indirect systemfonts 1.1.0 CRAN 1.0.4 CRAN [1] indirect testthat 3.2.1.1 CRAN 3.2.1 CRAN [1] direct textshaping 0.3.7 CRAN 0.3.6 CRAN [1] indirect tibble 3.2.1 CRAN 3.2.1 CRAN [1] direct tidyr 1.3.1 CRAN 1.3.1 CRAN [1] direct tidyselect 1.2.1 CRAN 1.2.1 CRAN [1] direct timechange 0.3.0 CRAN 0.3.0 CRAN [1] indirect tinytex 0.51 CRAN 0.46 CRAN [1] indirect tippy 1.0.0 GitHub 1.0.0 GitHub [1] direct tools [2] indirect transifex 0.0.4 GitHub 0.0.4 GitHub [1] direct triebeard 0.4.1 CRAN 0.4.1 CRAN [1] indirect tzdb 0.4.0 CRAN 0.4.0 CRAN [1] indirect urlchecker 1.0.1 CRAN 1.0.1 CRAN [1] indirect urltools 1.7.3 CRAN 1.7.3 CRAN [1] indirect usethis 2.2.3 CRAN 2.2.2 CRAN [1] indirect utf8 1.2.4 CRAN 1.2.4 CRAN [1] direct utils [2] direct uuid 1.2-0 CRAN 1.1-0 CRAN [1] indirect vctrs 0.6.5 CRAN 0.6.5 CRAN [1] direct vipor 0.4.5 CRAN 0.4.5 CRAN [1] indirect virgaUtils 0.5.0 GitHub 0.5.0 GitHub [1] direct viridis 0.6.3 CRAN 0.6.3 CRAN [1] indirect viridisLite 0.4.2 CRAN 0.4.2 CRAN [1] indirect visNetwork 2.1.2 CRAN 2.1.2 CRAN [1] indirect vroom 1.6.1 CRAN 1.6.1 CRAN [1] indirect waiter 0.2.5 CRAN 0.2.5 CRAN [1] indirect waldo 0.5.2 CRAN 0.5.1 CRAN [1] indirect whisker 0.4.1 CRAN 0.4.1 CRAN [1] indirect withr 3.0.0 CRAN 3.0.0 CRAN [1] indirect xfun 0.44 CRAN 0.40 CRAN [1] indirect xgboost 1.7.5.1 CRAN 1.7.5.1 CRAN [1] direct xml2 1.3.6 CRAN 1.3.5 CRAN [1] indirect xopen 1.0.1 CRAN 1.0.0 CRAN [1] indirect xtable 1.8-4 CRAN 1.8-4 CRAN [1] indirect yaml 2.3.8 CRAN 2.3.8 CRAN [1] indirect yardstick 1.1.0 CRAN 1.1.0 CRAN [1] direct zip 2.3.1 CRAN 2.3.1 CRAN [1] indirect [1]: /usr/local/lib/R/site-library [2]: /usr/local/lib/R/library # ABI ------------------------------------------------------------------------ - No ABI problems were detected in the set of installed packages. # User Profile --------------------------------------------------------------- [no user profile detected] # Settings ------------------------------------------------------------------- List of 13 $ bioconductor.version : chr(0) $ external.libraries : chr(0) $ ignored.packages : chr [1:12] "sinew" "desc" "sos" "todor" ... $ package.dependency.fields: chr [1:3] "Imports" "Depends" "LinkingTo" $ ppm.enabled : NULL $ ppm.ignored.urls : NULL $ r.version : chr(0) $ snapshot.type : chr "explicit" $ use.cache : logi TRUE $ vcs.ignore.cellar : logi TRUE $ vcs.ignore.library : logi TRUE $ vcs.ignore.local : logi TRUE $ vcs.manage.ignores : logi TRUE # Options -------------------------------------------------------------------- List of 9 $ defaultPackages : chr [1:6] "datasets" "utils" "grDevices" "graphics" ... $ download.file.method : chr "libcurl" $ download.file.extra : NULL $ install.packages.compile.from.source: NULL $ pkgType : chr "source" $ repos : Named chr "https://cran.rstudio.com/" ..- attr(*, "names")= chr "CRAN" $ renv.config.pak.enabled : logi TRUE $ renv.config.auto.snapshot : logi TRUE $ renv.verbose : logi TRUE # Environment Variables ------------------------------------------------------ HOME = /root LANG = en_US.UTF-8 MAKE = make R_LIBS = /usr/local/lib/R/site-library:/usr/local/lib/R/library R_LIBS_SITE = /usr/local/lib/R/site-library R_LIBS_USER = /root/R/aarch64-unknown-linux-gnu-library/4.3 RENV_PATHS_LIBRARY = /usr/local/lib/R/site-library # PATH ----------------------------------------------------------------------- - /usr/local/sbin - /usr/local/bin - /usr/sbin - /usr/bin - /sbin - /bin # Cache ---------------------------------------------------------------------- There are a total of 203 packages installed in the renv cache. Cache path: "~/.cache/R/renv/cache/v5/R-4.3/aarch64-unknown-linux-gnu" ```

UPDATE: I reverted to renv 1.0.2 and tested again on my Mac. renv::restore detected the discrepancy and prompted to install the newer version. I upgraded renv back to 1.0.7 and did the same test. I noticed when I reverted bs4Dash with install.packages, renv 1.0.7 automatically snapshotted and updated the renv.lock, which explains why the test of renv::restore when I originally tried it on 1.0.7 did not prompt to install the updated version; the renv.lock had changed bs4Dash to 2.2.1 and so no discrepancy was detected.

I'm still unsure what's going on with the Docker container. I'm intuiting it might be using different library paths between calls as the dockerfile builds.

UPDATE I added some code for debugging purposes into the Dockerfile. It now runs the following all in one call.

renv::diagnostics();packageDescription('bs4Dash');renv::restore()

renv::diagnostics() clearly detects the discrepancy between what's installed and the lockfile, but renv::restore does not remedy that discrepancy, instead indicating "No downloads are needed". #10 4.827 bs4Dash 2.2.1 GitHub 2.3.3 GitHub [1] direct It seems like renv::restore fails to function properly in the container environment?

Full build.log ```R #10 [stage-4 5/17] RUN R --quiet -e "renv::diagnostics();packageDescription('bs4Dash');renv::restore()" #10 0.389 > renv::diagnostics();packageDescription('bs4Dash');renv::restore() #10 0.477 Diagnostics Report [renv 1.0.7] #10 0.477 =============================== #10 0.477 #10 0.477 # Session Info --------------------------------------------------------------- #10 0.483 R version 4.3.0 (2023-04-21) #10 0.483 Platform: aarch64-unknown-linux-gnu (64-bit) #10 0.483 Running under: Ubuntu 22.04.2 LTS #10 0.483 #10 0.483 Matrix products: default #10 0.483 BLAS: /usr/lib/aarch64-linux-gnu/openblas-pthread/libblas.so.3 #10 0.483 LAPACK: /usr/lib/aarch64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so; LAPACK version 3.10.0 #10 0.483 #10 0.483 locale: #10 0.483 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C #10 0.483 [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 #10 0.483 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 #10 0.483 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C #10 0.483 [9] LC_ADDRESS=C LC_TELEPHONE=C #10 0.483 [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C #10 0.483 #10 0.483 time zone: Etc/UTC #10 0.483 tzcode source: system (glibc) #10 0.483 #10 0.483 attached base packages: #10 0.483 [1] stats graphics grDevices utils datasets methods base #10 0.483 #10 0.483 loaded via a namespace (and not attached): #10 0.483 [1] compiler_4.3.0 tools_4.3.0 parallel_4.3.0 renv_1.0.7 #10 0.483 #10 0.483 # Project -------------------------------------------------------------------- #10 0.484 Project path: "/dmdu" #10 0.484 #10 0.484 # Status --------------------------------------------------------------------- #10 0.487 There are no packages installed in the project library. #10 0.487 Use `renv::restore()` to install the packages defined in lockfile. #10 0.487 #10 0.487 # Packages ------------------------------------------------------------------- #10 0.516 The project library "/usr/local/lib/R/site-library/R-4.3/aarch64-unknown-linux-gnu" does not exist. #10 4.826 Library Source Lockfile Source Path Dependency #10 4.826 BH 1.81.0-1 CRAN 1.81.0-1 CRAN [1] indirect #10 4.826 DMDUAPI 2.9.0 GitHub 2.9.0 GitHub [1] direct #10 4.826 DT 0.33 CRAN 0.27 CRAN [1] direct #10 4.826 DTExtend 1.3.1.9000 GitHub 1.3.1.9000 GitHub [1] direct #10 4.826 DiagrammeR 1.0.10 CRAN 1.0.10 CRAN [1] direct #10 4.826 KernSmooth 2.23-20 CRAN [2] #10 4.826 MASS 7.3-60 CRAN 7.3-60 CRAN [1] direct #10 4.826 Matrix 1.5-4.1 CRAN 1.5-4.1 CRAN [1] indirect #10 4.826 OpenMCE 1.0.1 GitHub 1.0.1 GitHub [1] direct #10 4.826 R6 2.5.1 CRAN 2.5.1 CRAN [1] direct #10 4.826 RColorBrewer 1.1-3 CRAN 1.1-3 CRAN [1] direct #10 4.826 Rcpp 1.0.12 CRAN 1.0.12 CRAN [1] indirect #10 4.826 UU 1.54.1 GitHub 1.54.1 GitHub [1] direct #10 4.826 V8 4.3.3 CRAN 4.3.3 CRAN [1] indirect #10 4.827 airtabler 0.1.6 GitHub 0.1.6 GitHub [1] direct #10 4.827 anytime 0.3.9 CRAN 0.3.9 CRAN [1] indirect #10 4.827 askpass 1.2.0 CRAN 1.2.0 CRAN [1] indirect #10 4.827 assertthat 0.2.1 CRAN 0.2.1 CRAN [1] indirect #10 4.827 attempt 0.3.1 CRAN 0.3.1 CRAN [1] indirect #10 4.827 backports 1.5.0 CRAN 1.4.1 CRAN [1] indirect #10 4.827 base [2] direct #10 4.827 base64enc 0.1-3 CRAN 0.1-3 CRAN [1] indirect #10 4.827 beeswarm 0.4.0 CRAN 0.4.0 CRAN [1] indirect #10 4.827 bit 4.0.5 CRAN 4.0.5 CRAN [1] indirect #10 4.827 bit64 4.0.5 CRAN 4.0.5 CRAN [1] indirect #10 4.827 boot 1.3-28.1 CRAN [2] #10 4.827 brew 1.0-10 CRAN 1.0-10 CRAN [1] indirect #10 4.827 brio 1.1.5 CRAN 1.1.3 CRAN [1] indirect #10 4.827 broom 1.0.6 CRAN 1.0.5 CRAN [1] indirect #10 4.827 bs4Dash 2.2.1 GitHub 2.3.3 GitHub [1] direct #10 4.827 bslib 0.7.0 CRAN 0.6.1 CRAN [1] indirect #10 4.827 cachem 1.1.0 CRAN 1.0.8 CRAN [1] indirect #10 4.827 callr 3.7.6 CRAN 3.7.3 CRAN [1] indirect #10 4.827 capture 0.1.4 GitHub 0.1.4 GitHub [1] direct #10 4.827 checkmate 2.3.1 CRAN 2.2.0 CRAN [1] indirect #10 4.827 class 7.3-21 CRAN [2] #10 4.827 cli 3.6.2 CRAN 3.6.2 CRAN [1] direct #10 4.827 clipr 0.8.0 CRAN 0.8.0 CRAN [1] indirect #10 4.827 cluster 2.1.4 CRAN [2] #10 4.827 codetools 0.2-19 CRAN 0.2-19 CRAN [2] indirect #10 4.827 colorspace 2.1-0 CRAN 2.1-0 CRAN [1] direct #10 4.827 commonmark 1.9.1 CRAN 1.9.1 CRAN [1] indirect #10 4.827 compiler [2] indirect #10 4.827 config 0.3.2 CRAN 0.3.1 CRAN [1] direct #10 4.828 corrplot 0.92 CRAN 0.92 CRAN [1] indirect #10 4.828 countrycode 1.6.0 CRAN 1.5.0 CRAN [1] indirect #10 4.828 cpp11 0.4.7 CRAN 0.4.7 CRAN [1] indirect #10 4.828 crayon 1.5.2 CRAN 1.5.2 CRAN [1] indirect #10 4.828 credentials 2.0.1 CRAN 2.0.1 CRAN [1] indirect #10 4.828 crew 0.9.2 CRAN 0.9.2 CRAN [1] direct #10 4.828 crosstalk 1.2.1 GitHub 1.2.1 GitHub [1] direct #10 4.828 curl 5.2.1 CRAN 5.2.1 CRAN [1] direct #10 4.828 data.table 1.14.10 CRAN 1.14.10 CRAN [1] indirect #10 4.828 data.tree 1.0.0 CRAN 1.0.0 CRAN [1] indirect #10 4.828 desc [1] indirect #10 4.828 devtools 2.4.5 CRAN 2.4.5 CRAN [1] direct #10 4.828 diffobj 0.3.5 CRAN 0.3.5 CRAN [1] indirect #10 4.828 digest 0.6.35 CRAN 0.6.35 CRAN [1] direct #10 4.828 dmdu direct #10 4.828 docopt 0.7.1 RSPM [1] #10 4.828 downlit 0.4.3 CRAN 0.4.3 CRAN [1] indirect #10 4.828 downloader 0.4 CRAN 0.4 CRAN [1] indirect #10 4.828 dplyr 1.1.4 CRAN 1.1.4 CRAN [1] direct #10 4.828 echarts4r 0.4.5 CRAN 0.4.5 CRAN [1] direct #10 4.828 echartsUtils 0.8.0.9000 GitHub 0.8.0.9000 GitHub [1] direct #10 4.828 echarty 1.4.5 CRAN 1.4.5 CRAN [1] direct #10 4.828 ellipsis 0.3.2 CRAN 0.3.2 CRAN [1] indirect #10 4.828 emayili 0.8.0 CRAN 0.7.18 CRAN [1] indirect #10 4.828 english 1.2-6 CRAN 1.2-6 CRAN [1] direct #10 4.828 evaluate 0.23 CRAN 0.21 CRAN [1] indirect #10 4.828 fansi 1.0.6 CRAN 1.0.4 CRAN [1] indirect #10 4.828 farver 2.1.2 CRAN 2.1.1 CRAN [1] indirect #10 4.828 fastmap 1.2.0 CRAN 1.1.1 CRAN [1] indirect #10 4.828 fontawesome 0.5.2 CRAN 0.5.2 CRAN [1] indirect #10 4.828 foreign 0.8-84 CRAN [2] #10 4.828 fresh 0.2.0 CRAN 0.2.0 CRAN [1] indirect #10 4.828 fs 1.6.4 CRAN 1.6.3 CRAN [1] direct #10 4.828 generics 0.1.3 CRAN 0.1.3 CRAN [1] indirect #10 4.828 gert 2.0.1 CRAN 2.0.1 CRAN [1] indirect #10 4.828 getip 0.1-4 CRAN 0.1-4 CRAN [1] indirect #10 4.828 ggbeeswarm 0.7.2 CRAN 0.7.2 CRAN [1] direct #10 4.830 ggplot2 3.4.4 CRAN 3.4.4 CRAN [1] direct #10 4.830 gh 1.4.1 CRAN 1.4.0 CRAN [1] indirect #10 4.830 gitcreds 0.1.2 CRAN 0.1.2 CRAN [1] indirect #10 4.830 globals 0.16.2 CRAN 0.16.2 CRAN [1] indirect #10 4.830 glue 1.7.0 CRAN 1.7.0 CRAN [1] direct #10 4.830 golem 0.4.1 CRAN 0.4.1 CRAN [1] direct #10 4.830 googlesheets4 direct #10 4.830 grDevices [2] direct #10 4.830 graphics [2] indirect #10 4.830 grid [2] indirect #10 4.830 gridExtra 2.3 CRAN 2.3 CRAN [1] indirect #10 4.830 gtable 0.3.4 CRAN 0.3.4 CRAN [1] indirect #10 4.830 hardhat 1.3.0 CRAN 1.3.0 CRAN [1] indirect #10 4.830 here 1.0.1 CRAN 1.0.1 CRAN [1] indirect #10 4.830 highr 0.10 CRAN 0.10 CRAN [1] indirect #10 4.830 hms 1.1.3 CRAN 1.1.3 CRAN [1] indirect #10 4.830 htmltools 0.5.8.1 CRAN 0.5.8.1 CRAN [1] direct #10 4.830 htmlwidgets 1.6.4 CRAN 1.6.4 CRAN [1] direct #10 4.830 httpuv 1.6.15 CRAN 1.6.15 CRAN [1] direct #10 4.830 httr 1.4.7 CRAN 1.4.7 CRAN [1] indirect #10 4.830 httr2 1.0.1 CRAN 1.0.0 CRAN [1] indirect #10 4.830 igraph 1.5.1 CRAN 1.5.1 CRAN [1] direct #10 4.830 ini 0.3.1 CRAN 0.3.1 CRAN [1] indirect #10 4.830 isoband 0.2.7 CRAN 0.2.7 CRAN [1] indirect #10 4.830 jose 1.2.0 CRAN 1.2.0 CRAN [1] indirect #10 4.830 jquerylib 0.1.4 CRAN 0.1.4 CRAN [1] indirect #10 4.830 jsonlite 1.8.8 CRAN 1.8.8 CRAN [1] direct #10 4.830 jsonvalidate 1.3.2 CRAN 1.3.2 CRAN [1] direct #10 4.830 knitr 1.46 CRAN 1.44 CRAN [1] indirect #10 4.830 labeling 0.4.3 CRAN 0.4.3 CRAN [1] indirect #10 4.830 later 1.3.2 CRAN 1.3.2 CRAN [1] indirect #10 4.830 lattice 0.20-45 CRAN 0.20-45 CRAN [1] indirect #10 4.830 lazyeval 0.2.2 CRAN 0.2.2 CRAN [1] indirect #10 4.830 learnr 0.11.5 CRAN 0.11.3 CRAN [1] indirect #10 4.830 lifecycle 1.0.4 CRAN 1.0.3 CRAN [1] indirect #10 4.830 littler 0.3.18 RSPM [1] #10 4.830 logger 0.3.0 CRAN 0.2.2 CRAN [1] indirect #10 4.830 lubridate 1.9.3 CRAN 1.9.3 CRAN [1] direct #10 4.830 magrittr 2.0.3 CRAN 2.0.3 CRAN [1] indirect #10 4.830 markdown 1.12 CRAN 1.5 CRAN [1] indirect #10 4.830 memoise 2.0.1 CRAN 2.0.1 CRAN [1] indirect #10 4.830 methods [2] indirect #10 4.830 mgcv 1.9-0 CRAN 1.9-0 CRAN [1] indirect #10 4.830 mime 0.12 CRAN 0.12 CRAN [1] indirect #10 4.830 miniUI 0.1.1.1 CRAN 0.1.1.1 CRAN [1] indirect #10 4.830 mirai 0.12.0 CRAN 0.12.0 CRAN [1] indirect #10 4.830 munsell 0.5.1 CRAN 0.5.0 CRAN [1] indirect #10 4.830 mvtnorm 1.2-2 CRAN 1.2-2 CRAN [1] direct #10 4.830 nanonext 1.0.0 CRAN 1.0.0 CRAN [1] direct #10 4.830 nlme 3.1-162 CRAN 3.1-162 CRAN [2] indirect #10 4.830 nnet 7.3-18 CRAN [2] #10 4.830 openssl 2.2.0 CRAN 2.1.1 CRAN [1] indirect #10 4.830 packer 0.1.3 CRAN 0.1.3 CRAN [1] indirect #10 4.830 pak 0.7.2 https://r-lib.github.io/p/pak/stable/source/linux-gnu/aarch64 [1] #10 4.830 parallel [2] indirect #10 4.830 parsnip 1.0.4 CRAN 1.0.4 CRAN [1] direct #10 4.830 pillar 1.9.0 CRAN 1.9.0 CRAN [1] indirect #10 4.830 pkgbuild 1.4.4 CRAN 1.4.3 CRAN [1] indirect #10 4.830 pkgconfig 2.0.3 CRAN 2.0.3 CRAN [1] indirect #10 4.830 pkgdown 2.0.9 CRAN 2.0.7 CRAN [1] indirect #10 4.830 pkgload 1.3.4 CRAN 1.3.4 CRAN [1] direct #10 4.830 plotly 4.10.1 CRAN 4.10.1 CRAN [1] direct #10 4.830 plyr 1.8.9 CRAN 1.8.9 CRAN [1] direct #10 4.830 praise 1.0.0 CRAN 1.0.0 CRAN [1] indirect #10 4.830 prettyunits 1.2.0 CRAN 1.2.0 CRAN [1] indirect #10 4.830 processx 3.8.4 CRAN 3.8.3 CRAN [1] indirect #10 4.830 profvis 0.3.8 CRAN 0.3.8 CRAN [1] indirect #10 4.830 progress 1.2.2 CRAN 1.2.2 CRAN [1] indirect #10 4.830 promises 1.3.0 CRAN 1.2.1 CRAN [1] indirect #10 4.830 ps 1.7.6 CRAN 1.7.6 CRAN [1] indirect #10 4.830 purrr 1.0.2 CRAN 1.0.2 CRAN [1] direct #10 4.830 ragg 1.3.2 CRAN 1.2.5 CRAN [1] indirect #10 4.830 rappdirs 0.3.3 CRAN 0.3.3 CRAN [1] indirect #10 4.830 rcmdcheck 1.4.0 CRAN 1.4.0 CRAN [1] indirect #10 4.830 readr 2.1.5 CRAN 2.1.5 CRAN [1] direct #10 4.830 rematch2 2.1.2 CRAN 2.1.2 CRAN [1] indirect #10 4.830 remotes 2.5.0 CRAN 2.5.0 CRAN [1] direct #10 4.830 renv 1.0.7 CRAN 1.0.7 CRAN [1] direct #10 4.830 rlang 1.1.3 CRAN 1.1.3 CRAN [1] direct #10 4.830 rmarkdown [1] direct #10 4.830 roxygen2 7.3.1 CRAN 7.2.3 RSPM [1] direct #10 4.830 rpart 4.1.19 CRAN [2] #10 4.830 rprojroot 2.0.4 CRAN 2.0.4 CRAN [1] indirect #10 4.830 rrapply 1.2.6 CRAN 1.2.6 CRAN [1] direct #10 4.830 rstudioapi 0.16.0 CRAN 0.15.0 CRAN [1] indirect #10 4.830 rversions 2.1.2 CRAN 2.1.2 CRAN [1] indirect #10 4.830 rvest 1.0.4 CRAN 1.0.3 CRAN [1] indirect #10 4.830 sass 0.4.9 CRAN 0.4.9 CRAN [1] direct #10 4.830 scales 1.3.0 CRAN 1.3.0 CRAN [1] direct #10 4.830 selectr 0.4-2 CRAN 0.4-2 CRAN [1] indirect #10 4.830 sendgridr 0.6.3 GitHub 0.6.3 GitHub [1] direct #10 4.830 sentryR 1.1.1.9000 GitHub 1.1.1.9000 GitHub [1] direct #10 4.830 sessioninfo 1.2.2 CRAN 1.2.2 CRAN [1] indirect #10 4.830 shiny 1.8.1.1 CRAN 1.8.1.1 CRAN [1] direct #10 4.830 shiny.i18n 0.3.0 GitHub 0.3.0 GitHub [1] direct #10 4.830 shiny.tailwind 0.2.2 GitHub 0.2.2 GitHub [1] direct #10 4.830 shinyVirga 0.45.1 GitHub 0.45.1 GitHub [1] direct #10 4.830 shinyWidgets 0.8.3 GitHub 0.8.3 GitHub [1] direct #10 4.830 shinybrowser 1.0.0 CRAN 1.0.0 CRAN [1] direct #10 4.830 shinycssloaders 1.0.0.9011 GitHub 1.0.0.9011 GitHub [1] direct #10 4.830 shinyjs 2.1.0 CRAN 2.1.0 CRAN [1] direct #10 4.830 shinytest2 direct #10 4.830 shinyvalidate 0.1.2 CRAN 0.1.2 CRAN [1] direct #10 4.830 sinew [1] indirect #10 4.830 snakecase 0.11.1 CRAN 0.11.1 CRAN [1] direct #10 4.830 sortable 0.5.0 GitHub 0.5.0 GitHub [1] direct #10 4.830 sos [1] indirect #10 4.830 sourcetools 0.1.7-1 CRAN 0.1.7-1 CRAN [1] indirect #10 4.830 spatial 7.3-16 CRAN [2] #10 4.830 splines [2] indirect #10 4.830 stats [2] indirect #10 4.830 stringi 1.8.4 CRAN 1.7.12 CRAN [1] direct #10 4.830 stringr 1.5.1 CRAN 1.5.1 CRAN [1] direct #10 4.830 survival 3.5-5 CRAN [2] #10 4.830 svglite 2.1.1 CRAN 2.1.1 CRAN [1] direct #10 4.830 sys 3.4.2 CRAN 3.4.2 CRAN [1] indirect #10 4.830 systemfonts 1.1.0 CRAN 1.0.4 CRAN [1] indirect #10 4.830 testthat 3.2.1.1 CRAN 3.2.1 CRAN [1] direct #10 4.830 textshaping 0.3.7 CRAN 0.3.6 CRAN [1] indirect #10 4.830 tibble 3.2.1 CRAN 3.2.1 CRAN [1] direct #10 4.830 tidyr 1.3.1 CRAN 1.3.1 CRAN [1] direct #10 4.830 tidyselect 1.2.1 CRAN 1.2.1 CRAN [1] direct #10 4.830 timechange 0.3.0 CRAN 0.3.0 CRAN [1] indirect #10 4.830 tinytex 0.51 CRAN 0.46 CRAN [1] indirect #10 4.830 tippy 1.0.0 GitHub 1.0.0 GitHub [1] direct #10 4.830 tools [2] indirect #10 4.830 transifex 0.0.4 GitHub 0.0.4 GitHub [1] direct #10 4.830 triebeard 0.4.1 CRAN 0.4.1 CRAN [1] indirect #10 4.830 tzdb 0.4.0 CRAN 0.4.0 CRAN [1] indirect #10 4.830 urlchecker 1.0.1 CRAN 1.0.1 CRAN [1] indirect #10 4.830 urltools 1.7.3 CRAN 1.7.3 CRAN [1] indirect #10 4.830 usethis 2.2.3 CRAN 2.2.2 CRAN [1] indirect #10 4.830 utf8 1.2.4 CRAN 1.2.4 CRAN [1] direct #10 4.830 utils [2] direct #10 4.830 uuid 1.2-0 CRAN 1.1-0 CRAN [1] indirect #10 4.830 vctrs 0.6.5 CRAN 0.6.5 CRAN [1] direct #10 4.830 vipor 0.4.5 CRAN 0.4.5 CRAN [1] indirect #10 4.830 virgaUtils 0.5.0 GitHub 0.5.0 GitHub [1] direct #10 4.830 viridis 0.6.3 CRAN 0.6.3 CRAN [1] indirect #10 4.830 viridisLite 0.4.2 CRAN 0.4.2 CRAN [1] indirect #10 4.830 visNetwork 2.1.2 CRAN 2.1.2 CRAN [1] indirect #10 4.830 vroom 1.6.1 CRAN 1.6.1 CRAN [1] indirect #10 4.830 waiter 0.2.5 CRAN 0.2.5 CRAN [1] indirect #10 4.830 waldo 0.5.2 CRAN 0.5.1 CRAN [1] indirect #10 4.830 whisker 0.4.1 CRAN 0.4.1 CRAN [1] indirect #10 4.830 withr 3.0.0 CRAN 3.0.0 CRAN [1] indirect #10 4.830 xfun 0.44 CRAN 0.40 CRAN [1] indirect #10 4.830 xgboost 1.7.5.1 CRAN 1.7.5.1 CRAN [1] direct #10 4.830 xml2 1.3.6 CRAN 1.3.5 CRAN [1] indirect #10 4.830 xopen 1.0.1 CRAN 1.0.0 CRAN [1] indirect #10 4.830 xtable 1.8-4 CRAN 1.8-4 CRAN [1] indirect #10 4.830 yaml 2.3.8 CRAN 2.3.8 CRAN [1] indirect #10 4.830 yardstick 1.1.0 CRAN 1.1.0 CRAN [1] direct #10 4.830 zip 2.3.1 CRAN 2.3.1 CRAN [1] indirect #10 4.830 #10 4.830 [1]: /usr/local/lib/R/site-library #10 4.830 [2]: /usr/local/lib/R/library #10 4.830 #10 4.830 # ABI ------------------------------------------------------------------------ #10 6.700 - No ABI problems were detected in the set of installed packages. #10 6.700 #10 6.700 # User Profile --------------------------------------------------------------- #10 6.700 [no user profile detected] #10 6.700 #10 6.700 # Settings ------------------------------------------------------------------- #10 6.702 List of 13 #10 6.702 $ bioconductor.version : chr(0) #10 6.702 $ external.libraries : chr(0) #10 6.703 $ ignored.packages : chr [1:12] "sinew" "desc" "sos" "todor" ... #10 6.703 $ package.dependency.fields: chr [1:3] "Imports" "Depends" "LinkingTo" #10 6.703 $ ppm.enabled : NULL #10 6.704 $ ppm.ignored.urls : NULL #10 6.704 $ r.version : chr(0) #10 6.705 $ snapshot.type : chr "explicit" #10 6.705 $ use.cache : logi TRUE #10 6.706 $ vcs.ignore.cellar : logi TRUE #10 6.706 $ vcs.ignore.library : logi TRUE #10 6.706 $ vcs.ignore.local : logi TRUE #10 6.707 $ vcs.manage.ignores : logi TRUE #10 6.707 #10 6.707 # Options -------------------------------------------------------------------- #10 6.708 List of 9 #10 6.708 $ defaultPackages : chr [1:6] "datasets" "utils" "grDevices" "graphics" ... #10 6.708 $ download.file.method : chr "libcurl" #10 6.709 $ download.file.extra : NULL #10 6.709 $ install.packages.compile.from.source: NULL #10 6.709 $ pkgType : chr "source" #10 6.710 $ repos : Named chr "https://cran.rstudio.com/" #10 6.710 ..- attr(*, "names")= chr "CRAN" #10 6.710 $ renv.config.pak.enabled : logi TRUE #10 6.711 $ renv.config.auto.snapshot : logi TRUE #10 6.711 $ renv.verbose : logi TRUE #10 6.711 #10 6.711 # Environment Variables ------------------------------------------------------ #10 6.712 HOME = /root #10 6.712 LANG = en_US.UTF-8 #10 6.712 MAKE = make #10 6.712 R_LIBS = /usr/local/lib/R/site-library:/usr/local/lib/R/library #10 6.712 R_LIBS_SITE = /usr/local/lib/R/site-library #10 6.712 R_LIBS_USER = /root/R/aarch64-unknown-linux-gnu-library/4.3 #10 6.712 RENV_PATHS_LIBRARY = /usr/local/lib/R/site-library #10 6.712 #10 6.712 # PATH ----------------------------------------------------------------------- #10 6.712 - /usr/local/sbin #10 6.712 - /usr/local/bin #10 6.712 - /usr/sbin #10 6.712 - /usr/bin #10 6.712 - /sbin #10 6.712 - /bin #10 6.712 #10 6.712 # Cache ---------------------------------------------------------------------- #10 6.714 There are a total of 2 packages installed in the renv cache. #10 6.715 Cache path: "~/.cache/R/renv/cache/v5/R-4.3/aarch64-unknown-linux-gnu" #10 6.715 #10 6.720 Package: bs4Dash #10 6.720 Type: Package #10 6.720 Title: A 'Bootstrap 4' Version of 'shinydashboard' #10 6.720 Version: 2.2.1 #10 6.720 Authors@R: c( person("David", "Granjon", email = "dgranjon@ymail.com", #10 6.720 role = c("aut", "cre")), person(family = "RinteRface", role = #10 6.720 "cph"), person(family = "Almasaeed Studio", role = c("ctb", #10 6.720 "cph"), comment = "AdminLTE3 theme for Bootstrap 4"), #10 6.720 person("Winston", "Chang", role = c("ctb", "cph"), comment = #10 6.720 "Utils functions from shinydashboard")) #10 6.720 Maintainer: David Granjon #10 6.720 Description: Make 'Bootstrap 4' Shiny dashboards. Use the full power of #10 6.720 'AdminLTE3', a dashboard template built on top of 'Bootstrap 4' #10 6.720 . #10 6.720 URL: https://rinterface.github.io/bs4Dash/index.html, #10 6.720 https://github.com/RinteRface/bs4Dash #10 6.720 BugReports: https://github.com/RinteRface/bs4Dash/issues #10 6.720 License: GPL (>= 2) | file LICENSE #10 6.720 Imports: shiny (>= 1.6.0), htmltools (>= 0.5.1.1), jsonlite (>= #10 6.720 0.9.16), fresh, grDevices, waiter (>= 0.2.3), httpuv (>= #10 6.720 1.5.2), lifecycle, bslib (>= 0.2.4), httr, UU (>= 1.5.1) #10 6.720 Suggests: knitr, rmarkdown, testthat (>= 2.1.0), golem, DT, thematic #10 6.720 (>= 0.1.2) #10 6.720 Encoding: UTF-8 #10 6.720 RoxygenNote: 7.2.3 #10 6.720 VignetteBuilder: knitr #10 6.720 Collate: 'aaa_reimports.R' 'feedbacks.R' 'useful-items.R' 'tabs.R' #10 6.720 ..... #10 6.720 RdMacros: lifecycle #10 6.720 Remotes: yogat3ch/UU #10 6.720 NeedsCompilation: no #10 6.720 Packaged: 2024-05-23 14:58:06 UTC; root #10 6.720 Author: David Granjon [aut, cre], RinteRface [cph], Almasaeed Studio #10 6.720 [ctb, cph] (AdminLTE3 theme for Bootstrap 4), Winston Chang #10 6.720 [ctb, cph] (Utils functions from shinydashboard) #10 6.720 Built: R 4.3.0; ; 2024-05-23 14:58:07 UTC; unix #10 6.720 RemoteType: github #10 6.720 RemoteHost: api.github.com #10 6.720 RemoteRepo: bs4Dash #10 6.720 RemoteUsername: yogat3ch #10 6.720 RemotePkgRef: yogat3ch/bs4Dash@HEAD #10 6.720 RemoteRef: HEAD #10 6.720 RemoteSha: 1d4d4618e47457067fd07e17c840e58f0213c684 #10 6.720 GithubRepo: bs4Dash #10 6.720 GithubUsername: yogat3ch #10 6.720 GithubRef: HEAD #10 6.720 GithubSHA1: 1d4d4618e47457067fd07e17c840e58f0213c684 #10 6.720 #10 6.720 -- File: /usr/local/lib/R/site-library/bs4Dash/Meta/package.rds #10 16.37 #10 17.32 ✔ Updated metadata database: 1.37 MB in 1 file. #10 17.32 #10 17.32 ℹ Updating metadata database #10 20.11 ✔ Updating metadata database ... done #10 20.11 #10 20.51 #10 20.52 #10 20.72 ℹ No downloads are needed #10 20.76 ✔ 2 pkgs + 1 dep: [6.4s] #10 20.78 > #10 20.78 > #10 DONE 21.7s #11 [stage-4 6/17] RUN R --quiet -e "pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs()));" #11 0.349 > pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs())); #11 0.574 ℹ Loading dmdu #11 0.791 ℹ `opts` & `toggle` functions were generated for the following options in #11 0.791 '.Rprofile': use_db, use_crew, use_tracking, use_translation, max_policies, #11 0.791 phase, use_local_db_API, renv.config.auto.snapshot, memoise, use_reprex, #11 0.791 use_debug, use_intro, shiny.autoload.r, shiny.testmode #11 0.791 This message is displayed once per session. #11 2.254 Error in load_imports(path) : #11 2.254 The package "bs4Dash" (>= 2.3.3) is required. #11 2.254 Calls: ... load_imports -> deps_check_installed -> check_installed #11 2.254 Execution halted #11 ERROR: process "/bin/sh -c R --quiet -e \"pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs()));\"" did not complete successfully: exit code: 1 ------ > [stage-4 6/17] RUN R --quiet -e "pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs()));": 0.574 ℹ Loading dmdu 0.791 ℹ `opts` & `toggle` functions were generated for the following options in 0.791 '.Rprofile': use_db, use_crew, use_tracking, use_translation, max_policies, 0.791 phase, use_local_db_API, renv.config.auto.snapshot, memoise, use_reprex, 0.791 use_debug, use_intro, shiny.autoload.r, shiny.testmode 0.791 This message is displayed once per session. 2.254 Error in load_imports(path) : 2.254 The package "bs4Dash" (>= 2.3.3) is required. 2.254 Calls: ... load_imports -> deps_check_installed -> check_installed 2.254 Execution halted ------ Dockerfile:42 -------------------- 40 | RUN R --quiet -e "renv::diagnostics();packageDescription('bs4Dash');renv::restore()" 41 | # Install the versions of Github packages specified in the lockfile 42 | >>> RUN R --quiet -e "pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs()));" 43 | # Creates a directory to hold deployment related files. 44 | RUN mkdir -p deploy -------------------- ERROR: failed to solve: process "/bin/sh -c R --quiet -e \"pkgload::load_all(); .libPaths();renv_gh_pkgs_install(rev(renv_gh_pkgs()));\"" did not complete successfully: exit code: 1 ```
kevinushey commented 2 months ago

Apologies for the late response; I've been out of office.

I'm hoping to investigate again shortly; is your diagnosis in https://github.com/rstudio/renv/issues/1883#issuecomment-2130255363 still current?

kmasiello commented 1 month ago

Hi @kevinushey , I believe this is related:

I am seeing that some packages in a renv.lock are completely ignored by renv::restore() when building a Dockerfile. The build logs don't even list the packages in the download/install list.

The attached lock file generates the following build output: renv.lock.txt

#25 0.572 > renv::restore(lockfile='renv.lock')
#25 4.126 The following package(s) will be updated:
#25 4.126 
#25 4.126 # RSPM -----------------------------------------------------------------------
#25 4.126 - cli     [3.6.2 -> 3.6.3]
#25 4.126 - rlang   [1.1.3 -> 1.1.4]
#25 4.126 
#25 4.140 # Downloading packages -------------------------------------------------------
#25 4.223 - Downloading cli from RSPM ...                 OK [1.2 Mb in 1.7s]
#25 6.179 - Downloading rlang from RSPM ...               OK [1.5 Mb in 1.8s]
#25 8.192 Successfully downloaded 2 packages in 4.1 seconds.
#25 8.192 
#25 8.193 # Installing packages --------------------------------------------------------
#25 8.274 - Installing cli ...                            OK [installed binary and cached in 1.3s]
#25 9.783 - Installing rlang ...                          OK [installed binary and cached in 1.4s]
#25 11.39 > 
#25 11.39 > 
#25 DONE 13.4s

As you can see, bit, bit64, blob, vctrs, glue, lifecycle, and pkgconfig are all ignored. The lockfile restores properly outside of a Docker context. Interestingly, in the larger project where I discovered this issue, I'm also installing forcats, which lists glue as a dependency, and there are no errors thrown.

kevinushey commented 1 month ago

@kmasiello I suspect this is because those packages are already installed in another library on your library paths, or because those packages were already installed via some separate mechanism. Is that possible? Are you able to share the whole build log?

kmasiello commented 1 month ago
<_ceases pulling out hair_> @kevinushey I think you're right. They are buried in our base r-session-complete image. Still haven't found exactly where, but running a clean session with just `ghcr.io/rstudio/r-session-complete:ubuntu2204` has those offending packages in the R 4.4 system library. I retract my comments and shall take a walk to try to recover my sanity. 🚶‍♀️