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 buildsArchiveandGitHubpackages prior to installation, then installs all packages (CRAN,Archive,GitHub,MRANon Windows) with oneinstall.packagescall (Linux-alikes) or up to twoinstall.packagescalls (binary and source), allowing efficient parallel installs. This results in very fast installs for all combinations of packages.
newoptions("Require.offlineMode")can be set toFALSEto stopRequireandpkgDepfrom 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 toFALSEuntil next call toRequireorpkgDepwhen 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)" modifyList2now followsmodifyListby adding thekeep.nullargument.setdiffNamedwill 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
messagecalls nowmessageVerbose, so verbosity can be fully controlled with the argumentverboseoroptions("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.persistentPkgEnvas 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
crancacheif 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
MRANpackage installs explicitly (instead of just "Archive")