Changes in version 0.18.0 - The renv sandbox is now placed within the renv cache directory. (#1158) - Fixed an issue where renv::status() could erroneously report a project was out-of-sync when using explicit snapshots. (#1159) - Fixed an issue where renv::hydrate() would print spurious warnings. (#1160) - renv::status() now suggests running renv::restore() if there are no packages installed in the project library. (#1060) - Fixed an issue where renv would fail to query r-universe repositories. (#1156) - renv no longer tries to set the SDKROOT environment variable on macOS for R (>= 4.0.0). - Fixed an issue where installation of Bioconductor packages could fail when BiocManager was not installed. (#1156, #1155) - Fixed an issue where the amount of time elapsed reported by renv::install() failed to include the time spent retrieving packages. Changes in version 0.17.0 (2023-03-02) - The performance of renv::snapshot() has improved. - renv now maintains an index of available packages, as retrieved from the active package repositories, that is shared across R sessions. This should improve renv's performance when querying for available packages across multiple different R sessions. - renv::hydrate() gains the prompt parameter. When TRUE (the default), renv will prompt for confirmation before attempting to hydrate the active library. - Improved handling of package installation via SSH URLs with git. (#667) - Improved handling of R version validation when using projects with Bioconductor. If you find renv is erroneously reporting that your version of R is incompatible with the version of Bioconductor you are using, you can set options(renv.bioconductor.validate = FALSE) to disable this validation behaviour. (#1148) - Package names can now be associated with remotes in renv::install(); for example, you can use renv::install("igraph=igraph/rigraph") to install the igraph package. This is mainly important when using the renv.auth authentication tools, where the package name of a remote needs to be declared explicitly. (#667) - Fixed an issue that could prevent renv::restore() from functioning when attempting to install packages which had been archived on CRAN. (#1141) - renv::install() gains the dependencies argument, which behaves similarly to the equivalent argument in remotes::install_*(). In particular, this can be set to fields like Config/Needs/dev to tell renv to use custom DESCRIPTION fields for dependency resolution in installation. - Fixed an issue where the function variant of the renv.auth option was not resolved correctly. (#667) - renv::install() now supports remotes with a trailing slash -- such slashes are now removed. (#1135) - Integration with the RStudio (Posit) Package Manager is now disabled by default on aarch64 Linux instances. - The RENV_CACHE_MODE environment variable can now also be used to adjust the permissions set on downloaded package tarballs / binaries. (#988) - Fixed an issue where fields of the form Remotes.1 could enter lockfile records for older versions of R. (#736) - Fixed the performance of renv::update() in cases where integration with MRAN is enabled. - Fixed an issue where package installation using pak could fail in some cases. - renv_file_find() can now scan up to the root directory in Docker containers. (#1115) - renv no longer uses the R temporary directory on Windows for the sandbox. The sandbox directory can be customized via the RENV_PATHS_SANDBOX environment variable if required. (#835) - renv now reports the elapsed time when installing packages. (#1104) - For projects using "explicit" snapshots, renv now reports if a package is required by the project, but the package is not currently installed. (#949) - Fixed an issue where renv::snapshot() could fail to detect when no changes had been made to the lockfile. - Fixed an issue where renv could emit JSON lockfiles which could not be parsed by external JSON readers. (#1102) - renv now marks the sandbox as non-writable, which should hopefully alleviate issues where attempts to update installed packages would inadvertently install the updated package into the sandbox. (#1090) - renv::use() gains the sandbox argument, which allows one to control whether the system library is sandboxed after a call to renv::use(). (#1083) - The path to the Conda environment.yml file created by renv can now be customized via the RENV_PATHS_CONDA_EXPORT environment variable. We recommend setting this within your project-local .Renviron file as appropriate. (#1089) - Fixed an issue where the renv sandbox location did not respect the active renv profile. (#1088) Changes in version 0.16.0 (2022-09-29) - renv now supports installation of packages with remotes of the form =. However, the provided package name is ignored and is instead parsed from the remote itself. (#1064) - renv now passes along the headers produced by the renv.download.headers option when bootstrapping itself in the call to utils::download.file(). (#1084) - renv now reports if renv::snapshot() will change or update the version of R recorded in the lockfile. (#1069) - renv now supports the install.packages.check.source R option, which is used to allow R to query source repositories even if the option options(pkgType = "binary") is set. (#1074) - renv better handles packages containing git submodules when installed from GitHub remotes. (#1075) - renv now handles local sources within the current working directory. (#1079) - The renv sandbox is once again enabled by default. On Unix, the sandbox is now created by default within the project's renv/sandbox library. On Windows, the sandbox is created within the R session's tempdir(). The path to the renv sandbox can be customized via the RENV_PATHS_SANDBOX environment variable if required. - Fixed an issue where renv::status() could report spurious changes when comparing packages installed using pak in some cases. (#1070) - renv::restore() now also ensures the project activate script is updated after a successful restore. (#1066) - Fixed an issue where renv could attempt to install a package from the repository archives even when type = "binary" was set. (#1046) - Fixed an issue where package installation could fail when the R session is configured to use multiple repositories, some of which do not provide any information on available packages for certain binary arms of the repository. (#1045) - renv now uses jsonlite for reading lockfiles when loaded. This should help ensure useful errors are provided for manually-edited lockfiles which contain a JSON parsing error. If the jsonlite package is not loaded, renv will fall back to its own internal JSON parser. (#1027) - Fixed an issue that would cause renv to fail to source the user ~/.Rprofile if it attempted to register global calling handlers, e.g. as prompt::set_prompt() does. (#1036) - (Linux only) renv now resets ACLs on packages copied to the cache, to avoid persisting default ACLs that might have been inherited on packages installed into a local project library. If desired, this behavior can be disabled by setting the RENV_CACHE_ACLS environment variable to FALSE. If you need finer control over ACLs set on packages moved into the cache, consider defining a custom callback via the renv.cache.callback R option. (#1025) - Fixed an issue where .gitignore inclusion rules for sub-directories were not parsed correctly by renv for dependency discovery. (#403) - Fixed an issue where renv could report spurious diffs within renv::status() when comparing package records installed from pak versus the default R package installer. (#998) - Fixed an issue where renv::use_python() could cause the Requirements field for packages in the lockfile to be unintentionally dropped. (#974) - The R option renv.cache.callback can now be set, to run a user-defined callback after a package has been copied into the cache. This can be useful if you'd like to take some action on the cached package's contents after the package has been moved into the cache. - (Unix only) The RENV_CACHE_MODE environment variable can now be used to change the access permissions of packages copied into the cache. When set, after a package is copied into the cache, renv will use chmod -Rf to try and change the permissions of the cache entry to the requested permissions. - (Unix only) The RENV_CACHE_USER environment variable can now be used to change the ownership of folders copied into the cache. When set, after a package is copied into the cache, renv will use chown -Rf to try and change the ownership of that cache entry to the requested user account. - Fixed an issue where repositories containing multiple packages in sub-directories could fail to install. (#1016) Changes in version 0.15.5 (2022-05-26) - Fixed an issue where indexing of packages in the package cellar could be slow. (#1014) - Fixed an issue where installation of packages from Bioconductor's binary Linux package repositories could fail. (#1013) - renv::restore() now supports restoration of packages installed from R-Forge. (#671) - Fixed an issue where renv::init(bioconductor = TRUE) would not update the version of Bioconductor used if a project setting had already been set. - It is now possible to "update" an existing lockfile by using renv::snapshot(update = TRUE). When set, any records existing in the old lockfile, but not the new lockfile, will be preserved. (#727) - Fixed an issue where renv could fail to parse Git remotes for users whose username contains a number. (#1004) - renv no longer infers a dependency on the "quarto" R package in projects containing a _quarto.yml file. (#995) - Fixed an issue where renv could fail to download a package from MRAN if a compatible source package of the same version was available from the active R repositories. (#990) - renv now reports permission errors during download more clearly. (#985) - Fixed an issue where RENV_PATHS_LIBRARY_ROOT_ASIS was not interpreted correctly. (#976) - renv::modify() gains the changes argument, which can be used to modify a project lockfile non-interactively. - renv::clean() now returns the project directory, as documented. (#922) - Fixed an issue where renv could fail to parse embedded YAML chunk options in R Markdown documents. (#963) - renv now sets default placeholder names for the repos R option, for any repository URLs which happen to be unnamed. (#964) - Fixed an issue where renv didn't respect the PATH ordering when discovering Python installations via renv_python_discover(). (#961) - Fixed an issue where renv could fail to install packages containing multibyte unicode characters in their DESCRIPTION file. (#956) - Fixed detection of Rtools 4.2 (#1002) Changes in version 0.15.4 (2022-03-02) - Fixed an issue where package installation could fail when referencing the cache via a tilde-aliased path, e.g. ~/.local/share/renv. (#953) Changes in version 0.15.3 (2022-02-28) - A variety of fixes for R CMD check. - renv gains an experimental function, renv::autoload(), to be used as a helper for automatically loading a project for R processes launched within a sub-directory of that project. See ?renv::autoload for more details. - renv will now print a warning message when attempting to read a lockfile containing merge conflict markers (as from e.g. a git merge). (#945) - Fixed an issue where renv::install() could install into the wrong library path on Windows, if the R installation had a site-wide profile that mutated the library paths. (#941) - Fixed an issue where renv::install() would fail to find a package within the cache when using an abbreviated commit hash for installation. (#943) - Fixed an issue where renv's automatic snapshot was not run after calls to renv::install() in some cases. (#939) - Fixed an issue where renv would incorrectly copy a package from the cache, if the cached version of the package and the requested version of the package had the same package version, even if they were retrieved from different sources. (#938) - The path to an renv tarball can now be set via the environment variable RENV_BOOTSTRAP_TARBALL, to be used to help renv bootstrap from local sources. This can either be the path to a directory containing renv source tarballs, or the path to the tarball itself. - Fixed an issue where the R site library would not be appropriately masked for resumed RStudio sessions. (#936) Changes in version 0.15.2 (2022-01-24) - Fixed issues encountered in R CMD check. Changes in version 0.15.1 (2022-01-13) - Fixed an issue where renv inadvertently inserted extra newlines into a DESCRIPTION file when adding Remotes fields after install. (#914) - Fixed an issue where packages installed from a remote sub-directory would fail to install when later re-installed from the cache. (#913) - renv now recognizes YAML chunk options of the form #| key: value when used in R Markdown documents. (#912) - Fixed an issue where the R site library was visible in renv projects with the system library sandbox disabled. - Fixed an issue where renv could update the wrong .gitignore in R processes launched by callr (e.g. in devtools::install). (#910) - Fixed an issue where renv could fail to read mis-encoded DESCRIPTION files. (#908) - Fixed an issue where config$cache.symlinks() would report NULL when unset. (#906) Changes in version 0.15.0 (2022-01-04) - The development branch for renv has moved from master to main. - renv package records in the lockfile now include a Requirements entry, which gives a list of R packages this package depends on in some way. This is primarily for internal use by the pak package. - Fixed an issue where packages containing DESCRIPTION files using a latin1 encoding would not be read correctly by renv. - Fixed an issue that could cause renv::dependencies() to fail when a malformed DESCRIPTION file was encountered. (#892) - The path to the project-local renv folder can now be configured via the RENV_PATHS_RENV environment variable. This can be useful if you'd prefer to store your project's renv resources within an alternate location in the project. (#472) - renv now uses an external library by default for R package projects, with the library located within tools::R_user_dir("renv", "cache"). This directory can be configured via the RENV_PATHS_LIBRARY_ROOT environment variable if desired. See vignette("packages", package = "renv") for more details. (#384) - renv now uses the repositories as defined within the project lockfile (if any) when attempting to bootstrap itself in a project. (#820) - The renv sandbox is now disabled by default -- see #614 for more details. - renv gains the function repair(), to be used to attempt to repair the project library when links into the global package cache appear to be broken. (#378) - Fixed an issue where the staging library used during install could fail to inherit the same directory permissions as the target library itself. (#331) - Fixed an regression which caused renv::history() to fail. (#886) - renv gains experimental support for the pak package. Set RENV_CONFIG_PAK_ENABLED = TRUE in an appropriate .Renviron file to enable pak integration. When enabled, calls to renv::install() will use pak to download and install packages. - renv::init() gains the bioconductor argument, to be used to initialize a project with a particular Bioconductor release. You can also use renv::init(bioconductor = TRUE) to initialize with the latest-available release for the version of R being used. - Project settings can now be overridden by setting an R option of the same name. For example, one could force a project to use Bioconductor 3.14 by setting options(renv.settings.bioconductor.version = "3.14") within the project .Rprofile (or similar startup R profile). - The ad-hoc package repository called "local sources" has been renamed to the "package cellar". In addition, the path to the cellar is now controlled by the RENV_PATHS_CELLAR environment variable, rather than RENV_PATHS_LOCAL. This change was made to reduce confusion between "local sources" of packages located somewhere on the filesystem, as opposed to packages explicitly placed in this ad-hoc repository. RENV_PATHS_LOCAL remains supported for backwards compatibility. - The RENV_PATHS_CELLAR environment variable can now be set to multiple paths. Use ; as a separator between paths; for example, RENV_PATHS_LOCAL=/path/to/sources/v1;/path/to/sources/v2. (#550) - Packages installed via e.g. renv::install("./path/to/package") will now retain the relative path to that package within the lockfile. (#873) - Fixed an issue where invalid config option values were not properly reported. (#773) - renv now supports restoration of packages installed via one of the r-universe repositories. - renv gains the bioconductor.version project setting, used to freeze the version of Bioconductor used in a particular project. When set, this will override any version that might be selected via the BiocManager package. (#864) - renv now infers that parameterized R Markdown documents have a dependency on the shiny package. In addition, R code included within the params: list will be parsed for dependencies. (#859) - renv now ignores hidden directories during dependency discovery by default. If you want to force a particular hidden directory to be included for discovery, you can use a .renvignore file with an explicit inclusion criteria; e.g. !.hidden/. - renv now supports the *release remotes specifier for GitHub repositories, for requesting installation of the latest declared release of a package from GitHub. (#792) - renv now handles packages stored within the sub-directory of a Git repository better. (#793) - Fixed an issue where renv::history() would fail to resolve the correct lockfile path if the working directory was changed. (#834) - Refined dependency discovery within glue::glue() expressions. - renv now parses packages referenced via the base_format field within an R Markdown document's YAML header. (#854) - Fixed an issue where renv would fail to produce the appropriate binary repository URL for RSPM repositories built using Red Hat Enterprise Linux. - Fixed an issue where renv::snapshot() could cause the environment name and / or path associated with a Python environment to be omitted from the lockfile. (#843) - Fixed an issue where renv::restore() could fail to restore packages which referred to their source via an explicit path in the Source field. (#849) - renv no longer requires explicit user consent when used within Singularity containers. (#824, @kiwiroy) - renv now respects the R_PROFILE_USER environment variable, in addition to the user.profile configuration option, when considering whether the user .Rprofile should be examined for package dependencies. (#821) - The renv auto-loader can now be disabled by setting the environment variable RENV_AUTOLOADER_ENABLED = FALSE. This can be useful if you'd like to explicitly control how a project is loaded, e.g. by calling renv::load() explicitly. - renv::snapshot() gains the repos argument, to be used to force the lockfile to be generated with the requested set of R repositories encoded within. - renv now validates that the repos option, as used by renv::snapshot(), is a named vector. (#811) - Fixed an issue where renv's shims, e.g. for install.packages(), failed to pass along other optional arguments to the shimmed function correctly. (#808) Changes in version 0.14.0 (2021-07-21) - renv now uses tools::R_user_dir() to resolve the default path to the global renv cache, for R installations 4.0.0 or greater. If the renv cache still exists at the old location, that location will be used instead. This change should only affect brand new installations of renv on newer versions of R. - Fixed an issue with renv tests failing with R (>= 4.2.0). - renv will no longer auto-activate itself within R processes launched via R CMD INSTALL. This behavior can be controlled if necessary via the RENV_ACTIVATE_PROJECT environment variable -- set this to TRUE to force the project in the current working directory to be activated, and FALSE to suppress the renv auto-loader altogether. (#804) - Added dependency discovery support for R utility scripts identified by a shebang line instead of a file extension. (#801; @klmr) - Fixed an issue where renv::install("", type = "both") would attempt to install the package from sources, even if the current system did not have the requisite build tools available. (#800) - renv::scaffold() gains the settings argument, used to create a project scaffolding with some default project options set. (#791) - renv now determines the default branch name for packages installed from GitLab without an explicit reference supplied; for example, as in renv::install("gitlab::/"). (#795) - renv now infers a dependency on the bslib package for R Markdown documents using custom themes. (#790) - renv will now prompt users to activate the current project when calling renv::snapshot() or renv::restore() from within a project that has not yet been activated. (#777) - renv now has improved handling for git remotes. (#776; @matthewstrasiotto) - renv::restore() gains the exclude argument, used to exclude a subset of packages during restore. (#746) - Fixed an issue where renv::dependencies() could fail to parse dependencies in calls to glue::glue() that used custom open and close delimiters. (#772) - Fixed an issue where renv::init(bare = TRUE) would unnecessarily scour the project for R package dependencies. (#771) - Fixed an issue where renv could fail to install packages located on GitHub within sub-subdirectories. (#759) - renv gains the function embed(), used to embed a lockfile with an R document (via a call to renv::use()). - renv::use() gains the lockfile argument. This can be useful for R Markdown documents and scripts that you'd like to run with the context for a particular lockfile applied. - renv::rebuild() gains the type parameter, for parity with renv::install(). - Fixed an issue where renv could incorrectly copy an incompatible version of an R package from a site library into the project library during install. (#750) - renv::dependencies() can now parse (some) usages of parsnip::set_engine(). - renv::dependencies() now has improved handling for piped expressions. - Fixed crash during dependency discovery when encountering box::use() declarations that use a trailing comma, and no longer treat . and .. as package names. (@klmr) - renv::clean() no longer attempts to clean the system library by default. (#737) - Fixed an issue where install.packages() could fail when used within an renv project to install a package from local sources. (#724) - The chunk renv.ignore parameter can now be set to FALSE. When set, renv will explicitly parse dependencies from chunks even if other chunk metadata would have told renv to ignore it (e.g. because it was marked with eval=F). (#722) - Fixed an issue where chunks with the chunk option eval=F would still be scanned for dependencies. (#421) - In interactive sessions, renv::use_python() will now prompt for the version of Python to be used. Python installations in a set of common locations will be searched. See ?renv::use_python() for more details. - Fixed an issue where renv would fail to retrieve packages from the archives if the lockfile entry was tagged with a RemoteSha field. - renv::restore() will now prefer restoring packages from the repository named in the Repository field if available. The name is matched against the repository names set in the R repos option, or as encoded in the renv lockfile. (#701) - renv now supports the discovery of dependencies within interpolated strings as used by the glue package. - RENV_CONFIG_EXTERNAL_LIBRARIES can now be configured to use multiple library paths, delimited by either :, ;, or ,. (#700) - renv gains the configuration option, exported.functions, controlling which functions and objects are placed on the R search path when renv is attached (e.g. via library(renv)). Set this to NULL to instruct renv not to place any functions on the search path. This helps avoid issues with, for example, renv::load() masking base::load(). When set, all usages of renv APIs must be explicitly qualified with the renv:: prefix. Changes in version 0.13.2 (2021-03-30) - renv::install("user/repo/subdir with spaces") now works as expected. (#694) - renv can now parse package dependencies declared by targets::tar_option_set(packages = <...>). (#698) - renv no longer performs an automatic snapshot following a user-canceled renv action -- for example, if renv::restore() is canceled, the next automatic snapshot will be suppressed. (#697) - Added the vcs.ignore.local project setting, to control whether the project's renv/local folder is added to renv's VCS ignore file (e.g. renv/.gitignore). (#696) - Fixed an issue where renv's bootstrapping code could inadvertently bootstrap with the wrong version of renv, if the source and binary versions of renv on CRAN were not in sync. (#695) - Fixed an issue where renv::status() could provide a misleading message for packages which are recorded in the lockfile, but not explicitly required by the project. (#684) Changes in version 0.13.1 (2021-03-18) - renv::clean() gains the actions argument, allowing the caller to control which specific actions are taken during a clean() operation. - renv no longer performs an automatic snapshot after a call to renv::status(). (#651) - Fixed an issue where attempts to transform RSPM repository URLs could fail if the copy of R was installed without a local CRAN_mirrors.csv file. - Fixed an issue where renv::init() could fail when passed a relative path to a directory. (#673) - Fixed an issue where renv::dependencies() would miss dependencies in R Markdown YAML headers containing multiple output formats. (#674) - renv::install() now better respects the Remotes field in a project DESCRIPTION file, if available. (#670) - RENV_DOWNLOAD_METHOD is now treated as an alias for RENV_DOWNLOAD_FILE_METHOD. - Fixed an issue where renv would fail to load if the ~/.Rprofile existed but was an empty file. Changes in version 0.13.0 (2021-02-24) - renv::snapshot() no longer creates an renv/activate.R file in the project folder if one does not already exist. (#655) - The renv::hydrate() function gains the update argument, used to control whether renv::hydrate() chooses to update packages when invoked. When set to TRUE, if the version of a package installed in the source library is newer than that of the project library, then renv will copy that version of the package into the project library. (#647) - The RENV_PATHS_PREFIX_AUTO environment variable can now be set to instruct renv to include an OS-specific component as part of the library and cache paths. This is primarily useful for Linux systems, where one might want to share a global cache with multiple different operating systems. The path component is constructed from the ID and VERSION_CODENAME / VERSION_ID components of the system's /etc/os-release file. - renv's dependency discovery machinery now has preliminary support for packages imported via the box package; e.g. box::use(dplyr[...]). - Multiple cache paths can now be specified, with each cache path separated by either a ; or :. This can be useful when you'd like to use multiple package caches within the same project; for example, because you'd like to share a read-only cache with a set of projects. (#653, @vandenman) - Fixed an issue where renv could fail to discover dependencies in directories with very large .gitignore or .renvignore files. (#652) - renv gains a new configuration option, install.shortcuts. When enabled, if renv discovers that a package to be installed is already available in the user or site libraries, renv will instead install a copy of that package into the project library. (#636) - renv gains a new function, renv::use(), used to download, install, and load a set of packages directly within an R script. renv::use() can make it easier to share a standalone R script, with the packages required to install that script embedded directly in the script. It is inspired in part by the groundhog package. - renv::install(".") can now be used to install a package from sources within the current working directory. (#634) - Fixed an issue where renv::update() could fail if a package installed from GitHub was missing the RemoteHost field in its DESCRIPTION file. (#632) - renv now has support for custom project profiles. Profiles can be used to activate different sets of project libraries + lockfiles for different workflows in a given project. See vignette("profiles", package = "renv") for more details. - Fixed an issue where attempts to initialize an renv project in a path containing non-ASCII characters could fail on Windows. (#629) - Fixed an issue where renv::install("") could fail if renv chose to install the package from MRAN rather than from one of the active package repositories. (#627) - renv again defaults to using the project's renv/staging folder for staged / transactional installs. Use the RENV_PATHS_LIBRARY_STAGING environment variable if more granular control over the staging library path is required. This fixes issues on Windows with creating junction points to the global package cache on Windows. (#584) - renv no longer skips downloading a requested source package if an existing cached download exists and appears to be valid. This should help avoid issues when attempting to install a package whose associated tarball has changed remotely. (#504) - During bootstrap, renv will now attempt to download and unpack a binary copy of renv if available from the specified package repositories. - renv now always attempts to bootstrap itself from the R Project's Cloud package repository, as a fallback in case no other repository is available. (#613) - renv::rebuild() now uses the latest-available version of the requested package(s) if those packages are not currently installed. - Fixed an issue where renv::restore(library = "/path/to/lib") would fail to restore packages, if those packages were already installed on the active library paths (as reported by .libPaths()). (#612) - renv::snapshot() gains the reprex argument. Set this to TRUE if you'd like to embed an renv lockfile as part of a reproducible example, as generated by the reprex package. - renv::status() now reports packages that are referenced in a project's scripts, but are neither installed in the project library nor recorded in the lockfile. (#588) - Fixed an issue where package installation could fail if the configure.vars option was set to be a named character, rather than a named list. (#609) Changes in version 0.12.5 (2021-01-09) - Fixed an issue where renv would fail to bootstrap. (#608) Changes in version 0.12.4 (2021-01-07) - renv now invalidates the available packages cache if the https_proxy environment variable changes. (#579) - renv::install() will now install the latest-available version of that package from local sources, if that package is available and newer than any package available on the active package repositories. (#591) - The configuration option startup.quiet has been added, allowing one to control whether renv will display the typical startup banner when a project is loaded. - renv now better handles being unloaded and reloaded within the same R session. In particular, warnings related to a corrupted lazy-load database should no longer occur. (#600) - renv no longer reinstalls packages that are already installed and up-to-date in bare calls to renv::install(). - renv now uses the R temporary directory for staging, when performing transactional restores / installs. If you need to control the path used for staged installs, please set the RENV_PATHS_LIBRARY_STAGING environment variable. - The install.verbose configuration option has been added. When set to TRUE, renv will stream the output generated by R when performing a package installation. This can be helpful in some cases when diagnosing a failed restore / install. (#330) - Fixed an issue where renv could fail to parse R Markdown chunk headers with an empty label. (#598) - The environment variable RENV_PATHS_LIBRARY_ROOT_ASIS can now be used to control whether the project name should be used as-is when forming the library path within the RENV_PATHS_LIBRARY_ROOT folder. Set this to "TRUE" if you would prefer renv did not append a unique identifier to your project's library path. (#593) - Fixed an issue where GitLab references were not URL encoded. (#590) - renv no longer emits warnings when parsing multi-mode R files that make use of re-used knitr chunks (those specified as <