Releases: rstudio/renv
renv 1.0.11
-
Fixed an issue where headers were not properly passed to
available.packages()
duringrenv
bootstrap. (#1942) -
renv
now assumes that Artifactory package repositories will use a CRAN-like
layout of packages for packages in the archive. (#1996) -
renv
now 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,
renv
now 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=FALSE
environment
variable.
renv 1.0.10
-
Fixed a performance regression in
renv::dependencies()
. (#1999) -
Fixed an issue where
renv
tests could fail if theparallel
package was
loaded during test execution. -
renv
now 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.
renv 1.0.9
renv 1.0.8
-
renv
now infers a dependency on theragg
package when theragg_png
device
is used in R Markdown / Quarto documents, for documents using the code
knitr::opts_chunk$set(dev = "ragg_png")
. (#1985) -
renv
now automatically generates a lockfile when loading a project containing
amanifest.json
file (typical for application bundles published to Posit Connect).
(#1980, @toph-allen) -
renv::install()
now errs if an incompatibletype
argument is provided. -
renv::checkout()
now also checks out the version ofrenv
available
and associated with the requested snapshot date. (#1966) -
Fixed an issue where
renv::hydrate()
did not hydrate packages which
were also listed as dependencies within a project'sDESCRIPTION
file.
(#1970) -
Fixed an issue where
renv::checkout()
omitted some fields from lockfile
records when usingactions = c("snapshot", "restore")
. (#1969) -
renv
gains the functionrenv::retrieve()
, which can be used to download
packages without installing them. This is primarily useful in CI / CD scenarios,
where you might want to download packages in a single stage before attempting
to install / restore them. (#1965) -
renv
now preservesRemote
fields present on packages installed from
public package repositories (e.g. https://r-universe.dev/). (#1961) -
Fixed an issue where
renv::load()
could fail to load an alternate project
whenoptions(renv.config.autoloader.enabled = FALSE)
was set. (#1959) -
renv
now emits clickable hyperlinks for runnable code snippets and help,
for front-ends which support theide:run
andide:help
ANSI escapes. -
renv::init(bioc = "<version>")
now prompts the user in interactive sessions
when requesting a version of Bioconductor which is not compatible with the
current version of R. (#1943) -
renv::restore()
gains thetransactional
argument, which can be
used to control whetherrenv
will allow successfully-installed
packages remain in the project library even if a package fails
to install during a later step. (#1109) -
renv
now infers a dependency on thexml2
package for projects
using thetestthat::JunitReporter
for tests. (#1936) -
Fixed an issue where
renv::dependencies()
could emit a warning
when attempting to parse chunks using chunk options like
#| eval: c(1, 2)
. (#1906) -
renv::install()
now properly delegates thetype
andrebuild
arguments topak
whenoptions(renv.config.pak.enabled = TRUE)
is set. (#1924) -
renv
now infers a dependency on thesvglite
package if it detects
calls of the formggsave(filename = "path.svg")
. (#1930) -
renv
now supports setting of GitHub authentication credentials via
any ofGITHUB_TOKEN
,GITHUB_PAT
, andGH_TOKEN
. (#1937) -
renv
now also passes any custom headers available to
utils::available.packages()
during bootstrap. (#1942) -
Fixed an issue where
renv
could fail during installation of packages
stored within repository sub-directories, if that repository also
contained a top-level DESCRIPTION file. (#1941) -
renv
now normalizes lockfile entries for Bioconductor packages installed
viapak::pkg_install()
, to help prevent spurious diffs being produced
viarenv::status()
. (#1920) -
renv::install()
now respects theprompt
parameter whenpak
is enabled,
as viaoptions(renv.config.pak.enabled = TRUE)
. (#1907) -
Fixed an issue with
renv
'spak
integration whererenv
could install the
wrong version of a GitHub package during restore if
options(renv.config.pak.enabled = TRUE)
was set. (#1883) -
renv
no longer interacts with the user during autoloading, which coincides
with R startup. If the IDE offers a session init hook (RStudio does),
loading is deferred until startup is complete and interaction is possible.
Otherwise, any suggested renv actions, such asrenv::restore()
, are emitted
as a message for the user to act on. (#1879, #1915). -
Fixed an issue where installation of packages from local sources, as via
install("<package>", repos = NULL, type = "source")
, could fail. (#1880) -
A new function,
renv::lockfile_validate()
, can be used to validate yourrenv.lock
against a default or custom schema. (#1889)
renv 1.0.7
- Fixed an issue where
renv
's activate script failed to report version
conflict errors when starting up. (#1874)
renv 1.0.6
-
Fixed an issue where downloads could fail with curl >= 8.7.1. (#1869)
-
Fixed an issue where
renv::snapshot()
did not properly normalize
package records generated from packages installed using thepak
package, e.g. viapak::pkg_install("cran::<package>")
. -
Fixed an issue where
renv
could incorrectly prompt the user to record
a version ofrenv
installed from GitHub in some cases. (#1857) -
renv::load()
now delegates tobase::load()
when it detects that the
call was likely intended forbase::load()
, butrenv::load()
was used
instead (e.g. becausebase::load()
was masked byrenv::load()
). -
renv::update()
gains thelock
argument, which can be used to
instructrenv
to automatically update the lockfile after the requested
packages have been updated. (#1849) -
Fixed an issue where
renv
could fail to update the project autoloader
after callingrenv::upgrade()
. (#1837) -
Fixed an issue where attempts to install binary packages from older
PPM snapshots could fail. (#1839) -
renv
now uses a platform-specific prefix on Linux for library and
cache paths by default with R (>= 4.4.0). This is equivalent to setting
RENV_PATHS_PREFIX_AUTO = TRUE
. If necessary, this behavior can be
disabled by settingRENV_PATHS_PREFIX_AUTO = FALSE
in an appropriate
R startup file. (#1211)
renv 1.0.5
-
renv
now only writes a.renvignore
file into the cache directory
if the cache appears to be part of the current project. -
renv
now reports missing system libraries as part of its ABI
checks inrenv::diagnostics()
. -
Fixed an issue where
renv::install(lock = TRUE)
produced lockfiles
containing records with extraneous data. (#1828)
renv 1.0.4
-
renv::install()
gains thelock
argument. WhenTRUE
, the project
lockfile will be updated after the requested packages have been
successfully installed. (#1811) -
renv
now supports the use of GitHub Enterprise servers with the
gitcreds
package for authentication credentials. (#1814) -
renv::dependencies()
now treats#| eval: !expr <...>
chunk options
as truthy by default, implying that such chunks are scanned for their
R package dependencies. (#1816) -
renv::dependencies()
now requires usages of the import
package to be namespace-qualified in order to be handled via static
analysis; that is,import::from(<pkg>)
is parsed for dependencies,
butfrom(pkg)
is not. (#1815) -
renv::load()
gains theprofile
argument, allowing one to
explicitly load a specific profile associated with anrenv
project.
Seevignette("profiles", package = "renv")
or
https://rstudio.github.io/renv/articles/profiles.html
for more details. -
renv::dependencies()
no longer includesR
dependency versions
declared from aDESCRIPTION
file in its output. (#1806) -
Fixed an issue where
renv
could fail to infer dependencies from
R Markdown code chunks using engine 'R' (upper-case) rather than
'r' (lower-case). (#1803) -
Fixed an issue where
renv
did not report out-of-sync packages when
one or more packages used in the project were not installed. (#1788) -
Fixed an issue where
renv
could over-aggressively activate P3M
repositories when initializing a project. (#1782) -
renv::status()
now notifies the user if the version of R recorded in
the lockfile does not match the version of R currently in use. (#1779) -
Fixed an issue where packages could appear multiple times in the lockfile,
if that package was installed into multiple library paths. (#1781) -
Installation of historical binaries of packages is once again enabled,
now using the Posit Public Package Manager (P3M)
service instead of Microsoft's (now defunct) MRAN service. -
renv::init()
now respects theRemotes:
field declared in a project's
DESCRIPTION
file, if any. (#1522) -
renv::embed()
now supports Quarto Markdown (.qmd
) files. (#1700) -
renv now sets the
R_INSTALL_TAR
environment variable to match the default
tar
executable (if any) when installing packages. (#1724) -
renv now uses
--ssl-revoke-best-effort
by default when downloading files
usingcurl
on Windows. (#1739) -
Fixed an issue where
renv::install()
could fail to detect incompatible
recursive package dependencies. (#1671) -
renv::install()
now records remote information for packages installed from
CRAN-like repositories, and uses that information when generating a lockfile
and restoring those packages. This helps ensure that packages installed within
an renv project via calls likerenv::install("<pkg>", repos = "<repos>")
can
still be successfully restored in future sessions. (#1765) -
renv::install()
now lazily resolves project remotes. (#1755) -
renv::init()
now respects Remotes declared within a project'sDESCRIPTION
file, if any. -
Calling
renv::activate()
without explicitly providing theprofile
argument
now preserves the current profile, if any. Userenv::activate(profile = "default")
if you'd like to re-activate a project using the default profile. (#1217) -
Fixed an issue where
renv
would try to prompt for the installation of
BiocManager
when activating a project using Bioconductor. (#1754) -
Fixed an issue where directories containing a large number of files could
causerenv
to fail to activate a project. (#1733) -
Expanded the set of Linux distributions detected for automatic transformation
of Posit Package Manager URLs to install binary packages.renv
now correctly
detects Red Hat Enterprise Linux 9, Rocky Linux 8 and 9, SLES 15 SP4 and SP5,
Debian 11 and 12, AlmaLinux 8 and 9, and Amazon Linux 2. (#1720, #1721)
renv 1.0.3
-
Fixed an issue where
renv
could warn the project appeared to be out-of-sync
when using packages installed without an explicit source recorded. (#1683) -
renv::install()
gains theexclude
argument, which can be useful when
installing a subset of project dependencies. -
Fixed an issue where PPM repositories were not appropriately transformed
into the correct binary repository inrenv::restore()
when using pak. -
renv::init()
no longer prompts the user for the intended action for
projects containing a library with only renv installed. (#1668) -
Fixed an issue where non-interactive usages of
renv::init()
could fail
with projects containing a DESCRIPTION file. (#1663) -
Fixed an issue that could cause code within a project
.Rprofile
to execute
before the project had been loaded in RStudio. (#1650) -
renv::snapshot()
andrenv::status()
gain thedev
argument. This
can be used when you'd like to capture package dependencies from
the Suggests field of your package's DESCRIPTION file. (#1019)
renv 1.0.2
-
renv now parses package
NAMESPACE
files for imported dependencies. (#1637) -
renv no longer locks the sandbox by default.
-
Fixed an issue where renv used the wrong library paths when attempting
to activate the watchdog. This could cause a 10 second delay when activating
the sandbox.