diff --git a/.github/workflows/test-ff-matrix.yml b/.github/workflows/test-ff-matrix.yml index 8a7fc0f8ef2..90291d60e07 100644 --- a/.github/workflows/test-ff-matrix.yml +++ b/.github/workflows/test-ff-matrix.yml @@ -47,7 +47,7 @@ jobs: - name: Set up R uses: r-lib/actions/setup-r@v2 with: - r-version: "4.3.2" + r-version: "4.4.2" use-public-rspm: true # required to avoid rtools bin in path windows-path-include-rtools: false diff --git a/.github/workflows/test-smokes.yml b/.github/workflows/test-smokes.yml index f76bb9e189e..5b6bac4a9ea 100644 --- a/.github/workflows/test-smokes.yml +++ b/.github/workflows/test-smokes.yml @@ -68,7 +68,7 @@ jobs: - name: Set up R uses: r-lib/actions/setup-r@v2 with: - r-version: "4.3.2" + r-version: "4.4.2" use-public-rspm: true # required to avoid rtools bin in path windows-path-include-rtools: false diff --git a/tests/README.md b/tests/README.md index 5de7737c1ef..1e5133dbd05 100644 --- a/tests/README.md +++ b/tests/README.md @@ -23,7 +23,7 @@ Tests are running through `Deno.test()` framework, adapted for our Quarto projec Here are what is expected in the environment for the tests : -- R should be installed and in PATH - [**rig**](https://github.com/r-lib/rig) is a good tool to manage R versions. +- R should be installed and in PATH - [**rig**](https://github.com/r-lib/rig) is a good tool to manage R versions. e.g `rig install 4.4.2` and `rig default 4.4.2` to install and set the version to 4.4.2 - On Windows, Rtools should be too (for source package installation) - Python should be installed and in PATH - [**pyenv**](https://github.com/pyenv/pyenv) is a good option to manage Python versions. - On Windows, it will be [`pyenv-win`](https://pyenv-win.github.io/pyenv-win/) to manage versions. Otherwise or install from https://www.python.org/ manually or using `winget`. @@ -53,6 +53,8 @@ Our project is using [explicit dependencies discovery](https://rstudio.github.io See [documentation](https://rstudio.github.io/renv/) if you need to tweak the R environment. +After a dependency update, you can run `configure-test-env.sh` or `configure-test-env.ps1` to update the environment, or manually run `renv::restore()` to recreate the environment with new versions. Be sure to update your R version if needed. + #### Python We use [**pipenv**](https://pipenv.pypa.io/en/latest/) to manage dependencies and recreate easily on all OS. `pipenv` will be installed as part of the configuration if not already. diff --git a/tests/renv.lock b/tests/renv.lock index 5455767e718..22bdef6f155 100644 --- a/tests/renv.lock +++ b/tests/renv.lock @@ -1,10 +1,10 @@ { "R": { - "Version": "4.3.2", + "Version": "4.4.2", "Repositories": [ { - "Name": "RSPM", - "URL": "https://packagemanager.rstudio.com/all/latest" + "Name": "P3M", + "URL": "https://packagemanager.posit.co/cran/latest" }, { "Name": "CRAN", @@ -17,25 +17,25 @@ "Package": "AsioHeaders", "Version": "1.22.1-2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Hash": "85bf3bd8fa58da21a22d84fd4f4ef0a8" }, "DBI": { "Package": "DBI", - "Version": "1.2.1", + "Version": "1.2.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "methods" ], - "Hash": "9b4993e98e0e19da84c168460c032fef" + "Hash": "065ae649b05f1ff66bb0c793107508f5" }, "DT": { "Package": "DT", - "Version": "0.31", + "Version": "0.33", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "crosstalk", "htmltools", @@ -46,13 +46,13 @@ "magrittr", "promises" ], - "Hash": "77b5189f5272ae2b21e3ac2175ad107c" + "Hash": "64ff3427f559ce3f2597a4fe13255cb6" }, "MASS": { "Package": "MASS", - "Version": "7.3-60.0.1", + "Version": "7.3-61", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", "grDevices", @@ -61,13 +61,13 @@ "stats", "utils" ], - "Hash": "b765b28387acc8ec9e9c1530713cb19c" + "Hash": "0cafd6f0500e5deba33be22c46bf6055" }, "Matrix": { "Package": "Matrix", - "Version": "1.6-5", + "Version": "1.7-1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", "grDevices", @@ -78,13 +78,13 @@ "stats", "utils" ], - "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + "Hash": "5122bb14d8736372411f955e1b16bc8a" }, "R6": { "Package": "R6", "Version": "2.5.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -94,7 +94,7 @@ "Package": "RColorBrewer", "Version": "1.1-3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -102,9 +102,9 @@ }, "RSQLite": { "Package": "RSQLite", - "Version": "2.3.5", + "Version": "2.3.7", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "DBI", "R", @@ -117,57 +117,57 @@ "plogr", "rlang" ], - "Hash": "f5a75d57e0a3014a6ef537ac04a80fc6" + "Hash": "46b45a4dd7bb0e0f4e3fc22245817240" }, "Rcpp": { "Package": "Rcpp", - "Version": "1.0.12", + "Version": "1.0.13-1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "methods", "utils" ], - "Hash": "5ea2700d21e038ace58269ecdbeb9ec0" + "Hash": "6b868847b365672d6c1677b1608da9ed" }, "V8": { "Package": "V8", - "Version": "4.4.2", + "Version": "6.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "Rcpp", "curl", "jsonlite", "utils" ], - "Hash": "ca98390ad1cef2a5a609597b49d3d042" + "Hash": "6603bfcbc7883a5fed41fb13042a3899" }, "askpass": { "Package": "askpass", - "Version": "1.2.0", + "Version": "1.2.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "sys" ], - "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" + "Hash": "c39f4155b3ceb1a9a2799d700fbd4b6a" }, "backports": { "Package": "backports", - "Version": "1.4.1", + "Version": "1.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], - "Hash": "c39fbec8a30d23e721980b8afb31984c" + "Hash": "e1e1b9d75c37401117b636b7ae50827a" }, "base64enc": { "Package": "base64enc", "Version": "0.1-3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -177,7 +177,7 @@ "Package": "bigD", "Version": "0.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -185,19 +185,19 @@ }, "bit": { "Package": "bit", - "Version": "4.0.5", + "Version": "4.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], - "Hash": "d242abec29412ce988848d0294b208fd" + "Hash": "5dc7b2677d65d0e874fc4aaf0e879987" }, "bit64": { "Package": "bit64", - "Version": "4.0.5", + "Version": "4.5.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "bit", @@ -205,20 +205,20 @@ "stats", "utils" ], - "Hash": "9fe98599ca456d6552421db0d6772d8f" + "Hash": "e84984bf5f12a18628d9a02322128dfd" }, "bitops": { "Package": "bitops", - "Version": "1.0-7", + "Version": "1.0-9", "Source": "Repository", - "Repository": "CRAN", - "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + "Repository": "P3M", + "Hash": "d972ef991d58c19e6efa71b21f5e144b" }, "blob": { "Package": "blob", "Version": "1.2.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "methods", "rlang", @@ -228,24 +228,23 @@ }, "brio": { "Package": "brio", - "Version": "1.1.4", + "Version": "1.1.5", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R" ], - "Hash": "68bd2b066e1fe780bbf62fc8bcc36de3" + "Hash": "c1ee497a6d999947c2c224ae46799b1a" }, "broom": { "Package": "broom", - "Version": "1.0.5", + "Version": "1.0.7", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "backports", "dplyr", - "ellipsis", "generics", "glue", "lifecycle", @@ -255,13 +254,13 @@ "tibble", "tidyr" ], - "Hash": "fd25391c3c4f6ecf0fa95f1e6d15378c" + "Hash": "8fcc818f3b9887aebaf206f141437cc9" }, "bsicons": { "Package": "bsicons", "Version": "0.1.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -273,13 +272,14 @@ }, "bslib": { "Package": "bslib", - "Version": "0.6.1", + "Version": "0.8.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "base64enc", "cachem", + "fastmap", "grDevices", "htmltools", "jquerylib", @@ -290,37 +290,37 @@ "rlang", "sass" ], - "Hash": "c0d8599494bc7fb408cd206bbdd9cab0" + "Hash": "b299c6741ca9746fb227debcb0f9fb6c" }, "cachem": { "Package": "cachem", - "Version": "1.0.8", + "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "fastmap", "rlang" ], - "Hash": "c35768291560ce302c0a6589f92e837d" + "Hash": "cd9a672193789068eb5a2aad65a0dedf" }, "callr": { "Package": "callr", - "Version": "3.7.3", + "Version": "3.7.6", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "R6", "processx", "utils" ], - "Hash": "9b2191ede20fa29828139b9900922e51" + "Hash": "d7e13f49c19103ece9e58ad2d83a7354" }, "cellranger": { "Package": "cellranger", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "rematch", @@ -330,9 +330,9 @@ }, "chromote": { "Package": "chromote", - "Version": "0.2.0", + "Version": "0.3.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R6", "curl", @@ -346,24 +346,24 @@ "utils", "websocket" ], - "Hash": "3cfaf9cbd331e07055acada321664e12" + "Hash": "5532726015b620830baae59aa689ea52" }, "cli": { "Package": "cli", - "Version": "3.6.2", + "Version": "3.6.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "utils" ], - "Hash": "1216ac65ac55ec0058a6f75d7ca0fd52" + "Hash": "b21916dd77a27642b447374a5d30ecf3" }, "clipr": { "Package": "clipr", "Version": "0.8.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "utils" ], @@ -371,9 +371,9 @@ }, "colorspace": { "Package": "colorspace", - "Version": "2.1-0", + "Version": "2.1-1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "grDevices", @@ -381,13 +381,13 @@ "methods", "stats" ], - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + "Hash": "d954cb1c57e8d8b756165d7ba18aa55a" }, "colourpicker": { "Package": "colourpicker", "Version": "1.3.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "ggplot2", @@ -403,16 +403,16 @@ }, "commonmark": { "Package": "commonmark", - "Version": "1.9.1", + "Version": "1.9.2", "Source": "Repository", - "Repository": "RSPM", - "Hash": "5d8225445acb167abf7797de48b2ee3c" + "Repository": "P3M", + "Hash": "14eb0596f987c71535d07c3aff814742" }, "conflicted": { "Package": "conflicted", "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -423,31 +423,31 @@ }, "cpp11": { "Package": "cpp11", - "Version": "0.4.7", + "Version": "0.5.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R" ], - "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + "Hash": "91570bba75d0c9d3f1040c835cee8fba" }, "crayon": { "Package": "crayon", - "Version": "1.5.2", + "Version": "1.5.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "grDevices", "methods", "utils" ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" + "Hash": "859d96e65ef198fd43e82b9628d593ef" }, "crosstalk": { "Package": "crosstalk", "Version": "1.2.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R6", "htmltools", @@ -456,47 +456,32 @@ ], "Hash": "ab12c7b080a57475248a30f4db6298c0" }, - "crul": { - "Package": "crul", - "Version": "1.4.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R6", - "curl", - "httpcode", - "jsonlite", - "mime", - "urltools" - ], - "Hash": "1eb00a531331c91d970f3af74b75321f" - }, "curl": { "Package": "curl", - "Version": "5.2.0", + "Version": "5.2.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R" ], - "Hash": "ce88d13c0b10fe88a37d9c59dba2d7f9" + "Hash": "d91263322a58af798f6cf3b13fd56dde" }, "data.table": { "Package": "data.table", - "Version": "1.15.0", + "Version": "1.16.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "methods" ], - "Hash": "cfbbb4aed6e78cd45f17123a9ec9981a" + "Hash": "2e00b378fc3be69c865120d9f313039a" }, "dbplyr": { "Package": "dbplyr", - "Version": "2.4.0", + "Version": "2.5.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "DBI", "R", @@ -518,13 +503,13 @@ "vctrs", "withr" ], - "Hash": "59351f28a81f0742720b85363c4fdd61" + "Hash": "39b2e002522bfd258039ee4e889e0fd1" }, "desc": { "Package": "desc", "Version": "1.4.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -535,20 +520,20 @@ }, "digest": { "Package": "digest", - "Version": "0.6.34", + "Version": "0.6.37", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "utils" ], - "Hash": "7ede2ee9ea8d3edbf1ca84c1e333ad1a" + "Hash": "33698c4b3127fc9f506654607fb73676" }, "downlit": { "Package": "downlit", - "Version": "0.4.3", + "Version": "0.4.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "brio", @@ -562,13 +547,13 @@ "withr", "yaml" ], - "Hash": "14fa1f248b60ed67e1f5418391a17b14" + "Hash": "45a6a596bf0108ee1ff16a040a2df897" }, "dplyr": { "Package": "dplyr", "Version": "1.1.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -591,7 +576,7 @@ "Package": "dtplyr", "Version": "1.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -606,33 +591,21 @@ ], "Hash": "54ed3ea01b11e81a86544faaecfef8e2" }, - "ellipsis": { - "Package": "ellipsis", - "Version": "0.3.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "rlang" - ], - "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" - }, "evaluate": { "Package": "evaluate", - "Version": "0.23", + "Version": "1.0.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ - "R", - "methods" + "R" ], - "Hash": "daf4a1246be12c1fa8c7705a0935c1a0" + "Hash": "3fd29944b231036ad67c3edb32e02201" }, "fansi": { "Package": "fansi", "Version": "1.0.6", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "grDevices", @@ -642,23 +615,23 @@ }, "farver": { "Package": "farver", - "Version": "2.1.1", + "Version": "2.1.2", "Source": "Repository", - "Repository": "CRAN", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Repository": "P3M", + "Hash": "680887028577f3fa2a81e410ed0d6e42" }, "fastmap": { "Package": "fastmap", - "Version": "1.1.1", + "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", - "Hash": "f7736a18de97dea803bde0a2daaafb27" + "Repository": "P3M", + "Hash": "aa5e1cd11c2d15497494c5292d7ffcc8" }, "flextable": { "Package": "flextable", - "Version": "0.9.4", + "Version": "0.9.7", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "data.table", "gdtools", @@ -676,13 +649,13 @@ "uuid", "xml2" ], - "Hash": "db48820af2b3e5afa64726cf5615da27" + "Hash": "e3201bd3a94311654ff35cf2ddc3343e" }, "fontBitstreamVera": { "Package": "fontBitstreamVera", "Version": "0.1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -692,7 +665,7 @@ "Package": "fontLiberation", "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -702,7 +675,7 @@ "Package": "fontawesome", "Version": "0.5.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "htmltools", @@ -714,7 +687,7 @@ "Package": "fontquiver", "Version": "0.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "fontBitstreamVera", @@ -726,7 +699,7 @@ "Package": "forcats", "Version": "1.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -740,20 +713,20 @@ }, "fs": { "Package": "fs", - "Version": "1.6.3", + "Version": "1.6.5", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "methods" ], - "Hash": "47b5f30c720c23999b913a1a635cf0bb" + "Hash": "7f48af39fa27711ea5fbd183b399920d" }, "gargle": { "Package": "gargle", "Version": "1.5.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -773,54 +746,35 @@ }, "gdtools": { "Package": "gdtools", - "Version": "0.3.5", + "Version": "0.4.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "Rcpp", - "curl", "fontquiver", - "gfonts", "htmltools", "systemfonts", "tools" ], - "Hash": "9df1d2b4f6cbc92ce6961d3f10156125" + "Hash": "169e77416ce3f7ac73fc975909dd5455" }, "generics": { "Package": "generics", "Version": "0.1.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "methods" ], "Hash": "15e9634c0fcd294799e9b2e929ed1b86" }, - "gfonts": { - "Package": "gfonts", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "crayon", - "crul", - "glue", - "htmltools", - "jsonlite", - "shiny", - "utils" - ], - "Hash": "a535d76cf92645364997a8751396d63b" - }, "ggExtra": { "Package": "ggExtra", "Version": "0.10.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -839,9 +793,9 @@ }, "ggplot2": { "Package": "ggplot2", - "Version": "3.4.4", + "Version": "3.5.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "MASS", "R", @@ -860,24 +814,24 @@ "vctrs", "withr" ], - "Hash": "313d31eff2274ecf4c1d3581db7241f9" + "Hash": "44c6a2f8202d5b7e878ea274b1092426" }, "glue": { "Package": "glue", - "Version": "1.7.0", + "Version": "1.8.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "methods" ], - "Hash": "e0b3a53876554bd45879e596cdb10a52" + "Hash": "5899f1eaa825580172bb56c08266f37c" }, "googledrive": { "Package": "googledrive", "Version": "2.1.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -902,7 +856,7 @@ "Package": "googlesheets4", "Version": "1.1.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cellranger", @@ -928,9 +882,9 @@ }, "gt": { "Package": "gt", - "Version": "0.10.1", + "Version": "0.11.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "base64enc", @@ -954,28 +908,29 @@ "vctrs", "xml2" ], - "Hash": "03009c105dfae79460b8eb9d8cf791e4" + "Hash": "3170d1f0f45e531c241179ab57cd30bd" }, "gtable": { "Package": "gtable", - "Version": "0.3.4", + "Version": "0.3.6", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", "glue", "grid", "lifecycle", - "rlang" + "rlang", + "stats" ], - "Hash": "b29cf3031f49b04ab9c852c912547eef" + "Hash": "de949855009e2d4d0e52a844e30617ae" }, "haven": { "Package": "haven", "Version": "2.5.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -994,20 +949,20 @@ }, "highr": { "Package": "highr", - "Version": "0.10", + "Version": "0.11", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "xfun" ], - "Hash": "06230136b2d2b9ba5805e1963fa6e890" + "Hash": "d65ba49117ca223614f71b60d85b8ab7" }, "hms": { "Package": "hms", "Version": "1.1.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "lifecycle", "methods", @@ -1019,26 +974,25 @@ }, "htmltools": { "Package": "htmltools", - "Version": "0.5.7", + "Version": "0.5.8.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "base64enc", "digest", - "ellipsis", "fastmap", "grDevices", "rlang", "utils" ], - "Hash": "2d7b3857980e0e0d0a1fd6f11928ab0f" + "Hash": "81d371a9cc60640e74e4ab6ac46dcedc" }, "htmlwidgets": { "Package": "htmlwidgets", "Version": "1.6.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "grDevices", "htmltools", @@ -1049,18 +1003,11 @@ ], "Hash": "04291cc45198225444a397606810ac37" }, - "httpcode": { - "Package": "httpcode", - "Version": "0.3.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "13641a1c6d2cc98801b76764078e17ea" - }, "httpuv": { "Package": "httpuv", - "Version": "1.6.14", + "Version": "1.6.15", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1069,13 +1016,13 @@ "promises", "utils" ], - "Hash": "16abeb167dbf511f8cc0552efaf05bab" + "Hash": "d55aa087c47a63ead0f6fc10f8fa1ee0" }, "httr": { "Package": "httr", "Version": "1.4.7", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1090,7 +1037,7 @@ "Package": "ids", "Version": "1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "openssl", "uuid" @@ -1101,7 +1048,7 @@ "Package": "isoband", "Version": "0.2.7", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "grid", "utils" @@ -1112,7 +1059,7 @@ "Package": "jquerylib", "Version": "0.1.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "htmltools" ], @@ -1120,19 +1067,19 @@ }, "jsonlite": { "Package": "jsonlite", - "Version": "1.8.8", + "Version": "1.8.9", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "methods" ], - "Hash": "e1b9c55281c5adc4dd113652d9e26768" + "Hash": "4e993b65c2c3ffbffce7bb3e2c6f832b" }, "juicyjuice": { "Package": "juicyjuice", "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "V8" ], @@ -1142,7 +1089,7 @@ "Package": "kableExtra", "Version": "1.4.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "digest", @@ -1165,9 +1112,9 @@ }, "knitr": { "Package": "knitr", - "Version": "1.45", + "Version": "1.48", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "evaluate", @@ -1177,13 +1124,13 @@ "xfun", "yaml" ], - "Hash": "1ec462871063897135c1bcbe0fc8f07d" + "Hash": "acf380f300c721da9fde7df115a5f86f" }, "labeling": { "Package": "labeling", "Version": "0.4.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "graphics", "stats" @@ -1194,7 +1141,7 @@ "Package": "later", "Version": "1.3.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "Rcpp", "rlang" @@ -1203,9 +1150,9 @@ }, "lattice": { "Package": "lattice", - "Version": "0.22-5", + "Version": "0.22-6", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", "grDevices", @@ -1214,13 +1161,13 @@ "stats", "utils" ], - "Hash": "7c5e89f04e72d6611c77451f6331a091" + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" }, "lazyeval": { "Package": "lazyeval", "Version": "0.2.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -1230,7 +1177,7 @@ "Package": "lifecycle", "Version": "1.0.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1243,7 +1190,7 @@ "Package": "lubridate", "Version": "1.9.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "generics", @@ -1256,7 +1203,7 @@ "Package": "magrittr", "Version": "2.0.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -1264,22 +1211,22 @@ }, "markdown": { "Package": "markdown", - "Version": "1.12", + "Version": "1.13", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "commonmark", "utils", "xfun" ], - "Hash": "765cf53992401b3b6c297b69e1edb8bd" + "Hash": "074efab766a9d6360865ad39512f2a7e" }, "memoise": { "Package": "memoise", "Version": "2.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "cachem", "rlang" @@ -1290,7 +1237,7 @@ "Package": "mgcv", "Version": "1.9-1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "Matrix", "R", @@ -1307,7 +1254,7 @@ "Package": "mime", "Version": "0.12", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "tools" ], @@ -1317,7 +1264,7 @@ "Package": "miniUI", "Version": "0.1.1.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "htmltools", "shiny", @@ -1329,7 +1276,7 @@ "Package": "modelr", "Version": "0.1.11", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "broom", @@ -1345,20 +1292,20 @@ }, "munsell": { "Package": "munsell", - "Version": "0.5.0", + "Version": "0.5.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "colorspace", "methods" ], - "Hash": "6dfe8bf774944bd5595785e3229d8771" + "Hash": "4fd8900853b746af55b81fda99da7695" }, "nlme": { "Package": "nlme", - "Version": "3.1-164", + "Version": "3.1-166", "Source": "Repository", - "Repository": "RSPM", + "Repository": "CRAN", "Requirements": [ "R", "graphics", @@ -1366,15 +1313,16 @@ "stats", "utils" ], - "Hash": "a623a2239e642806158bc4dc3f51565d" + "Hash": "ccbb8846be320b627e6aa2b4616a2ded" }, "officer": { "Package": "officer", - "Version": "0.6.4", + "Version": "0.6.7", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R6", + "cli", "grDevices", "graphics", "openssl", @@ -1385,23 +1333,23 @@ "xml2", "zip" ], - "Hash": "59cf253b0daa7e2962d8fe9da7b235c5" + "Hash": "d6c0a4e796301a5d252de42c92a9a8b9" }, "openssl": { "Package": "openssl", - "Version": "2.1.1", + "Version": "2.2.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "askpass" ], - "Hash": "2a0dc8c6adfb6f032e4d4af82d258ab5" + "Hash": "d413e0fef796c9401a4419485f709ca1" }, "pillar": { "Package": "pillar", "Version": "1.9.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "cli", "fansi", @@ -1418,7 +1366,7 @@ "Package": "pkgconfig", "Version": "2.0.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "utils" ], @@ -1428,14 +1376,14 @@ "Package": "plogr", "Version": "0.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Hash": "09eb987710984fc2905c7129c7d85e65" }, "prettyunits": { "Package": "prettyunits", "Version": "1.2.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R" ], @@ -1443,22 +1391,22 @@ }, "processx": { "Package": "processx", - "Version": "3.8.3", + "Version": "3.8.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", "ps", "utils" ], - "Hash": "82d48b1aec56084d9438dbf98087a7e9" + "Hash": "0c90a7d71988856bad2a2a45dd871bb9" }, "progress": { "Package": "progress", "Version": "1.2.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1470,9 +1418,9 @@ }, "promises": { "Package": "promises", - "Version": "1.2.1", + "Version": "1.3.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R6", "Rcpp", @@ -1482,24 +1430,24 @@ "rlang", "stats" ], - "Hash": "0d8a15c9d000970ada1ab21405387dee" + "Hash": "434cd5388a3979e74be5c219bcd6e77d" }, "ps": { "Package": "ps", - "Version": "1.7.6", + "Version": "1.8.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "utils" ], - "Hash": "dd2b9319ee0656c8acf45c7f40c59de7" + "Hash": "b4404b1de13758dea1c0484ad0d48563" }, "purrr": { "Package": "purrr", "Version": "1.0.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1512,20 +1460,20 @@ }, "ragg": { "Package": "ragg", - "Version": "1.2.7", + "Version": "1.3.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "systemfonts", "textshaping" ], - "Hash": "90a1b8b7e518d7f90480d56453b4d062" + "Hash": "0595fe5e47357111f29ad19101c7d271" }, "rappdirs": { "Package": "rappdirs", "Version": "0.3.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -1533,19 +1481,19 @@ }, "reactR": { "Package": "reactR", - "Version": "0.5.0", + "Version": "0.6.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "htmltools" ], - "Hash": "c9014fd1a435b2d790dd506589cb24e5" + "Hash": "b8e3d93f508045812f47136c7c44c251" }, "reactable": { "Package": "reactable", "Version": "0.4.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "digest", @@ -1560,7 +1508,7 @@ "Package": "readr", "Version": "2.1.5", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1583,7 +1531,7 @@ "Package": "readxl", "Version": "1.4.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cellranger", @@ -1598,14 +1546,14 @@ "Package": "rematch", "Version": "2.0.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Hash": "cbff1b666c6fa6d21202f07e2318d4f1" }, "rematch2": { "Package": "rematch2", "Version": "2.1.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "tibble" ], @@ -1613,19 +1561,19 @@ }, "renv": { "Package": "renv", - "Version": "1.0.3", + "Version": "1.0.11", "Source": "Repository", "Repository": "RSPM", "Requirements": [ "utils" ], - "Hash": "41b847654f567341725473431dd0d5ab" + "Hash": "47623f66b4e80b3b0587bc5d7b309888" }, "reprex": { "Package": "reprex", - "Version": "2.1.0", + "Version": "2.1.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "callr", @@ -1641,24 +1589,24 @@ "utils", "withr" ], - "Hash": "1425f91b4d5d9a8f25352c44a3d914ed" + "Hash": "97b1d5361a24d9fb588db7afe3e5bcbf" }, "rlang": { "Package": "rlang", - "Version": "1.1.3", + "Version": "1.1.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "utils" ], - "Hash": "42548638fae05fd9a9b5f3f437fbbbe2" + "Hash": "3eec01f8b1dee337674b2e34ab1f9bc1" }, "rmarkdown": { "Package": "rmarkdown", - "Version": "2.25", + "Version": "2.29", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "bslib", @@ -1669,27 +1617,26 @@ "jsonlite", "knitr", "methods", - "stringr", "tinytex", "tools", "utils", "xfun", "yaml" ], - "Hash": "d65e35823c817f09f4de424fcdfa812a" + "Hash": "df99277f63d01c34e95e3d2f06a79736" }, "rstudioapi": { "Package": "rstudioapi", - "Version": "0.15.0", + "Version": "0.17.1", "Source": "Repository", - "Repository": "RSPM", - "Hash": "5564500e25cffad9e22244ced1379887" + "Repository": "P3M", + "Hash": "5f90cd73946d706cfe26024294236113" }, "rvest": { "Package": "rvest", "Version": "1.0.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1706,9 +1653,9 @@ }, "sass": { "Package": "sass", - "Version": "0.4.8", + "Version": "0.4.9", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R6", "fs", @@ -1716,13 +1663,13 @@ "rappdirs", "rlang" ], - "Hash": "168f9353c76d4c4b0a0bbf72e2c2d035" + "Hash": "d53dbfddf695303ea4ad66f86e99b95d" }, "scales": { "Package": "scales", "Version": "1.3.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1742,7 +1689,7 @@ "Package": "selectr", "Version": "0.4-2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1753,9 +1700,9 @@ }, "shiny": { "Package": "shiny", - "Version": "1.8.0", + "Version": "1.9.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "R6", @@ -1763,7 +1710,6 @@ "cachem", "commonmark", "crayon", - "ellipsis", "fastmap", "fontawesome", "glue", @@ -1783,13 +1729,13 @@ "withr", "xtable" ], - "Hash": "3a1f41807d648a908e3c7f0334bf85e6" + "Hash": "6a293995a66e12c48d13aa1f957d09c7" }, "shinyjs": { "Package": "shinyjs", "Version": "2.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "digest", @@ -1802,7 +1748,7 @@ "Package": "sourcetools", "Version": "0.1.7-1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -1810,22 +1756,22 @@ }, "stringi": { "Package": "stringi", - "Version": "1.8.3", + "Version": "1.8.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "stats", "tools", "utils" ], - "Hash": "058aebddea264f4c99401515182e656a" + "Hash": "39e1144fd75428983dc3f63aa53dfa91" }, "stringr": { "Package": "stringr", "Version": "1.5.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1842,7 +1788,7 @@ "Package": "svglite", "Version": "2.1.3", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cpp11", @@ -1852,39 +1798,41 @@ }, "sys": { "Package": "sys", - "Version": "3.4.2", + "Version": "3.4.3", "Source": "Repository", - "Repository": "CRAN", - "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" + "Repository": "P3M", + "Hash": "de342ebfebdbf40477d0758d05426646" }, "systemfonts": { "Package": "systemfonts", - "Version": "1.0.5", + "Version": "1.1.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", - "cpp11" + "cpp11", + "lifecycle" ], - "Hash": "15b594369e70b975ba9f064295983499" + "Hash": "213b6b8ed5afbf934843e6c3b090d418" }, "textshaping": { "Package": "textshaping", - "Version": "0.3.7", + "Version": "0.4.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cpp11", + "lifecycle", "systemfonts" ], - "Hash": "997aac9ad649e0ef3b97f96cddd5622b" + "Hash": "5142f8bc78ed3d819d26461b641627ce" }, "tibble": { "Package": "tibble", "Version": "3.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "fansi", @@ -1903,7 +1851,7 @@ "Package": "tidyr", "Version": "1.3.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1924,9 +1872,9 @@ }, "tidyselect": { "Package": "tidyselect", - "Version": "1.2.0", + "Version": "1.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -1936,13 +1884,13 @@ "vctrs", "withr" ], - "Hash": "79540e5fcd9e0435af547d885f184fd5" + "Hash": "829f27b9c4919c16b593794a6344d6c0" }, "tidyverse": { "Package": "tidyverse", "Version": "2.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "broom", @@ -1982,7 +1930,7 @@ "Package": "timechange", "Version": "0.3.0", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cpp11" @@ -1991,53 +1939,30 @@ }, "tinytex": { "Package": "tinytex", - "Version": "0.49", + "Version": "0.54", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "xfun" ], - "Hash": "5ac22900ae0f386e54f1c307eca7d843" - }, - "triebeard": { - "Package": "triebeard", - "Version": "0.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Rcpp" - ], - "Hash": "642507a148b0dd9b5620177e0a044413" + "Hash": "3ec7e3ddcacc2d34a9046941222bf94d" }, "tzdb": { "Package": "tzdb", "Version": "0.4.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "cpp11" ], "Hash": "f561504ec2897f4d46f0c7657e488ae1" }, - "urltools": { - "Package": "urltools", - "Version": "1.7.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "Rcpp", - "methods", - "triebeard" - ], - "Hash": "e86a704261a105f4703f653e05defa3e" - }, "utf8": { "Package": "utf8", "Version": "1.2.4", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R" ], @@ -2045,19 +1970,19 @@ }, "uuid": { "Package": "uuid", - "Version": "1.2-0", + "Version": "1.2-1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R" ], - "Hash": "303c19bfd970bece872f93a824e323d9" + "Hash": "34e965e62a41fcafb1ca60e9b142085b" }, "vctrs": { "Package": "vctrs", "Version": "0.6.5", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -2071,7 +1996,7 @@ "Package": "viridisLite", "Version": "0.4.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R" ], @@ -2081,7 +2006,7 @@ "Package": "vroom", "Version": "1.6.5", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "bit64", @@ -2107,7 +2032,7 @@ "Package": "webshot2", "Version": "0.1.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "callr", @@ -2120,46 +2045,47 @@ }, "websocket": { "Package": "websocket", - "Version": "1.4.1", + "Version": "1.4.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "AsioHeaders", "R6", "cpp11", "later" ], - "Hash": "76e0d400757e318cca33def29ccebbc2" + "Hash": "e77c5569354172d0d04d54a9dec89e33" }, "withr": { "Package": "withr", - "Version": "3.0.0", + "Version": "3.0.2", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "grDevices", "graphics" ], - "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + "Hash": "cc2d62c76458d425210d1eb1478b30b4" }, "xfun": { "Package": "xfun", - "Version": "0.43", + "Version": "0.49", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ + "R", "grDevices", "stats", "tools" ], - "Hash": "ab6371d8653ce5f2f9290f4ec7b42a8e" + "Hash": "8687398773806cfff9401a2feca96298" }, "xml2": { "Package": "xml2", "Version": "1.3.6", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Requirements": [ "R", "cli", @@ -2172,7 +2098,7 @@ "Package": "xtable", "Version": "1.8-4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "P3M", "Requirements": [ "R", "stats", @@ -2182,16 +2108,16 @@ }, "yaml": { "Package": "yaml", - "Version": "2.3.8", + "Version": "2.3.10", "Source": "Repository", - "Repository": "RSPM", - "Hash": "29240487a071f535f5e5d5a323b7afbd" + "Repository": "P3M", + "Hash": "51dab85c6c98e50a18d7551e9d49f76c" }, "zip": { "Package": "zip", "Version": "2.3.1", "Source": "Repository", - "Repository": "RSPM", + "Repository": "P3M", "Hash": "fcc4bd8e6da2d2011eb64a5e5cc685ab" } } diff --git a/tests/renv/activate.R b/tests/renv/activate.R index cb5401f93cb..0eb51088a29 100644 --- a/tests/renv/activate.R +++ b/tests/renv/activate.R @@ -2,11 +2,13 @@ local({ # the requested version of renv - version <- "1.0.3" + version <- "1.0.11" attr(version, "sha") <- NULL # the project directory - project <- getwd() + project <- Sys.getenv("RENV_PROJECT") + if (!nzchar(project)) + project <- getwd() # use start-up diagnostics if enabled diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") @@ -31,6 +33,14 @@ local({ if (!is.null(override)) return(override) + # if we're being run in a context where R_LIBS is already set, + # don't load -- presumably we're being run as a sub-process and + # the parent process has already set up library paths for us + rcmd <- Sys.getenv("R_CMD", unset = NA) + rlibs <- Sys.getenv("R_LIBS", unset = NA) + if (!is.na(rlibs) && !is.na(rcmd)) + return(FALSE) + # next, check environment variables # TODO: prefer using the configuration one in the future envvars <- c( @@ -50,9 +60,22 @@ local({ }) - if (!enabled) + # bail if we're not enabled + if (!enabled) { + + # if we're not enabled, we might still need to manually load + # the user profile here + profile <- Sys.getenv("R_PROFILE_USER", unset = "~/.Rprofile") + if (file.exists(profile)) { + cfg <- Sys.getenv("RENV_CONFIG_USER_PROFILE", unset = "TRUE") + if (tolower(cfg) %in% c("true", "t", "1")) + sys.source(profile, envir = globalenv()) + } + return(FALSE) + } + # avoid recursion if (identical(getOption("renv.autoloader.running"), TRUE)) { warning("ignoring recursive attempt to run renv autoloader") @@ -75,6 +98,66 @@ local({ unloadNamespace("renv") # load bootstrap tools + ansify <- function(text) { + if (renv_ansify_enabled()) + renv_ansify_enhanced(text) + else + renv_ansify_default(text) + } + + renv_ansify_enabled <- function() { + + override <- Sys.getenv("RENV_ANSIFY_ENABLED", unset = NA) + if (!is.na(override)) + return(as.logical(override)) + + pane <- Sys.getenv("RSTUDIO_CHILD_PROCESS_PANE", unset = NA) + if (identical(pane, "build")) + return(FALSE) + + testthat <- Sys.getenv("TESTTHAT", unset = "false") + if (tolower(testthat) %in% "true") + return(FALSE) + + iderun <- Sys.getenv("R_CLI_HAS_HYPERLINK_IDE_RUN", unset = "false") + if (tolower(iderun) %in% "false") + return(FALSE) + + TRUE + + } + + renv_ansify_default <- function(text) { + text + } + + renv_ansify_enhanced <- function(text) { + + # R help links + pattern <- "`\\?(renv::(?:[^`])+)`" + replacement <- "`\033]8;;ide:help:\\1\a?\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # runnable code + pattern <- "`(renv::(?:[^`])+)`" + replacement <- "`\033]8;;ide:run:\\1\a\\1\033]8;;\a`" + text <- gsub(pattern, replacement, text, perl = TRUE) + + # return ansified text + text + + } + + renv_ansify_init <- function() { + + envir <- renv_envir_self() + if (renv_ansify_enabled()) + assign("ansify", renv_ansify_enhanced, envir = envir) + else + assign("ansify", renv_ansify_default, envir = envir) + + } + `%||%` <- function(x, y) { if (is.null(x)) y else x } @@ -108,6 +191,24 @@ local({ } + heredoc <- function(text, leave = 0) { + + # remove leading, trailing whitespace + trimmed <- gsub("^\\s*\\n|\\n\\s*$", "", text) + + # split into lines + lines <- strsplit(trimmed, "\n", fixed = TRUE)[[1L]] + + # compute common indent + indent <- regexpr("[^[:space:]]", lines) + common <- min(setdiff(indent, -1L)) - leave + text <- paste(substring(lines, common), collapse = "\n") + + # substitute in ANSI links for executable renv code + ansify(text) + + } + startswith <- function(string, prefix) { substring(string, 1, nchar(prefix)) == prefix } @@ -267,8 +368,11 @@ local({ quiet = TRUE ) - if ("headers" %in% names(formals(utils::download.file))) - args$headers <- renv_bootstrap_download_custom_headers(url) + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(url) + if (length(headers) && is.character(headers)) + args$headers <- headers + } do.call(utils::download.file, args) @@ -347,10 +451,21 @@ local({ for (type in types) { for (repos in renv_bootstrap_repos()) { + # build arguments for utils::available.packages() call + args <- list(type = type, repos = repos) + + # add custom headers if available -- note that + # utils::available.packages() will pass this to download.file() + if ("headers" %in% names(formals(utils::download.file))) { + headers <- renv_bootstrap_download_custom_headers(repos) + if (length(headers) && is.character(headers)) + args$headers <- headers + } + # retrieve package database db <- tryCatch( as.data.frame( - utils::available.packages(type = type, repos = repos), + do.call(utils::available.packages, args), stringsAsFactors = FALSE ), error = identity @@ -432,6 +547,14 @@ local({ } + renv_bootstrap_github_token <- function() { + for (envvar in c("GITHUB_TOKEN", "GITHUB_PAT", "GH_TOKEN")) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(envval) + } + } + renv_bootstrap_download_github <- function(version) { enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") @@ -439,16 +562,16 @@ local({ return(FALSE) # prepare download options - pat <- Sys.getenv("GITHUB_PAT") - if (nzchar(Sys.which("curl")) && nzchar(pat)) { + token <- renv_bootstrap_github_token() + if (nzchar(Sys.which("curl")) && nzchar(token)) { fmt <- "--location --fail --header \"Authorization: token %s\"" - extra <- sprintf(fmt, pat) + extra <- sprintf(fmt, token) saved <- options("download.file.method", "download.file.extra") options(download.file.method = "curl", download.file.extra = extra) on.exit(do.call(base::options, saved), add = TRUE) - } else if (nzchar(Sys.which("wget")) && nzchar(pat)) { + } else if (nzchar(Sys.which("wget")) && nzchar(token)) { fmt <- "--header=\"Authorization: token %s\"" - extra <- sprintf(fmt, pat) + extra <- sprintf(fmt, token) saved <- options("download.file.method", "download.file.extra") options(download.file.method = "wget", download.file.extra = extra) on.exit(do.call(base::options, saved), add = TRUE) @@ -610,6 +733,9 @@ local({ # if the user has requested an automatic prefix, generate it auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) + if (is.na(auto) && getRversion() >= "4.4.0") + auto <- "TRUE" + if (auto %in% c("TRUE", "True", "true", "1")) return(renv_bootstrap_platform_prefix_auto()) @@ -801,24 +927,23 @@ local({ # the loaded version of renv doesn't match the requested version; # give the user instructions on how to proceed - remote <- if (!is.null(description[["RemoteSha"]])) { + dev <- identical(description[["RemoteType"]], "github") + remote <- if (dev) paste("rstudio/renv", description[["RemoteSha"]], sep = "@") - } else { + else paste("renv", description[["Version"]], sep = "@") - } # display both loaded version + sha if available friendly <- renv_bootstrap_version_friendly( version = description[["Version"]], - sha = description[["RemoteSha"]] + sha = if (dev) description[["RemoteSha"]] ) - fmt <- paste( - "renv %1$s was loaded from project library, but this project is configured to use renv %2$s.", - "- Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile.", - "- Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library.", - sep = "\n" - ) + fmt <- heredoc(" + renv %1$s was loaded from project library, but this project is configured to use renv %2$s. + - Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile. + - Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library. + ") catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) FALSE @@ -1041,7 +1166,7 @@ local({ # if jsonlite is loaded, use that instead if ("jsonlite" %in% loadedNamespaces()) { - json <- catch(renv_json_read_jsonlite(file, text)) + json <- tryCatch(renv_json_read_jsonlite(file, text), error = identity) if (!inherits(json, "error")) return(json) @@ -1050,7 +1175,7 @@ local({ } # otherwise, fall back to the default JSON reader - json <- catch(renv_json_read_default(file, text)) + json <- tryCatch(renv_json_read_default(file, text), error = identity) if (!inherits(json, "error")) return(json) @@ -1063,14 +1188,14 @@ local({ } renv_json_read_jsonlite <- function(file = NULL, text = NULL) { - text <- paste(text %||% read(file), collapse = "\n") + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") jsonlite::fromJSON(txt = text, simplifyVector = FALSE) } renv_json_read_default <- function(file = NULL, text = NULL) { # find strings in the JSON - text <- paste(text %||% read(file), collapse = "\n") + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") pattern <- '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' locs <- gregexpr(pattern, text, perl = TRUE)[[1]] @@ -1118,14 +1243,14 @@ local({ map <- as.list(map) # remap strings in object - remapped <- renv_json_remap(json, map) + remapped <- renv_json_read_remap(json, map) # evaluate eval(remapped, envir = baseenv()) } - renv_json_remap <- function(json, map) { + renv_json_read_remap <- function(json, map) { # fix names if (!is.null(names(json))) { @@ -1152,7 +1277,7 @@ local({ # recurse if (is.recursive(json)) { for (i in seq_along(json)) { - json[i] <- list(renv_json_remap(json[[i]], map)) + json[i] <- list(renv_json_read_remap(json[[i]], map)) } } diff --git a/tests/renv/settings.json b/tests/renv/settings.json index e7bcfa73e08..6af85f10f4e 100644 --- a/tests/renv/settings.json +++ b/tests/renv/settings.json @@ -2,17 +2,13 @@ "bioconductor.version": null, "external.libraries": [], "ignored.packages": [], - "package.dependency.fields": [ - "Imports", - "Depends", - "LinkingTo" - ], + "package.dependency.fields": ["Imports", "Depends", "LinkingTo"], "ppm.enabled": true, "ppm.ignored.urls": [ "https://yihui.r-universe.dev", "https://rstudio.r-universe.dev" ], - "r.version": "4.3.2", + "r.version": "4.4.2", "snapshot.type": "explicit", "use.cache": true, "vcs.ignore.cellar": true,