Path to this page:
Subject: CVS commit: pkgsrc/devel/R-renv
From: Makoto Fujiwara
Date: 2024-01-22 14:50:34
Message id: 20240122135034.57BF3FA42@cvs.NetBSD.org
Log Message:
(devel/R-renv) Updated 0.17.3 to 1.0.3
# 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 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
* 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.
# renv 1.0.1
* Fixed an issue where authentication headers could be duplicated when
using the `libcurl` download method. (#1605)
* `renv::use()` now defaults to setting `isolate = TRUE` when `sandbox = TRUE`.
* Fixed an issue where the renv watchdog could fail to load, leading to slowness
in activating the sandbox on startup. (#1617)
* Fixed an issue where renv did not display warnings / errors from `renv::snapshot()`
when `options(renv.verbose = FALSE)` was set. The display of these messages
is now controlled via the `renv.caution.verbose` R option. (#1607, #1608)
* `renv::load()` now notifies the user if the synchronization check took an
excessive amount of time due to the number of files being scanned in the
project. (#1573)
* `renv::init()` gains the `load` argument, making it possible to initialize
a project without explicitly loading it. (#1583)
* renv now uses a lock when synchronizing installed packages with the cache.
This should help alleviate issues that can arise when multiple R processes
are installing and caching packages concurrently. (#1571)
* Fixed a regression in parsing expressions within R Markdown chunk options. (#1558)
* Fixed an issue that prevented `renv::install()` from functioning
when source-only repositories were included. (#1578)
* Fixed a logic error in reading `RENV_AUTOLOAD_ENABLED`. (#1580)
* `renv::restore()` no longer runs without prompting on load if the
library is empty. (#1543)
* `renv::repair()` now checks for installed packages which lack a known
remote source, and updates their `DESCRIPTION` files if it can infer an
appropriate remote source. This typically occurs when a package is installed
from local sources, but appears to be maintained or published on a remote
repository (e.g. GitHub). This was previously done in `renv::snapshot()`, but
we've rolled back that change as the prompting was over-aggressive. (#1574)
* `renv::status()` now first reports on uninstalled packages, before reporting on
used <-> installed mismatches. (#1538)
* When the `RENV_STARTUP_DIAGNOSTICS` environment variable is set to `TRUE`,
renv now displays a short diagnostics report after a project's autoloader
has been run. This can be useful when diagnosing why renv is slow to load
in certain projects. (#1557)
* renv now ensures the sandbox is activated on load, for R processes which
are launched with the renv sandbox on the library paths. (#1565)
* `renv::restore()` no longer erroneously prompts when determining the packages
which need to be installed. (#1544)
* `renv::update()` now ensures the `prompt` parameter is properly respected
during package installation. (#1540)
* `renv::activate()` no longer erroneously preserves the previous library
paths after restarting the session within RStudio. (#1530)
* Use correct spelling of IRkernel package (#1528).
* Honor `R_LIBCURL_SSL_REVOKE_BEST_EFFORT` when using an external `curl.exe`
binary to download files. (#1624)
# renv 1.0.0
## New features
* New `renv::checkout()` installings the latest-available packages from a
repository. For example, `renv::checkout(date = "2023-02-08")` will \
install
the packages available on 2023-02-08 from the Posit
[Package Manager](https://packagemanager.rstudio.com/) repository.
The `actions` argument allows you choose whether a lockfile is generated from
the provided repositories ("snapshot"), or whether packages are installed
from the provided repositories ("restore").
* `renv::deactivate()` gains a `clean` argument: when `TRUE` it will delete
all renv files/directories, leaving the project the way it was found.
* `renv::init()` now uses [Posit Public Package \
Manager](https://packagemanager.posit.co)
by default, for new projects where the repositories have not already been
configured externally. See the options `renv.config.ppm.enabled`,
`renv.config.ppm.default`, and `renv.config.ppm.url` in `?config` for more
details (#430).
* `renv::lockfile_create()`, `renv::lockfile_read()`, `renv::lockfile_write()`
and `renv::lockfile_modify()` provide a small family of functions for
interacting with renv lockfiles programmatically (#1438).
* Handling of development dependencies has been refined. `renv::snapshot()`
and `renv::status()` no longer track development dependencies, while
`install()` continues to install them (#1019). `Suggested` packages listed in
`DESCRIPTION` files are declared as development dependencies regardless of
whether or not they're a "package" project.
* MRAN integration is now disabled by default, pending the upcoming shutdown
of Microsoft's MRAN service. Users who require binaries of older R packages
on Windows + macOS can consider using the instance of CRAN mirrored by the
[Posit Public Package Manager](https://packagemanager.posit.co) (#1343).
## Bug fixes and minor improvements
* Development versions of renv are now tracked using the Git SHA of the
current commit, rather than a version number that's incremented on every
change (#1327). This shouldn't have any user facing impact, but makes
renv maintenance a little easier.
* Fixed an issue causing "restarting interrupted promise evaluation" \
warnings
to be displayed when querying available packages failed. (#1260)
* `renv::activate()` uses a three option menu that hopefully make your choices
more clear (#1372).
* `renv::dependencies()` now discovers R package dependencies inside Jupyter
notebooks (#929).
* `renv::dependencies()` includes packages used by user profile (`~/.Rprofile`)
if `renv::config$user.profile()` is `TRUE`. They are set as development
dependencies, which means that they will be installed by `install()` but not
recorded in the snapshot.
* `renv::dependencies()` only extracts dependencies from text in YAML
headers that looks like valid R code (#1288).
* `renv::dependencies()` no longer treats `box::use(module/file)` as using
package `module` (#1377).
* `renv::init()` now prompts the user to select a snapshot type if the project
contains a top-level DESCRIPTION file (#1485).
* `renv::install(type = "source")` now ensures source repositories are used
in projects using [PPM](https://packagemanager.posit.co/). (#927)
* `renv::install()` activates Bioconductor repositories when installing a
package from a remote (e.g. GitHub) which declares a Bioconductor dependency
(via a non-empty 'biocViews' field) (#934).
* `renv::install()` respects the project snapshot type, if set.
* `renv::install()` now keeps source when installing packages from source (#522).
* `renv::install()` now validates that binary packages can be loaded after
installation, in a manner similar to source packages (#1275).
* `renv::install()` now supports Bioconductor remotes of the form
`bioc::<BiocVersion>/<Package>`, for installing packages from
a particular version of Bioconductor. Aliases like 'release' and
'devel' are also supported (#1195).
* `renv::install()` now requires interactive confirmation that you want to
install packages (#587).
* `renv::load()` gives a more informative message if a lockfile is present but
no packages are installed (#353).
* `renv::load()` no longer attempts to query package repositories when checking
if a project is synchronized (#812).
* `renv::load()` no longer duplicates entries on the `PATH` environment variable
(#1095).
* `renv::restore()` can now use `pak::pkg_install()` to install packages
when `pak` integration is enabled. Set `RENV_CONFIG_PAK_ENABLED = TRUE`
in your project's `.Renviron` if you'd like to opt-in to this behavior.
Note that this requires a nightly build of `pak` (>= 0.4.0-9000);
see https://pak.r-lib.org/dev/reference/install.html for more details.
* `renv::restore()` now emits an error if called within a project that
does not contain a lockfile (#1474).
* `renv::restore()` correctly restores packages downloaded and installed
from [r-universe](https://r-universe.dev/) (#1359).
* `renv::snapshot()` now standardises pak metadata so CRAN packages installed via
pak look the same as CRAN packages installed with renv or `install.packages()`
(#1239).
* If `renv::snapshot()` finds missing packages, a new prompt allows you to
install them before continuing (#1198).
* `renv::snapshot()` no longer requires confirmation when writing the first
snapshot, since that's an action that can easily be undone (by deleting
`renv.lock`) (#1281).
* `renv::snapshot()` reports if the R version changes, even if no packages
change (#962).
* `renv::snapshot(exclude = <...>)` no longer warns when attempting to exclude
a package that is not installed (#1396).
* `renv::status()` now uses a more compact display when packages have some
inconsistent combination of being installed, used, and recorded.
* `renv::status()` now works more like `renv::restore()` when package versions
are different (#675).
* `renv::update()` can now update packages installed from GitLab (#136) and
BitBucket (#1194).
* `renv::settings$package.dependency.fields()` now only affects packages
installed directly by the user, not downstream dependencies of those packages.
* renv functions give a clearer error if `renv.lock` has somehow become
corrupted (#1027).
Files: