Repository navigation
rig 0.11.0
Custom repositories
-
New
rig repos addandrig repos rmcommands to add and remove your
own CRAN-like package repositories, e.g. an internal CRAN mirror or an
r-universe. rig stores them in its configuration file, and they work like
the built-in repositories, e.g. with--with-repos.
rig repos add --enable --all-versionsenables a repository for all
R versions, including the ones you install later. -
New
rig repos enableandrig repos disablecommands to turn
repositories, built-in or custom, on and off for each R version. -
rig now remembers the repositories enabled and disabled for each R
version, with these commands or with--with-repos/--without-repos,
and applies them again onrig repos setup.rig repos setupnow asks
for administrator rights if the current user cannot update the files of
the R installations, e.g. in admin mode on Linux and Windows. -
rig pkg install,rig pkg deps,rig pkg tree,rig pkg available
andrig pkg infonow use the repositories configured for the R
version, including custom ones.rig pkg deps,rig pkg tree,
rig pkg availableandrig pkg infohave a new--r-versionoption.
rig pkg searchstill searches CRAN only. -
rig pkg install,rig pkg deps,rig pkg tree,rig pkg available
andrig pkg infohave new--with-reposand--without-repos
options, with aliases--indexand--no-index, to use other
repositories for one command, without changing the setup of the R
version.--with-reposalso takes repository URLs, orname=URL. -
rig pkgcommands now only use Bioconductor packages if the
Bioconductor repositories are enabled for the R version, e.g. with
rig repos enable bioconductor. -
rig now sets up P3M by default on macOS, and on the Linux
distributions P3M has no binary packages for, where P3M is a CRAN
mirror of source packages. P3M stays off on aarch64 Windows, because it
only has x86_64 Windows binaries. Use
--without-repos=p3morrig repos disable p3mto turn it off. -
--without-repos=cran(andrig repos disable cran) now turns off CRAN
completely. -
rig projnow implements[[repository]]entries ofrproj.tomland repository
pinning.rig proj lock,rig proj sync,rig proj depsandrig proj tree
have new--with-reposand--without-reposoptions to add and remove
repositories for one command.
Bioconductor
-
rig projandrig pkgnow install Bioconductor packages, besides CRAN
packages, from the Bioconductor release that belongs to the R version.
CRAN and Bioconductor share one package namespace, so abioc::<package>
entry inRemotes:orConfig/Needs/*is the same as<package>. A
biocentry in the
[[repository]]array ofrproj.tomlpins the Bioconductor release, or
turns Bioconductor off.rproj.lockis now version 5, and records the
Bioconductor release of every target. -
rig pkg infonow shows the fullDESCRIPTIONof the current version
of a Bioconductor package, e.g. its title, description and maintainer,
from theVIEWSfile of its Bioconductor repository.
Inline scripts
-
rig runnow support self-contained scripts, that declare the packages
and the R version they need in a# /// scriptcomment block. rig then
runs the script in its own environment, in the cache directory, and
installs R and the packages as needed.rig run --upgradeand
rig run --upgrade-packageupgrade the packages of a script's
environment. -
New
rig proj lock --upgrade-package(-P) option, to upgrade only
some packages, and keep the versionsrproj.lockpins for the rest. It
also takes a version requirement, e.g.-P 'cli@>= 3.6.4', for this
run only (#410). -
rig proj locknow keeps the versionsrproj.lockpins when it has to
solve the dependencies again, e.g. afterrig proj add, as long as they
still fitrproj.toml. Use--upgradeto pick the latest versions. -
rig proj init,rig proj addandrig proj removehave a new
--scriptoption, to create and edit the# /// scriptblock of an R
script, instead of a project'srproj.toml(#414). -
New
rig proj lock --script script.Rto lock the dependencies of a
script with a# /// scriptblock intoscript.R.lock, next to the
script.rig runthen installs the R and package versions of the lock
file, and updates it if the block changes.rig run --lockedfails
instead of updating it (#422). -
New
rig system script-assoccommand on Windows, to run.Rfiles with
rig fromcmdand PowerShell, e.g.hello.R a b.
System requirements
-
rig pkg install,rig proj syncandrig runnow install the system
requirements of R packages on Linux, like pak does. rig matches each
package'sSystemRequirementsfield against the
r-system-requirements
rules, and installs the missing OS packages if it runs as root or if
sudoneeds no password. Otherwise it prints the commands to run.
Source packages and distribution-specific binaries need this, manylinux
binaries do not.--no-sysreqsturns this off for one run; the new
sysreqs,sysreqs-sudo,sysreqs-updateandsysreqs-rules-url
config entries configure it;sysreqs = "print"only shows the commands. -
rproj.locknow records theSystemRequirementsof each package, so it
is version 5. Runrig proj lockto update an older lock file.
Other new features
-
rig now honors the
OS_typefield of packages: a Unix-only package is
not used on Windows, and a Windows-only package is not used on macOS and
Linux. -
rig addnow has a--jsonoption. It prints information about the
installed R version (or the already installed version that was kept),
including whether it is a new installation and whether it is the default. -
rig rtools addnow has a--jsonoption. It prints information about
the installed (or already installed) Rtools versions, including whether
each one is a new installation. -
New
rig pkg searchcommand to search CRAN packages, using the same
web service as the pkgsearch R package. -
New
rig pkg doctorcommand to find problems with the packages in a
library: missing or too old dependencies, and packages compiled against
another version of aLinkingTodependency (#393). -
rig projcommands now supportpathdependencies. -
rig proj initandrig proj importdo not overwrite the project's
.Renvironfile any more. rig now only manages a marked block in it,
and keeps the rest of the file, so you can add your own environment
variables to it. An existing.Renvironis not a conflict any more,
either (#440). -
rig pkg install <path>is now supported.<path>can be a directory,
of a source or binary package file. -
rig pkg installnow supports constraints. E.g. to install a specific
version of a package userig pkg install '<pkg>@=<ver>'. -
rig proj import --forcenow correctly overwrites the existing project
files. -
If the root project is a package,
rig proj locknow includes it in the
solution, with afile://URL.It also callsrig proj exportto
(re)create itsDESCRIPTIONfile andrig proj syncnow installs the
root project if it is a package. -
rig pkg install --no-install-projectinstalls only the dependencies of
the named packages, likerig proj sync --no-install-project. -
rig proj locknow rewrites the lock file if the list of R versions to
solve for changes. -
New
--exclude-neweroption forrig proj lock,rig proj syncand
rig pkg install, to ignore CRAN package versions published after a
date, e.g.--exclude-newer 2025-06-01, or in the last few days, e.g.
--exclude-newer "7 days". Projects can set it inrproj.toml, with
exclude-newerin[tool.rig]. -
Projects and scripts can now set
prefer-binaryin[tool.rig].
rig proj initandrig proj importhave a new--prefer-binary
option, to write the setting into the manifest. -
Projects can now set the platforms and R versions
rig proj locksolves
for inrproj.toml, withplatformsandr-versionsin[tool.rig],
e.g.r-versions = ["4.5", "4.6"].--platformand--r-version
override them. -
rig proj locknow also solves for source packages by default
rig proj syncuses this target only if no other target matches the
machine. -
rig run <script>now passes every argument after the script on to the
script, including the ones starting with-, and--. A script that
starts with#!, e.g.#!/usr/bin/env -S rig run, does not need an
.Rextension any more (#413). -
rig run --rscriptdoes not pass an extra--argsargument to scripts
and-eexpressions any more, socommandArgs(TRUE)only has the
arguments you gave.
Windows specific changes
- The rig binaries themselves are now signed on Windows, not only the
rig installer.