Major Changes
-
renv
now includes additional package DESCRIPTION fields in the lockfile.
This can be useful for validating the provenance of packages recorded in the
lockfile, and also for applications usingrenv
which would like to
recompute the hash used for package caching from the lockfile itself.If needed, old-style lockfiles can be generated by setting the option
options(renv.lockfile.version = 1)
. Note that this version ofrenv
remains compatible both with the older (minimal) lockfiles, as well
as with the newer lockfiles in this release. (#2057)
Other Fixes
-
The
renv
sandbox is now unlocked on exit after a call torenv::use()
.
This should alleviate issues seen where R's attempts to clean up the
temporary directory could fail due to inadequate permissions on the
sandbox directory. (#2076) -
Fixed an issue where
renv::restore()
did not respect the named repository
within the lockfile when installing packages from the archives of the
configured package repositories. (#2081) -
Fixed an issue where
renv::snapshot()
could fail if invoked within
a project containing empty or invalid.ipynb
files. (#2073) -
Fixed an issue where R package installation could fail if the project
depended on a package whose current version available from the configured
package repositories required on a newer version of R than what was currently
installed, even if that package need not be updated. (#2071) -
Fixed an issue where
RENV_CONFIG_EXTERNAL_LIBRARIES
was incorrectly
split when using Windows paths. (#2069) -
Fixed an issue where
renv
failed to restore packages installed from
r-universe when the associated lockfile record had noRemoteRef
field.
(#2068) -
renv
now detects dependencies from usages ofutils::citation()
. (#2047) -
Fixed an issue where packages installed from r-universe via an explicit
URL remote could not be restored. (#2060) -
Fixed an issue where the repositories provided to
renv::init()
were ignored
when also initializingrenv
with a specific version of Bioconductor. -
renv::install()
gains theinclude
parameter, which can be useful when
you'd like to install a subset of dependencies within a project while also
respecting any declared remotes in that project'sDESCRIPTION
file. (#2055) -
Fixed an issue where
renv
could fail to check for updates for packages
installed usingpak
without an explicit branch specified. (#2040) -
renv::use()
no longer re-installs packages which are already installed
and compatible with the requested packages. (#2044) -
Fixed an issue where
renv::init()
could fail when using named remotes
in a DESCRIPTION file'sRemotes:
field. (#2055) -
Fixed an issue where ignore rules of the form
!*.*
were not parsed
and handled correctly during dependency discovery. (#2052) -
Fixed an issue where
renv
erroneously reported that installed packages were
cached when the cache was not writable. (#2041). -
renv
now supports updating of currently-installed packages viarenv::install()
when configured to usepak
. (#2037) -
Fixed an issue where
renv
library paths were not properly reset following
a suspend / resume in RStudio Server. (#2036) -
renv::run()
gains theargs
parameter, which can be used to pass command-line
arguments to a script. (#2015) -
renv
now infers a dependency onrmarkdown
andknitr
for R scripts which
include YAML front-matter. (#2023) -
The performance of
renv
's built-in JSON reader has been improved. (#2021) -
Fixed an issue where
renv
could erroneously create a binding called 'object'
in the global environment on startup. (#2017)