Skip to content

Releases: r-lib/devtools

devtools 2.5.0

16 Mar 15:18

Choose a tag to compare

Deprecations

  • Package installation functions are now deprecated: install_bioc(), install_bitbucket(), install_cran(), install_deps(), install_dev(), install_dev_deps(), install_git(), install_github(), install_gitlab(), install_local(), install_svn(), install_url(), install_version(), update_packages(), dev_package_deps(), github_pull(), and github_release(). We now recommend pak (https://pak.r-lib.org/) for general package installation. See ?install-deprecated for migration guidance.
  • remotes has moved from Imports to Suggests, as part of the pivot towards pak for package installation (#2663).
  • build_rmd() is soft-deprecated and is discouraged for external use. It exists to be an internal helper for build_readme().
  • build_vignettes() and clean_vignettes() are now deprecated. We no longer recommend building vignettes in this way; instead use pkgdown::build_article() to render articles locally (#2488).
  • test_file() and test_coverage_file() are now defunct. These were deprecated in devtools 2.4.0 (2021-04-07) in favour of test_active_file() and test_coverage_active_file(). Removing test_file() eliminates the conflict with testthat::test_file().
  • release() is deprecated in favour of usethis::use_release_issue().
  • create() is deprecated in favour ofusethis::create_package().
  • bash(), missing_s3(), reload(), show_news(), and wd() are now deprecated. These functions are all historical parts of our workflow that we no longer use or recommend.

Other improvements

  • build_readme() gains support for README.qmd and renders using Quarto (#2620).
  • install() now installs dependencies with pak::local_install_deps() instead of remotes::install_deps(). This lets us default to upgrade = FALSE, so that existing dependencies are only upgraded when a newer version is actually required (#2486). keep_source now defaults to TRUE when build = FALSE, so that source references are automatically preserved during development installs.
  • build_manual() reports more details on failure (#2586).
  • build_site() now just calls pkgdown::build_site(), meaning that you will get more (informative) output by default (#2578).
  • check_doc_fields() is a new function that checks for missing \value and \examples fields in Rd files, which are commonly flagged by CRAN (#2525).
  • check_mac_devel() is a new function to check a package using the macOS builder at https://mac.r-project.org/macbuilder/submit.html (@nfrerebeau, #2507)
  • check_win() and friends gain a webform argument that uses a webform instead of passive FTP upload (@brownag, #2619).
  • dev_sitrep() now works correctly inside Positron (#2618), uses pak instead of remotes to check for dependencies that are missing/behind/ahead (#2663), and uses cli for user-facing messages.
  • is_loading() is now re-exported from pkgload (#2556).
  • load_all() now errors if called recursively, i.e. if you accidentally include a load_all() call in one of your R source files (#2617).
  • show_news() now looks for NEWS files in the same locations as utils::news(): inst/NEWS.Rd, NEWS.md, NEWS, and inst/NEWS (@arcresu, #2499).
  • test_active_file() now works when the active file is a snapshot file.
  • test_coverage() and test_coverage_active_file() gain a new report argument that can be set to "html" (the default, for an interactive browser report), "zero" (prints uncovered lines to the console, used for LLMs and non-interactive contexts), or "silent". The show_report argument has been removed (#2632).

devtools 2.4.6

03 Oct 16:59

Choose a tag to compare

  • Functions that use httr now explicitly check that it is installed
    (@catalamarti, #2573).

  • test_coverage() now works if the package has not been installed.

  • test_coverage_active_file() now reports if any tests failed and does
    a better job of executing snapshot comparisons.

  • dev_mode() and check_rhub() are deprecated.

devtools 2.4.5

11 Oct 17:18

Choose a tag to compare

  • check(cleanup =) was deprecated in devtools v1.11.0 (2016-04-12) and was
    made defunct in v2.4.4 (2022-07-20). The documentation is more clear now about
    recommended alternatives.

  • check(check_dir = NULL) is the new default, to align with the default
    behaviour of the underlying rcmdcheck::rcmdcheck().

  • check(cran = TRUE) sets the env var
    _R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_ to FALSE, in order to
    surface the "Namespace in Imports field not imported from" NOTE. This only
    applies to R >= 4.2, due to favorable changes in the behaviour of
    R CMD check --as-cran (#2459).

  • test_active_file() passes the package onto to testthat so it can correctly
    set the TESTTHAT_PKG envvar (#2470).

  • test() and test_active_file() once again work with testthat itself.

devtools 2.4.4

20 Jul 18:33

Choose a tag to compare

  • install(reload = TRUE) now calls pkgload::unregister() instead
    of pkload::unload() (#2349). This allows the package to keep
    functioning if it is still in use in the R session (e.g. through
    event handlers).

  • test() no longer calls load_all() twice. test_active_file()
    now calls load_all() via testthat.

  • aspell_env_var() does a better job of matching R CMD check behaviour,
    which is only to use aspell, not hunspell or ispell (#2376).

  • Installing devtools now installs pkgdown, profvis, bench, miniUI,
    and urlchecker, ensuring that you have everything needed for package
    development (#2388).

  • dev_sitrep() has been updated for the calendar-based version number scheme
    adopted by the RStudio IDE in September 2021 (#2397, #2410).

devtools 2.4.3

30 Nov 14:27

Choose a tag to compare

  • New check_mac_release() function to check a package using the macOS builder at https://mac.r-project.org/macbuilder/submit.html (#2375)

  • Jenny Bryan is now the official maintainer.

  • release() and submit_cran() now record submission details using the Debian Control File format, for better machine-readability. This file has a new name, CRAN-SUBMISSION (instead of CRAN-RELEASE) and now includes package version, in addition to the full SHA and a timestamp.

devtools 2.4.2

18 Nov 18:49

Choose a tag to compare

  • check_man() now works with R versions 4.1+ (#2354)

  • test_active_file() now again works on windows projects stored under the user's home directory (~) (#2355)

  • document(quiet = TRUE) now works without failure on windows (#2351)

  • Minor test failure on R 4.2 has been fixed.

  • New Rstudio addin for run_examples() (#2358)

devtools 2.4.1

12 May 13:29

Choose a tag to compare

  • build_readme() now uses the path argument, as designed (#2344)

  • create() no longer opens projects by default to avoid duplicate projects opened by the RStudio IDE project template (#2347, @malcolmbarrett)

  • The RStudio addins now use test_active_file() and test_coverage_active_file() instead of the deprecated test_file() and test_coverage_file() (#2339)

  • RStudio addins now run in interactive mode, rather than background mode (@jennybc, #2350)

  • install(upgrade) now defaults to 'default' rather than 'ask'. This allows you to control the default asking behavior with the R_REMOTES_UPGRADE environment variable (#2345)

devtools 2.4.0

09 Apr 13:13

Choose a tag to compare

Breaking changes and deprecated functions

  • The check_results() function has been removed.
    It was not used by any CRAN package, and much better alternatives are available in the rcmdcheck package.

  • pkgload::inst() is no longer re-exported (#2218).

  • test_file() has been renamed to test_active_file() and test_coverage_file() has been renamed to test_coverage_active_file() to avoid a name collision with testthat::test_file().
    The previous names have been soft deprecated in this release, they will be hard deprecated in the next release and eventually removed. (#2125)

Re-licensing

  • devtools is now released under a MIT license (#2326)

Minor improvements and fixes

  • build_readme() now supports readme files located in inst/README.Rmd, as intended (#2333)

  • build_vignettes() now creates more specific .gitignore entries (@klmr, #2317)

  • check() now only re-documents if you have a matching version of roxygen2 (#2263).

  • change_maintainer_email() now has a check to assess whether the email is actually changed.
    If the email is not changed, the code now stops such that an email is not accidentally sent to the wrong recipient. (@emilsjoerup, #2073)

  • run_examples(fresh = TRUE) again works without error (#2264)

  • The covr and DT packages have been moved from Imports to Suggests.
    They are only needed when running test_coverage() and test_coverage_active_file() so now you'll be prompted to install them when needed.

  • Switched to fs for all file system functions (#2331, @malcolmbarrett)

  • Now uses testthat 3.0.0 to power test(), test_active_file(), test_coverage(), and test_coverage_active_file().
    The major difference is that test_active_file() now generates a compact summary that takes up less space on the console.

devtools 2.3.2

18 Sep 12:21

Choose a tag to compare

  • Fix for compatibility with withr 2.3.0

devtools 2.3.1

21 Jul 21:12

Choose a tag to compare

  • run_examples() arguments run and test are deprecated in favor of the (hopefully) more clear run_dontrun and run_donttest (pkgload/#107).

  • Previously deprecated functions dr_devtools() and dr_github() have been removed.

  • Documentation has been synced with remotes 2.2.0