Skip to content

Releases: PredictiveEcology/Require

v0.3.1

08 Aug 19:35
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.3.1

enhancements

  • minor modifications for when internet is not available
  • Issue 81: deal with more edge cases for package snapshots that are not internally consistent, i.e., violate package versions, or skip missing branches on GitHub, if not needed.

bugfixes

  • updates to tests that have begun to fail

v0.3.0

25 Mar 19:00
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.3.0

enhancements

  • Moved from MRAN archives for binaries to posit.packagemanager.co
  • because of the move from MRAN to posit package manager, attempts are made to use archived binary packages for Linux also.
  • improved messaging in several places
  • improved error catching in several places
  • a number of cases that were annoying for users were identified and addressed.
  • setupOff and setLibPaths enhanced to be fully functioning in a wide diversity of cases.
  • When setting install = "force" in Require, now only the user-specified packages are forced to be installed; the rest are installed if required, mimicking install.packages
  • small efficiency gains in many places
  • (HEAD) is now more robust as a way to keep a package up to date.

advanced changes

  • several functions now exported, .downloadFileMasterMainAuth, messageVerbose, messageDF as they were deemed useful enough for other packages.

bugfixes

  • slow assessment of package dependencies on CRAN packages because of stale available.packagesCached() object. Now, catches this condition and refreshes available.packages()
  • corrected support for multiple repos that each offer the same packages. Now works like install.packages, i.e., first one first.
  • base packages can now be installed as previous issues about installing them were dealt with.

v0.2.6

09 Jan 18:15
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.2.6

enhancements

  • attempts to deal with more cases of failed installations
  • Install did not have an install argument; this has now been introduced, allowing the (most likely) use case of Install(pkg, install = "force")
  • examples now use Install more often than Require(..., require = FALSE) for simplicity.

improved messaging

  • If non-interactive and no CRAN mirror is set, user gets more informative error.

bugfixes

  • Cases of multiple user-specified .libPaths() were treated incorrectly; they are now all respected.
  • other minor

v0.2.5

24 Nov 17:32
Compare
Choose a tag to compare

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 builds Archive and GitHub packages prior to installation, then installs all packages (CRAN, Archive, GitHub, MRAN on Windows) with one install.packages call (Linux-alikes) or up to two install.packages calls (binary and source), allowing efficient parallel installs. This results in very fast installs for all combinations of packages.
    new options("Require.offlineMode") can be set to FALSE to stop Require and pkgDep 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 to FALSE until next call to Require or pkgDep 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 follows modifyList by adding the keep.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 now messageVerbose, so verbosity can be fully controlled with the argument verbose or options("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 is Require(..., 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 sets options(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")

v0.1.4

07 Oct 20:59
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.1.4

  • Make corrections for 2 failing architectures on CRAN
  • MUCH less verbose during automated testing

enhancement

  • verbose argument is now widespread, with -1, 0, 1, 2 all valid and correctly inherited values. See argument description in e.g., ?Require
  • improved warning handling

bugfixes

  • more edge cases found and dealt with

v0.0.13

31 May 17:01
6727490
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.0.13

  • fix CRAN policy violation -- dealt with extraneous folder created during testing

v0.0.12

26 May 16:23
3e756ac
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.0.12

Dependency changes

  • with the release of R 4.1, we dropped support for R 3.5. R 3.6 (oldrel) and newer are supported.

New features

  • setup: new function for creating a new project. See readme.md
  • setLibPath and package caching (via options("RPackageCache")) now automatically create and use a subfolder of user-provided path with the R major & minor version number (as with normal R behaviour) to allow multiple R versions to coexist on the same machine.
  • setLibPaths gains a new argument, updateRprofile, which allows a user's changes to .libPaths() to persist through an R restart. Set to getOption("Require.updateRprofile", FALSE), at start

Bug fixes

  • several edge cases with complex loading of many packages
  • was incorrectly (not) loading base packages, e.g., parallel
  • small minor bugfixes
  • In cases where a DESCRIPTION file had both a package with a minimum version (e.g., in Imports) and a REMOTES: for that package (without a minimum version, but with a branch, say), Require would use the REMOTES: entry. But since that means there is no minimum package version, and Require does not automatically install a package that is not violating a minimum version number, it would not install anything. Now, it harmonizes the 2 entries for a given package, and uses both the minimum version number and the git branch as the potential source to find that version number.
  • allow either master or main branches to be installed from GitHub, without needing to specify (#26)

v0.0.8

10 Sep 14:24
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.0.8

New features

  • GitHub SHA is now stored during pkgSnapshot, meaning that a new system can be built with exact versions and SHAs of GitHub packages.
  • For GitHub packages, now uses both DESCRIPTION and NAMESPACE files to determine dependencies. GitHub packages are generally for packages in some state of development. This may include missing declarations in DESCRIPTION. NAMESPACE is what R uses to actually determine package dependencies upon installation.
  • Now keeps the binary/source package locally if options("Require.RPackageCache" = "someLocalDir") is set to a local folder. Currently defaults to NULL, meaning no local cache.
  • Require and pkgSnapshot can now understand and work with GitHub SHAs and thus packages installed from GitHub, e.g., Require("PredictiveEcology/Require@development") will install the development version. When using pkgSnapshot, the exact SHA will be used to restore that package at the exact version with Require(packageVersionFile = "packageVersions.txt").
  • If a package is already loaded prior to changing running setLibPaths, it is possible to create a version conflict. base::require will error if the version in the .libPaths() is older than the version whose namespace is already loaded. To accommodate this, there is a check for this error, and if the newer version (that is already loaded) does not violate the Require('package (versionSpecification)'), then it will install the newer version. If it does violate the version specification, it will error cleanly with a message describing the possible solutions.
  • Much better messaging and reporting
  • New function: detachAll that attempts to detach and unload packages and all their dependencies, in reverse topological order.
  • Speed improvements, especially with pkgDep and pkgDepTopoSort
  • New function pkgDepAlt which is an alternative to pkgDep, yet easier to maintain and still experimental. It is not yet the workhorse inside Require, but it may become that.
  • Now correctly removes spaces and tab characters within a package version description -- this was creating an error such as Error: invalid version specification ' 3.3-13'

Bug fixes

  • pkgDepTopoSort now appears to be correct for all types of package descriptions currently allowed by Require, namely, packages with no version specification, packages with version specification (including older versions), and GitHub packages.
  • many minor edge cases

v0.0.7

18 Aug 19:19
Compare
Choose a tag to compare

Known issues: https://github.com/PredictiveEcology/Require/issues

version 0.0.7

New features

  • no longer sets CRAN repository to cloud.r-project.org even if non-interactive with no CRAN repository set. Now uses chooseCRANmirror(ind = 1)

Bug fixes

  • fixes CRAN check issues on Fedora.