| Title: | Create Disposable R Packages for Testing |
|---|---|
| Description: | Create disposable R packages for testing. You can create, install and load multiple R packages with a single function call, and then unload, uninstall and destroy them with another function call. This is handy when testing how some R code or an R package behaves with respect to other packages. |
| Authors: | Gábor Csárdi |
| Maintainer: | Gábor Csárdi <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.0.3 |
| Built: | 2026-05-08 06:31:50 UTC |
| Source: | https://github.com/gaborcsardi/disposables |
Get rid of temporary packages
dispose_packages(packages, unattach = TRUE, unload = unattach, delete = TRUE, delete_lib_dir = delete)dispose_packages(packages, unattach = TRUE, unload = unattach, delete = TRUE, delete_lib_dir = delete)
packages |
A list returned by |
unattach |
Whether to unattach the packages. |
unload |
Whether to unload the packages. It is not possible to unload without unattaching. |
delete |
Whether to delete the installed packages from the
|
delete_lib_dir |
Whether to delete the the whole |
pkg <- make_packages(
foo1 = { f <- function() print("hello!") ; d <- 1:10 },
foo2 = { f <- function() print("hello again!") ; d <- 11:20 }
)
foo1::f()
foo2::f()
foo1::d
foo2::d
## Unattach only
dispose_packages(pkg, unload = FALSE, delete = FALSE)
"package:foo1" %in% search()
"foo1" %in% loadedNamespaces()
dir(pkg$lib_dir)
## Unload
dispose_packages(pkg, delete = FALSE)
"package:foo1" %in% search()
"foo1" %in% loadedNamespaces()
dir(pkg$lib_dir)
## Delete completely
dispose_packages(pkg)
"package:foo1" %in% search()
"foo1" %in% loadedNamespaces()
file.exists(pkg$lib_dir)
If a package with the same name as a disposable one, is
loaded, then it will be unloaded. If a package with same name
as a disposable on is installed in lib_dir, then
it will be overwritten. (lib_dir is usually a temporary
directory, so this is not a big problem.)
make_packages(..., lib_dir = tempfile(), imports = character(), quiet = TRUE)make_packages(..., lib_dir = tempfile(), imports = character(), quiet = TRUE)
... |
Named expressions. A separate package with the given name is created for each. |
lib_dir |
Directory to install the package to. Defaults to a temporary directory that is deleted once the R session is over. |
imports |
The 'Imports' field in the DESCRIPTION file, the packages to import in each disposable package. It can be a character vector, which applies to all packages, or a list of character vectors, one for each package. |
quiet |
Whether to show the installation process of disposable packages. |
Note that if you specify lib_dir and it points to an
existing directory, make_package overwrites the packages
there. If an error happens during installation or loading of
the disposables packages, then it will not restore the
original contents of lib_dir, but it will remove
all newly installed disposable packages, even the ones
that were installed cleanly.
A named list with entries:
lib_dir The directory in which the packages are
installed.
package The named of the packages.
pkg <- make_packages(
foo1 = { f <- function() print("hello!") ; d <- 1:10 },
foo2 = { f <- function() print("hello again!") ; d <- 11:20 }
)
foo1::f()
foo2::f()
foo1::d
foo2::d
dispose_packages(pkg)
## See above and also in the README: https://r-pkg.org/pkg/disposables## See above and also in the README: https://r-pkg.org/pkg/disposables