Releases: rstudio/renv
renv 1.1.6
-
A new setting,
snapshot.dev, has been added to control whether development
dependencies are included by default when callingrenv::snapshot()or
renv::status(). This setting defaults toFALSE. (#2190) -
RENV_CONFIG_REPOS_OVERRIDEnow supports multiple named repositories using
the syntaxNAME1=URL1;NAME2=URL2. Single repository URLs continue to be
supported. -
Fixed an issue where
renv::sysreqs()could fail on operating systems
which don't declare a VERSION_ID in/etc/os-release. (#2197) -
renv::dependencies()now detects packages used in e.g.
data(<dataset>, package = <package>). (#2181) -
Fixed an issue where cache callbacks (e.g. those run by setting
RENV_CACHE_USERandRENV_CACHE_MODE, or via therenv.cache.callback
option) were not run afterrenv::hydrate(). (#2179) -
renv::embed()now errs if one or more of the package dependencies to
be included within a file are not available. (#2178) -
renvgains the functionrenv::vulns(), which can be used to query
vulnerability information from a Posit Package Manager instance.
This information can be queried either for a specific set of packages,
or for all packages defined in a lockfile. -
renvnow also supportsRENV_LOCKFILE_VERSION = 1as an alternate
way to request the older, compact lockfiles. (#2175) -
The version check in
renv::status()can now be disabled by setting
options(renv.status.check_version = FALSE). (#2167) -
Fixed an issue where the package manager URL was computed incorrectly
with RHEL 10. -
renvnow prints the version numbers of the packages it downloads during
install and restore. (#1925) -
The
renvconfiguration optionbioconductor.initcan now be used to
control the default argument passed for thebioconductorparameter in
calls torenv::init(). (#2128) -
renvnow supports bootstrapping itself from the global package
cache. (#1799) -
renvnow prefers appending, rather than prepending, Bioconductor
repositories to the current set of repositories when installing
packages. This implies that if you're using a repository that also
provides Bioconductor packages, this repository will be preferred
as opposed to the "default" Bioconductor repositories. (#2128) -
renv::restore()now ignores theRepositoryfield on lockfile entries
when therepos.overrideconfiguration option is set. (#2127) -
renv::restore()now transforms binary repository URLs appropriately,
for installed packages which were recorded as installed from an
alternate binary repository URL. (#2127)
renv 1.1.5
-
Fixed an issue where
renv::dependencies()could fail for chunks which
had alabelwhich was not a length-one character vector. (#2144) -
Fixed an issue where
file.rename()could fail when unpacking a
package during installation in certain Windows environments. (#2156) -
renv's dependency discovery now supports usages ofbase::use(). (#2130) -
Fixed an issue where
renvcould fail to parse remote references
containing an@character. (#2135) -
Fixed an issue where
renv::sysreqs(distro = <...>)could fail when
passed an alternate distribution without a version specifier. (#2105) -
Fixed an issue where multimode R documents containing chunk headers
which did not parse to an R list could cause dependency inference
to fail. (#2110)
renv 1.1.4
-
Fixed an issue where
renvcould erroneously record packages installed
from Posit Package Manager snapshots as being installed from CRAN. (#2104) -
renvnow only checks for archived packages during installation when
options(renv.install.allowArchivedPackages = TRUE)is set. This fixes
an issue whererenvcould erroneously discover that Rcpp 1.3 was available
when using the Posit Package Manager repository. -
Fixed an issue where
renv::dependencies()could fail with an
unhelpful error message if the scanned document contained a
YAML header whose contents was not a map. (#2117)
renv 1.1.3
-
Fixed an issue where
renv::hydrate()could fail to install packages
discovered in the user library duringrenv::init(). (#2109) -
renv::update()now only updates the packages installed in the project
library by default.renv::update(all = TRUE)can be used to also
check if packages installed in the default library are out-of-date, and
install updated copies into the project library. (#2108) -
Fixed an issue where package installation could fail on Arch Linux with the
error message "don't know how to check sysreqs on this system". (#2107) -
renvnow supports profile-specific comments within.gitignoreand
.renvignorefiles. These are comments of the form#| <code>, where
<code>is R code which should indicate if the.renvignorerules should
apply. Typically, this should be of the form#| profile == "extra", or
#| profile %in% c("extra", "other"). Note that only a small subset of
base R functions are available for evaluation in this context. Note that
the first section in a.renvignoreimplicitly applies to all profiles --
if you want to limit it to just the default profile, you can use
#| profile == "default"for the first line. (#1662) -
The environment variable
RENV_PATHS_VERSIONcan now be used to substitute
the R version component normally used in library / cache paths. The provided
path can include placeholders like%Vfor the full R version including
the patch level, and%vfor the R version without the patch level. Defaults
toR-%vwhen unset. (#1687) -
renv::install()gains thetransactionalargument, for parity with
renv::restore(). (#1109)
renv 1.1.2
-
renvgains thesysreqs()function, which can be used to query the system
packages required by a set of R packages. Functionality is currently available
for Debian-based distributions, as well as Red Hat distributions. -
On Linux,
renvnow uses the database from
https://github.com/rstudio/r-system-requirements when determining if
an R package's required system libraries are installed, and notifies
the user which packages (if any) are missing during install / restore. -
Fixed an issue where
renvcould fail to retrieve credentials registered
for 'github.com' when querying URLs at 'api.github.com'. -
Fixed an issue where
renvcould stall when loading a project and validating
that the configured version of Bioconductor is compatible with the version
of R currently in use. -
renv::snapshot()no longer fails to generate a new lockfile if the project
contains a lockfile which could not be read or parsed. -
Fixed an issue where lockfiles containing unicode characters were not
correctly written or read with versions of R (< 4.2.0) on Windows. (#2091)
renv 1.1.1
-
Fixed an issue where very long lockfiles could be truncated on write. (#2089)
-
Fixed an issue where
renvinadvertently made web requests in
tests duringR CMD check.
renv 1.1.0
Major Changes
-
renvnow 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 usingrenvwhich 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
renvsandbox 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.ipynbfiles. (#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_LIBRARIESwas incorrectly
split when using Windows paths. (#2069) -
Fixed an issue where
renvfailed to restore packages installed from
r-universe when the associated lockfile record had noRemoteReffield.
(#2068) -
renvnow 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 initializingrenvwith a specific version of Bioconductor. -
renv::install()gains theincludeparameter, 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'sDESCRIPTIONfile. (#2055) -
Fixed an issue where
renvcould fail to check for updates for packages
installed usingpakwithout 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
renverroneously reported that installed packages were
cached when the cache was not writable. (#2041). -
renvnow supports updating of currently-installed packages viarenv::install()
when configured to usepak. (#2037) -
Fixed an issue where
renvlibrary paths were not properly reset following
a suspend / resume in RStudio Server. (#2036) -
renv::run()gains theargsparameter, which can be used to pass command-line
arguments to a script. (#2015) -
renvnow infers a dependency onrmarkdownandknitrfor 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
renvcould erroneously create a binding called 'object'
in the global environment on startup. (#2017)
renv 1.0.11
-
Fixed an issue where headers were not properly passed to
available.packages()
duringrenvbootstrap. (#1942) -
renvnow assumes that Artifactory package repositories will use a CRAN-like
layout of packages for packages in the archive. (#1996) -
renvnow includes compiled extensions on Linux + macOS. These
extensions are primarily used to improve the performance of
renv::dependencies()and other static analysis code.
Support for Windows may come in a future release. -
Fixed an issue where
renv::snapshot()could fail if the project
contained a call tomodule()with no arguments. (#2007) -
On Linux,
renvnow emits a message on load if the R temporary directory
is within a folder that has been mounted as 'noexec'. This message can be
suppressed by setting theRENV_TEMPDIR_NOEXEC_CHECK=FALSEenvironment
variable.
renv 1.0.10
-
Fixed a performance regression in
renv::dependencies(). (#1999) -
Fixed an issue where
renvtests could fail if theparallelpackage was
loaded during test execution. -
renvnow determines a package repository's type through the HTTP headers
provided when accessingsrc/contrib/PACKAGES. This is mainly relevant
when detecting Nexus and Artifactory repositories.