# devtools 2.4.2
* `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.
# devtools 2.4.1
* `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
## 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](https://github.com/r-lib/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.1
* `Run* `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
# devtools 2.3.0
* `build()` now errors with a more informative error message when passed an
invalid `pkg`. (#2177)
* New `build_rmd()` can build any `.Rmd` file in a clean session.
* `dev_sitrep()` now works correctly when R is out of date (#2204)
# devtools 2.2.2
* `install_dev_deps()` now passes formal args onto `remotes::install_deps()`
(@t-gibson, #2166)
* `spell_check()` now checks if `spelling` is installed and prompts users to
install it if not (@mikemahoney218, #2172)
* `submit_cran()` now returns a more informative error when the CRAN submission
portal is down (#1958)
* `check()` gains a `vignettes` argument, to more easily disable checks for
vignettes (#2165).
* `check_win_*()` function now resets the email to the original email after
execution (@muschellij2, #2152).
* `check()` now sets `NOT_CRAN=true` by default, as was originally intended (#2135).
* `install_deps()` now supports `options("devtools.ellipsis_action")` as well
(#2169)
* `test()` now takes `stop_on_failure` as a formal argument (FALSE by default)
instead of in `...`. Its value is still passed to `testthat::test_dir` as
before (@infotroph, #2129).
* `test()` and `test_coverage_file()` gain a `export_all` argument, which
controls if all functions in a package are automatically exported (#1201).
* `dev_sitrep()` now works if run outside a package directory (#2127).
* `release()` now works if the package root is not in the working directory.
(pkgsrc changes)
- Add three DEPENDS, and add 6 TEST_DEPENDS. But test needs more.
(upstream changes)
# devtools 2.2.1
* 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
## 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).
* `create()` added, the RStudio IDE uses `create()`, so removing it in version 2.1.0
broke old versions of the IDE.
* In several places `http:` URLs were used instead of `https:`, the most
critical being in the `cran_mirror`, `cran_pacakges`, and `cran_submission_url`
values which could have enabled discrete activity disclosure and person-in-the-middle
attacks (i.e. changing the contents while uploading/downloading). All `http:`
URLS have been changed to `https:` URLs. (@hrbrmstr, #2091)