←back to thread

68 points Keats | 3 comments | | HN request time: 0.209s | source

We have been building a package manager for R inspired by Cargo in Rust. The main idea behind rv is to be explicit about the R version in use as well as declaring which dependencies are used in a rproject.toml file for a given project. There's no renv::snapshot equivalent, everything needs to be declared up front, the config file (and resulting lockfile) is the source of truth. This avoids issue where renv might miss information about the installation and is also easy to tweak some packages, eg install one from source and install suggests from another.

If you have used Cargo/npm/any Python package manager/etc, it will be very familiar.

1. badmonster ◴[] No.44009650[source]
I'm curious — does rv support or plan to support per-project isolation of system-level dependencies (e.g., gfortran, libxml2, etc.) like what renv sometimes indirectly requires users to manage outside R? If not, do you have recommendations for managing these in a reproducible way alongside rv?
replies(2): >>44009763 #>>44009824 #
2. mauflows ◴[] No.44009763[source]
I'm curious how your team ended up doing this. We settled on Nix with flakes after some pain with Docker / RStudio Server.
3. Keats ◴[] No.44009824[source]
It's not planned for rv, this is whole other can of worms. Something like nix/docker should work but I'm not working on that part myself so I can't comment.