V1.4.0 (submitted to CRAN 2021-05-03)


  1. Added capability of version-control for groundhog itself, users can load a desired version of groundhog with the  new function meta.groundhog(date).
  2. Added optional argument tolerate.R.version to groundhog.library(), allowing the use of an outdated version of R to load a more recent package version (e.g., load a package released in 2021, with R-3.6.3)
  3. Added capability of running groundhog on a not-yet-released version of R


  1. Prompts asking for user input now accept only pre-specified options, and prompts are repeated until one of these options is entered without executing subsequently submitted code until that occurs.
  2. Conflicts of different versions of the packages rstudioapi and testthat are no longer ignored by default (that is, these packages are no longer defaulted into ignore.deps() argument, because these packages have dependencies which in turn have dependencies with specified minimum version requirements which can prevent the loading of the necessary snowball).
  3. Fixed several bugs, most notably among these, changes to when the temporary .libPaths() mofidication takes place, the range of MRAN dates considered for binary install (used to include today’s date – 2, switched to highest date in the locally available cran.toc.rds), and modified how the currently attached packages are listed when checking whether to attach, so that base packages are checked for as well.


The main change is handling the undocumented and automatic loading of packages by R Studio, which would cause difficult to circumvent package conflicts when loading via groundhog. Notably, R Studio (sometimes) loads packages that appear next to the :: operand in a script, even if the lines are not executed, which may make it impossible for a user to load the version of the package they desire.  Similarly, when working on .rmd files, R Studio loads ‘knitr‘ and ‘xfun‘ without notifying users. Version 1.3.2 of groundhog addresses this issue by:
a) Making conflicts with ‘knitr‘ and ‘xfun‘ generate a warning rather than an error, facilitating version control (for other packages) within .rmd files
b) Providing more information about causes and solutions of repetitive package version conflicts between what’s loaded already and what users want to load.
c) Adding the option to uninstall from the local (non-groundhog) library, packages which R Studio is loading automatically. Upon encountering a repeated conflict (same groudhog.library() call leads to a conflict with a loaded package twice in a row), users are prompted to type ‘uninstall’ and all packages which are generating the conflict get uninstalled. A record of the uninstalled packages is made and saved locally to an .rds file; users can then reinstall at any time all packages uninstalled this way by running groundhog::reinstall.conflicts() which reads that .rds file and install packages listed in it.

Bug fixes:

  1. Dependencies labeled as “Depend” were not always being attached, now they are
  2. When installing a set of packages entered as a vector, an exit() command would interrupt additional code being run when the loading was sourced from a separate R script.


  1. Non-exported functions no longer are included in the documentation.
  2. Dropped experimental ResearchBox functions.



  1. Argument pkg became a vector in groundhog.library(pkg, date), allowing loading/installing many packages in a single library command:
    For example: <- '2021-01-01'
    pkgs <- c('pwr', 'rio', 'metafor')
  2. Fixed bug preventing the groundhog folder path from including spaces.
    For example, this folder will be successfully work as a path in groundhog_1.2.0, but not groundhog_1.1.0
    set.groundhog.folder("c:/my folder")
  3. Added date validation, alerting users when the entered date is not in the accepted yyyy-mm-dd format.
  4. Fixed bug that a warning supposedly shown at most once every 24 hours was being shown every time
  5. Minor typos fixed in messages displayed on console.