v0.2.5
Known issues: https://github.com/PredictiveEcology/Require/issues
version 0.2.5
enhancements
- several modifications to enable CRAN-policy violations all addressed, notably keeping all temporary and (package and personal) cache directories clean after examples and tests
- This is a major overhaul of the inner workings of
Require
. It now downloads and buildsArchive
andGitHub
packages prior to installation, then installs all packages (CRAN
,Archive
,GitHub
,MRAN
on Windows) with oneinstall.packages
call (Linux-alikes) or up to twoinstall.packages
calls (binary and source), allowing efficient parallel installs. This results in very fast installs for all combinations of packages.
newoptions("Require.offlineMode")
can be set toFALSE
to stopRequire
andpkgDep
from checking the internet. This will fail, unless the cached packages are available locally (i.e., it was run once with all packages installed previously). If they are, then they will be installed without needing the internet. This option will also be set automatically on the first attempt to get a file from the internet, which fails, triggering a test of the internet. If that fails, then the option will be set toFALSE
until next call toRequire
orpkgDep
when it will be reset. This is experimental still. - many more edge cases found and dealt with
- experimental use of
(HEAD)
to keep a package "up to date" with the HEAD of a GitHub branch. The behaviour still uses version numbering, so will not update based on SHA, but if the HEAD is ahead of the locally installed package and the(HEAD)
is specified, then it will update. Specifically, use this instead of a version number, e.g.,"PredictiveEcology/Require@development (HEAD)"
modifyList2
now followsmodifyList
by adding thekeep.null
argument.setdiffNamed
will compare 2 named lists or vectors and keep on those elements that are in the first list (or vector), keeping in mind the name as well as the element.- package messaging is not sorted alphabetically during installation
- all
message
calls nowmessageVerbose
, so verbosity can be fully controlled with the argumentverbose
oroptions("Require.verbose")
. See?RequireOptions
. - tests clean up more completely after themselves
- if
options(Require.RPackageCache = FALSE)
(or environment variable"R_REQUIRE_PKGCACHE"
), then no cache folder will be created; previously a nearly empty folder was created by default. See?RequireOptions
- Remove option
Require.persistentPkgEnv
as it was deemed superfluous. - numerous enhancements for speed
- new function
Install
, which isRequire(..., require = FALSE)
(HEAD)
has now been tested for CRAN repositories and works as expected.- Updated README to show new functionality
- will attempt to use local cached packages from
crancache
if the user setsoptions(Require.useCranCache = TRUE)
. This is experimental and is still being tested. - A new function,
clearRequirePackageCache
, for clearing the package cache. - The cache has been developed to be able to be shared across Operating Systems, if there is a shared file system.
- GitHub packages require the SHA to be assessed; now this is Cached to disk as well as RAM, so that it persists even if there is an R restart.
- All non-package cache files (
available.packages
,pkgDep
,GitHubSHA
) will be refreshed (purged) every 1 hour. - Much improved messaging, including identifying
MRAN
package installs explicitly (instead of just "Archive")