renv
Project-local dependency management for R that makes environments reproducible
renv 1.2 made installs parallel, its biggest performance change in years.
◆Recent moves
- 9d ago
renv 1.2.4 fixes self-hosted GitLab remotes under pak
Self-hosted GitLab instances now work with pak enabled: renv had been handing pak remotes in a form it could not parse, and now translates them into pkgdepends' own syntax. Squarely in the pattern of renv absorbing the impedance mismatch between its remote formats and pak's.
View source ↗ - 2mo ago
renv 1.2.3 enriches record() with full DESCRIPTION metadata
renv::record() now produces records with the same DESCRIPTION-derived fields as snapshot() — Depends, Imports, Suggests, LinkingTo, License — fetched from active repositories rather than the local library. It removes a real asymmetry where recorded and snapshotted entries were not interchangeable.
View source ↗ - 3mo ago
renv 1.2.2 fixes binaries installing before their dependencies
Two fixes traceable to the parallel installer and lazy resolution: named remotes in DESCRIPTION no longer fail with a closure-not-subsettable error, and binary packages can no longer be installed before their dependencies during restore. The second is exactly the class of ordering bug concurrency introduces.
View source ↗ - 4mo ago
renv 1.2.1 anchors lockfile paths to the project directory
RENV_PATHS_LOCKFILE resolves relative to the project rather than the working directory, so the effective lockfile no longer changes as you move around a session. install() also stops upgrading transitive dependencies that already satisfy every requirement — less churn, more reproducibility.
View source ↗ - 4mo ago
renv 1.2.0 installs packages in parallel
⚡ SPARKThe architectural change the rest of the 1.2 line is still stabilising: installation goes concurrent, with batched parallel downloads and dependency-aware scheduling of compilation. Every ordering fix in 1.2.1 and 1.2.2 traces back to this release.
View source ↗ - 5mo ago
renv 1.1.6 adds a snapshot.dev setting for dev dependencies
A new snapshot.dev setting controls whether development dependencies are captured by snapshot() and status(), defaulting to FALSE, and repository overrides accept multiple named repositories. Configuration work that sharpens what a lockfile is supposed to represent.
View source ↗