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.
simpaticoder|9 months ago
Keats|9 months ago
xvilka|9 months ago
[1] https://github.com/astral-sh/uv
Keats|9 months ago
condwanaland|9 months ago
arbutus8|9 months ago
badmonster|9 months ago
Keats|9 months ago
mauflows|9 months ago
_Wintermute|9 months ago
Microsoft's CRAN time machine helped solved this, but I think they've recently shut it down and I don't really trust Posit to not have a version behind a paywall.
t-kalinowski|9 months ago
For example: https://packagemanager.posit.co/cran/2025-03-02
You can browse available snapshot dates here: https://packagemanager.posit.co/client/#/repos/cran/setup?sn...
This also works for PyPI and Python packages: https://packagemanager.posit.co/pypi/2025-03-04/simple
arbutus8|9 months ago
What the CRAN time machine (and now Posit Package Manager) does is take that compatibility guarantee, and freeze it so you have access to all the same, compatible, packages at any moment in time.
While I personally do use PPM fairly extensively, I do understand the paywall concern for long-term reproducibility so `rv` can help you here, with a bit of manual massaging. I'd recommend setting the repositories section of the config file to be a snapshot date in PPM that contains the package version(s) you're interested in and then installing using that repository (taking the benefit of that CRAN guarantee), then in both the config file and `rv.lock`, replace all the references to the PPM repo with your preferred CRAN mirror. This will allow you to resolve to compatible package versions, but then for your POSIT concern, will still be able to reproduce using the CRAN archive.
almostkindatech|9 months ago
rorylawless|9 months ago
j_bum|9 months ago
Is there any plan to have it create a manifest (like renv.lock) that can be used directly with the posit publishing system?
arbutus8|9 months ago
xgstation|9 months ago
feels we eagerly need cv -> C/C++ package manager
mbeavitt|9 months ago
okanat|9 months ago
Keats|9 months ago
pupperino|9 months ago
goosedragons|9 months ago
scrappyjoe|9 months ago
cluckindan|9 months ago
Keats|9 months ago
barslmn|9 months ago
Keats|9 months ago