Skip to content

Releases: rstudio/renv

renv 1.0.11

12 Oct 18:18
0638171
Compare
Choose a tag to compare
  • Fixed an issue where headers were not properly passed to available.packages()
    during renv 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 to module() 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 the RENV_TEMPDIR_NOEXEC_CHECK=FALSE environment
    variable.

renv 1.0.10

05 Oct 05:50
0687c78
Compare
Choose a tag to compare
  • Fixed a performance regression in renv::dependencies(). (#1999)

  • Fixed an issue where renv tests could fail if the parallel package was
    loaded during test execution.

  • renv now determines a package repository's type through the HTTP headers
    provided when accessing src/contrib/PACKAGES. This is mainly relevant
    when detecting Nexus and Artifactory repositories.

renv 1.0.9

23 Sep 22:35
ed605b4
Compare
Choose a tag to compare
  • Fixed an issue where repository URLs were inappropriately transformed into
    binary repository URLs on Linux. (#1991)

  • Fixed an issue where code following source("renv/activate.R") in the project
    .Rprofile was not invoked for projects using RStudio. (#1990)

renv 1.0.8

20 Sep 17:24
28d1067
Compare
Choose a tag to compare
  • renv now infers a dependency on the ragg package when the ragg_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
    a manifest.json file (typical for application bundles published to Posit Connect).
    (#1980, @toph-allen)

  • renv::install() now errs if an incompatible type argument is provided.

  • renv::checkout() now also checks out the version of renv 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's DESCRIPTION file.
    (#1970)

  • Fixed an issue where renv::checkout() omitted some fields from lockfile
    records when using actions = c("snapshot", "restore"). (#1969)

  • renv gains the function renv::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 preserves Remote 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
    when options(renv.config.autoloader.enabled = FALSE) was set. (#1959)

  • renv now emits clickable hyperlinks for runnable code snippets and help,
    for front-ends which support the ide:run and ide: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 the transactional argument, which can be
    used to control whether renv 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 the xml2 package for projects
    using the testthat::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 the type and rebuild
    arguments to pak when options(renv.config.pak.enabled = TRUE)
    is set. (#1924)

  • renv now infers a dependency on the svglite package if it detects
    calls of the form ggsave(filename = "path.svg"). (#1930)

  • renv now supports setting of GitHub authentication credentials via
    any of GITHUB_TOKEN, GITHUB_PAT, and GH_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
    via pak::pkg_install(), to help prevent spurious diffs being produced
    via renv::status(). (#1920)

  • renv::install() now respects the prompt parameter when pak is enabled,
    as via options(renv.config.pak.enabled = TRUE). (#1907)

  • Fixed an issue with renv's pak integration where renv 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 as renv::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 your renv.lock
    against a default or custom schema. (#1889)

renv 1.0.7

12 Apr 04:57
Compare
Choose a tag to compare
  • Fixed an issue where renv's activate script failed to report version
    conflict errors when starting up. (#1874)

renv 1.0.6

11 Apr 05:36
Compare
Choose a tag to compare
  • 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 the pak
    package, e.g. via pak::pkg_install("cran::<package>").

  • Fixed an issue where renv could incorrectly prompt the user to record
    a version of renv installed from GitHub in some cases. (#1857)

  • renv::load() now delegates to base::load() when it detects that the
    call was likely intended for base::load(), but renv::load() was used
    instead (e.g. because base::load() was masked by renv::load()).

  • renv::update() gains the lock argument, which can be used to
    instruct renv 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 calling renv::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 setting RENV_PATHS_PREFIX_AUTO = FALSE in an appropriate
    R startup file. (#1211)

renv 1.0.5

29 Feb 05:20
0e780cb
Compare
Choose a tag to compare
  • 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 in renv::diagnostics().

  • Fixed an issue where renv::install(lock = TRUE) produced lockfiles
    containing records with extraneous data. (#1828)

renv 1.0.4

21 Feb 22:13
38a58fe
Compare
Choose a tag to compare
  • renv::install() gains the lock argument. When TRUE, 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,
    but from(pkg) is not. (#1815)

  • renv::load() gains the profile argument, allowing one to
    explicitly load a specific profile associated with an renv project.
    See vignette("profiles", package = "renv") or
    https://rstudio.github.io/renv/articles/profiles.html
    for more details.

  • renv::dependencies() no longer includes R dependency versions
    declared from a DESCRIPTION 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 the Remotes: 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
    using curl 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 like renv::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's DESCRIPTION
    file, if any.

  • Calling renv::activate() without explicitly providing the profile argument
    now preserves the current profile, if any. Use renv::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
    cause renv 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

20 Sep 15:23
e49d9be
Compare
Choose a tag to compare
  • 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 the exclude 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 in renv::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() and renv::status() gain the dev 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

15 Aug 15:57
fafea24
Compare
Choose a tag to compare
  • 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.