Skip to content

Releases: r-lib/devtools

devtools 2.2.1

24 Sep 17:01
Compare
Choose a tag to compare
  • 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)

devtools 2.2.0

09 Sep 15:03
Compare
Choose a tag to compare

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).

devtools v2.1.0

30 Jul 15:22
Compare
Choose a tag to compare

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.

devtools v2.0.2

10 Apr 13:25
Compare
Choose a tag to compare
  • 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).

devtools v2.0.1

10 Apr 13:25
Compare
Choose a tag to compare

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

devtools v2.0.0

10 Apr 13:26
Compare
Choose a tag to compare

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).

devtools v1.13.6

10 Apr 13:27
Compare
Choose a tag to compare
  • Compatibility for git2r versions 0.22.0+
  • Fix test errors related to GitHub SSLv1 changes with git2r versions =< 0.21.0.

Devtools 1.13.5

19 Feb 15:02
Compare
Choose a tag to compare
  • Fix two test errors related to GitHub rate limiting and mocking base functions.

Devtools 1.13.4

09 Nov 19:03
Compare
Choose a tag to compare
  • Fix test errors for upcoming testthat release.

Devtools v1.13.3

02 Aug 15:35
Compare
Choose a tag to compare
  • Workaround a change in how Rcpp::compileAttributes() stores the symbol names that
    broke devtools tests.