R Devtools Versions Save

Tools to make an R developer's life easier

v2.2.1

4 years ago
  • test() now sets the collation order to C before running, which matches the behavior of tests when run with R CMD check (#2121)

  • New options("devtools.ellipsis_action") option added to control the action of ellipsis in devtools. This should be one of

    • rlang::abort - to emit an error if arguments are unused
    • rlang::warn - to emit a warning if arguments are unused
    • rlang::inform - to emit a message if arguments are unused
    • rlang::signal - to emit a message if arguments are unused Using rlang::signal will produce no output unless the custom condition is caught, so it is the best way to retain backwards compatibility with devtools behavior prior to 2.2.0. The default behavior was also changed to issue a warning rather than an error if any arguments are unused, as there are some cases where devtools does not need to install the package, so unused arguments are false positives (#2109).
  • install() now throws an error when it fails, as intended (#2120)

  • install() now again reloads and re-attaches packages if they were previously loaded (#2111).

  • release() no longer calls the deprecated dr_devtools() (#2105)

  • test() now explicitly passes stop_on_failure = FALSE to testthat::test_dir() (@jameslamb, #2099)

v2.2.0

4 years ago

New Features

  • create() added back, the RStudio IDE uses create() in the create packages dialog, so removing it in version 2.1.0 broke old versions of the IDE.

  • New dev_sitrep() function to return information about your development environment and diagnose common problems. The former functions dr_devtools() and dr_github() have been deprecated. (#1970)

  • All functions taking ... now use the ellipsis package. This catches errors when arguments are misspelled or incorrectly specified (#2016)

Minor improvements and fixes

  • build_vignettes() now correctly installs the vignette builder if it is not already installed (#2089).

  • dev_sitrep() now uses the same endpoint to detect the current RStudio version as the IDE (#2050).

  • document() gains a quiet parameter, to silence output and check() now passes its quiet argument to it (#1986).

  • Add the DT package as a dependency, so that test_coverage() and test_coverage_file() work without having to install additional packages (#2085).

  • check_man() now succeeds when tools::undoc() returns empty results (#1944).

  • check_win_*() functions gain a email argument, so temporarily change the email the check results will be sent to (#1723).

  • install() now explicitly unloads packages before trying to install a new version (#2094).

  • All install_*() functions now attach build tools to the PATH, which makes them work on Windows when RTools is not on the default PATH (#2093).

  • test_coverage_file() now works when there is not a 1 to 1 correspondence between test and source files (#2011).

  • release() now works again when pkg is not the current working directory (#1974).

  • release() now works without error when options("repos") is unnamed (#1956).

v2.1.0

4 years ago

New Features

  • testthat and roxygen2 are now added to Imports rather than Suggests, so they are automatically installed when you install devtools.

Deprecated functions now removed

  • create(), create_description(), setup() use_appveyor(), use_build_ignore(), use_code_of_conduct(), use_coverage(), use_cran_badge(), use_cran_comments(), use_data(), use_data_raw(), use_dev_version(), use_git(), use_git_hook(), use_github(), use_github_links(), use_gpl3_license(), use_mit_license(), use_news_md(), use_package(), use_package_doc(), use_rcpp(), use_readme_md(), use_readme_rmd(), use_revdep(), use_rstudio(), use_test(), use_testthat(), use_travis(), use_vignette(), have been removed after being deprecated in previous releases. Use the versions in the usethis package directly.

  • check_cran(), revdep_check(), revdep_check_print_problems(), revdep_check_reset(), revdep_check_resume(), revdep_check_save_summary(), revdep_email() have been removed after being deprecated in prevous releases. It is recommended to use the revdepcheck package instead.

  • system_check(), system_output() have been removed after being deprecated in previous releases. It is recommend to use the processx package instead.

  • build_win() has been removed, after being deprecated in previous releases.

  • yesno() as used in release() now has clearer synonyms for "yes" (@mattmalin, #1993)

Minor improvements and fixes

  • check_rhub gains a new argument build_args for arguments passed to R CMD build. ... is now passed to rhub::check_for_cran() (@gaborcsardi, @maelle, #2041)

  • build_manual() now fails if the manual fails to build. (#2056)

  • test_file() and test_coverage_file() now work with C and C++ files in the src/ directory as well.

v1.13.6

5 years ago
  • Compatibility for git2r versions 0.22.0+
  • Fix test errors related to GitHub SSLv1 changes with git2r versions =< 0.21.0.

v2.0.0

5 years ago

Devtools 2.0.0 is a major release that contains work from the past year and a half, since the major devtools release (1.13.0).

This release splits the functionality in devtools into a number of smaller packages which are simpler to develop and also easier for other packages to depend on. In particular the following packages have been spun off in what we are calling the 'conscious uncoupling' of devtools.

  • remotes: Installing packages (i.e. install_github()).
  • pkgbuild: Building binary packages (including checking if build tools are available) (i.e. build()).
  • pkgload: Simulating package loading (i.e. load_all()).
  • rcmdcheck: Running R CMD check and reporting the results (i.e. check()).
  • revdepcheck: Running R CMD check on all reverse dependencies, and figuring out what's changed since the last CRAN release (i.e. revdep_check()).
  • sessioninfo: R session info (i.e. session_info()).
  • usethis: Automating package setup (i.e. use_test()).

devtools will remain the main package developers will interact with when writing R packages; it will just rely on these other packages internally for most of the functionality.

Breaking changes

There have been a number of breaking changes in this release, while this will cause some short term pain for users it will result in a easier to understand API in the future, so we feel the tradeoff is worthwhile.

  • devtools::install() arguments have been changed as follows.

    • local -> build
    • force_deps -> force
    • upgrade_dependencies -> upgrade
    • threads -> Removed, but you can use Ncpus, which is passed by ... to install.packages()
    • metadata -> Removed
    • out_dir -> Removed
    • skip_if_log_exists -> Removed
  • check() argument check_version has been renamed to remote to better describe what tests are disabled (#1811)

  • get_path(), set_path(), add_path() and on_path() have been removed, this functionality is available with withr::with_path() (#1796).

  • The lang argument to spell_check() was removed, for compatibility with spelling v1.1. (#1715)

  • The previously deprecated with_ functions have now been removed. The functionality has been moved to the withr package.

  • RCMD(), clean_source(), eval_clean() and evalq_clean() have been removed. These functions never worked terribly well, and have been replaced by the much better functions in callr.

  • build_win() has been renamed to check_win_release(), check_win_devel(), and check_win_oldrelease() (#1598).

Deprecated functions

  • Infrastructure functions (use_*) now use the implementations in usethis and the versions in devtools are deprecated. If you use these from a package you should switch your package to depend on usethis directly instead.

  • The revdep_check_* functions have been deprecated in favor of the revdepcheck package.

  • system_check() and system_output() have been deprecated in factor of the processx package.

Major changes

  • All install_*() functions are now re-exported from remotes rather than being defined in devtools

  • devtools now depends on roxygen2 6.1.0: this considerably simplifies devtools::document() and makes it more consistent with roxygen2::roxygenise().

  • test_file() function added to test one or more files from a package (#1755).

  • test_coverage() function added to provide a helper to compute test coverage using covr (#1628).

  • test_file() and test_coverage_file() now have RStudio addins (#1650)

  • test_file_coverage() function added to show the test coverage of one or more files from a package. (#1755).

  • session_info() now uses the implementation in the sessioninfo package. Packages using devtools::session_info() are encouraged to switch to using sessioninfo::session_info() instead.

  • package_info() function now re-exported from the sessioninfo package.

  • check() now uses rcmdcheck to run and parse R CMD check output (#1153).

  • Code related to simulating package loading has been pulled out into a separate package, pkgload. The following functions have been moved to pkgload without a shim: clean_dll(), compile_dll(), dev_example(), dev_help(), dev_meta(), find_topic(), imports_env(), inst(), load_code(), load_dll(), ns_env(), parse_ns_file(), pkg_env(). These functions are primarily for internal use.

    load_all() and unload() have been moved to pkgload, but devtools provides shims since these are commonly used.

  • find_rtools(), setup_rtools(), has_devel(), compiler_flags(), build() and with_debug() have moved to the new pkgbuild package. build() and with_debug() are re-exported by devtools

  • The spell_check() code has been moved into the new spelling package and has thereby gained support for vignettes and package wordlists. The devtools function now wraps spelling::spell_check_package().

Minor improvements and fixes

  • check_win_*() now build the package with manual = TRUE by default (#1890).

  • check() output now works more nicely with recent changes to rcmdcheck (#1874).

  • reload() now reloads loaded but not attached packages as well as attached ones.

  • Executed styler::style_pkg() to update code style (#1851, @amundsenjunior).

  • save_all() helper function wraps rstudioapi::documentSaveAll() calls (#1850, @amundsenjunior).

  • check() now allows users to run without --timings (#1655)

  • update_packages() better documented to advertise it can be used to update packages installed by any of the install_* functions.

  • check() gains a incoming option to toggle the CRAN incoming checks.

  • build_vignette() gains a keep_md option to allow keeping the intermediate markdown output (#1726)

  • remote_sha.github() now correctly looks up SHA in private repositories (#1827, @renozao).

  • devtools use_*() functions now temporarily set the active usethis project if given a pkg argument that is not the current directory. This provides backwards compatibility with previous behavior (#1823).

  • Vignettes are now built in a separate process, and the package is installed before building the vignettes (#1822)

  • build_readme() added to build the README.md from a README.Rmd (#1762)

  • build_vignettes() now has a clean and upgrade arguments, to control cleaning of intermediate files and upgrading vignette dependencies respectively. (#1770).

  • release() gains an additional question ensuring you updated codemeta.json if one exists (#1774, #1754)

  • test() now sets useFancyQuotes = FALSE to better mimic the environment tests are run under with R CMD check (#1735).

  • test() no longer passes encoding argument to testthat::test_dir() (#1776)

  • install_url() can now install package binaries on windows (#1765)

  • Fix skipping when installing from a full SHA (#1624)

  • add pkgdown::build_site() wrapper (@kiwiroy, #1777)

  • add pkgdown site (https://devtools.r-lib.org) (#1779, @jayhesselberth)

  • install_version() can now install current version of CRAN package on Windows and macOS (@jdblischak, #1730)

  • The CRAN-RELEASE file is now added to .Rbuildignore (#1711)

  • check() and check_built() now have an error_on argument to specify if they should throw an error on check failures. When run non-interactively this is set to "warnings" unless specified.

  • check() now sets _R_CHECK_CRAN_INCOMING_REMOTE_ instead of _R_CHECK_CRAN_INCOMING_on R versions which support the former option (#1271, #1276, #1702).

  • Now use cli package to draw rules - they are more aesthetically pleasing and the correct width in the RStudio build pane (#1627).

  • release() has been tweaked to reflect modern submission workflow and to ask questions rather than running code for you (#1632).

  • document(), load_all(), check(), build() and test() now automatically save open files when they are run inside the RStudio IDE. (#1576)

  • New check_rhub() function to check packages using https://builder.r-hub.io/.

  • run_examples was mistakenly passing show to pkgload::run_example, causing it to fail (@amcdavid, #1449)

  • New build_manual() function that produces pdf manual for the package (@twolodzko, #1238).

  • If you use git release() now generates a file called CRAN-RELEASE that reminds you to tag the commit that you submitted to CRAN (#1198).

  • release() once again looks for additional release questions in the correct environment (#1434).

  • submit_cran() now checks that you're ready to submit, since this is a potentially expensive operation (#1228)

  • check() defaults to running document() only if you have used roxygen previously (#1437).

  • Signal an error if commas are missing in between remote entries (#1511, @ianmcook).

  • build_vignettes() gains a quiet argument (#1543).

  • source_gist() works once more when there is only a single file in the gist (#1266).

  • In order to not run test helpers in document(), the helpers argument of  load_all() is set to FALSE (@nbenn, #1669)

  • The my_unzip() function is now able to use the utils::unzip fallback when R is compiled from source with no unzip package present (@theGreatWhiteShark, #1678)

  • If the foghorn package is installed, release() displays the results of the CRAN checks (#1672, @fmichonneau).

v2.0.1

5 years ago

This is a minor release mainly fixing bugs which snuck through in the devtools 2.0.0 release.

  • install() now correctly passes the upgrade parameter to remotes::install_deps() (@Paxanator, #1898).

  • install_deps() now again works from any directory within a package (#1905)

  • Add a RStudio addin for test_coverage().

  • All tests which use remote resources are now skipped on CRAN, to avoid spurious failures

v2.0.2

5 years ago
  • Two tests are not skipped when run on CRAN, as they fail due to an outdated pandoc and restrictions on writing to the package library respectively.

  • load_all() now accepts 'package' objects, regaining previous behavior in devtools prior to 2.0.0 (#1923)

  • test(), test_coverage() and test_coverage_file() now set the TESTTHAT_PKG environment variable, so it is more consistent with running the tests during R CMD check (testthat#787).

  • check() now replaces existing environment variables rather than appending them (#1914).

v1.13.5

6 years ago
  • Fix two test errors related to GitHub rate limiting and mocking base functions.

v1.13.4

6 years ago
  • Fix test errors for upcoming testthat release.

v1.13.3

6 years ago
  • Workaround a change in how Rcpp::compileAttributes() stores the symbol names that broke devtools tests.