Skip to content

devtools 1.10.0

Compare
Choose a tag to compare
@hadley hadley released this 25 Jan 14:23

New features

  • curl, evaluate, roxygen2 and rversions have been moved from Imports
    to Suggests to lighten the dependency load of devtools. If you run a
    function that needs one of the packages, you'll prompted to install it
    (#962, @jimhester).
  • Devtools uses a new strategy for detecting RTools on windows: it now only
    looks for Rtools if you need to load_all() or build() a package with
    compiled code. This should make it easier to work with devtools if
    you're developing pure R packages (#947).
  • package_file() lets you find files inside a package. It starts by
    finding the root directory of the package (i.e. the directory that contains
    DESCRIPTION) (#985).
  • use_news_md() adds a basic NEWS.md template (#957).
  • use_mit_license() writes the necessary infrastructure to declare and
    release an R package under the MIT license in a CRAN-compliant way.
    (#995, @kevinushey)
  • check(cran = TRUE) adds --run-donttest since you do need to test
    code in \dontest() for CRAN submission (#1002).

Package installation

  • install() installs packages specified in the Additional_repositories
    field, such as drat repositories. (#907, #1028, @jimhester). It
    correctly installs missing dependencies (#1013, @gaborcsardi). If called on a
    Bioconductor package, include the Bioconductor repositories if they are not
    already set (#895, @jimhester).
  • install() gains a metadata argument which lets you add extra fields to
    the DESCRIPTION on install. (#1027, @rmflight)
  • install_github() and install_git() only downloads and installs the
    package if the remote SHA1 reference differs from the currently installed
    reference (#903, @jimhester).
  • install_local() captures git and github information and stores it in the
    DESCRIPTION (#1027, @rmflight).
  • install_version() is more robust when handling multiple repos (#943, #1030,
    @jimhester).
  • Bugfix for Remotes: feature that prevented it from working if devtools was
    not attached as is done in travis-r (#936, @jimhester).

Bug fixes and minor improvements

  • check_dev_versions() checks only package dependencies (#983).
  • check_man() replaces check_doc() (since most other functions are
    named after the corresponding directory). check_doc() will hang around
    as an alias for the forseeable future (#958).
  • create() produces a dummy namespace will fake comment so roxygen2 will
    overwrite silently (#1016).
  • create() and setup() are more permissive -- they now accept a path to
    either a new directory or empty directory. (#966, @kevinushey)
  • document() now only runs update_collate() once.
  • load_all() resolves a longstanding lazy load database corruption issue when
    reloading packages which define S3 methods on generics from base or other
    packages (#1001, @jimhester).
  • release_checks() gains two new checks:
    • check_vignette_titles() checks that your vignette titles aren't the
      default "Vignette Title" (#960, @jennybc).
    • check_news_md() checks that NEWS.md isn't in your .Rbuildignore
      (since it's now supported by CRAN, #1042).
  • revdep_check():
    • More verbose about which package is installed (#926, @krlmlr)
    • Verifies the integrity of already downloaded package archives
      (#930, @krlmlr)
    • Is now more tolerant of errors when retrieving the summary for a
      checked package (#929, @krlmlr).
    • When ncpus > 1, it includes the package name for when so you know
      which package has failed and can start looking at the output without
      needing to wait for all packages to finish (@mattdowle).
    • Uses proper repository when BiocInstaller::useDevel(TRUE)
      (#937, @jimhester).
  • Shimmed system.file() now respects mustWork = TRUE and throws an error
    if the file does not exist (#1034).
  • use_appveyor() template now creates failure.zip artifact instead of
    polluting the logs with R CMD check output (#1017, @krlmlr, @HenrikBengtsson).
  • use_cran_comments() template has been improved (#1038).
  • use_data() now warns when trying to save the same object twice,
    and stops if there is no object to save (#948, @krlmlr).
  • use_revdep_check() no longer includes revdep_check_save_logs in
    default template. I found I never used the logs and they just cluttered up
    the package directory (#1003).
  • with_*() functions have moved into the withr package, and devtools
    functions have been deprecated (#925, @jimhester).