Releases: r-lib/devtools
devtools 2.2.1
-
test()
now sets the collation order toC
before running, which matches
the behavior of tests when run withR CMD check
(#2121) -
New
options("devtools.ellipsis_action")
option added to control the action
of ellipsis in devtools. This should be one ofrlang::abort
- to emit an error if arguments are unusedrlang::warn
- to emit a warning if arguments are unusedrlang::inform
- to emit a message if arguments are unusedrlang::signal
- to emit a message if arguments are unused
Usingrlang::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 deprecateddr_devtools()
(#2105) -
test()
now explicitly passesstop_on_failure = FALSE
to
testthat::test_dir()
(@jameslamb, #2099)
devtools 2.2.0
New Features
-
create()
added back, the RStudio IDE usescreate()
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()
anddr_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 aquiet
parameter, to silence output andcheck()
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 whentools::undoc()
returns empty results
(#1944). -
check_win_*()
functions gain aemail
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 whenpkg
is not the current working directory
(#1974). -
release()
now works without error whenoptions("repos")
is unnamed (#1956).
devtools v2.1.0
New Features
testthat
androxygen2
are now added toImports
rather thanSuggests
,
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 inrelease()
now has clearer synonyms for "yes" (@mattmalin, #1993)
Minor improvements and fixes
-
check_rhub
gains a new argumentbuild_args
for arguments passed to
R CMD build
....
is now passed torhub::check_for_cran()
(@gaborcsardi, @maelle, #2041) -
build_manual()
now fails if the manual fails to build. (#2056) -
test_file()
andtest_coverage_file()
now work with C
and C++ files in the src/ directory as well.
devtools v2.0.2
-
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()
andtest_coverage_file()
now set the
TESTTHAT_PKG
environment variable, so it is more consistent with running
the tests duringR CMD check
(testthat#787). -
check()
now replaces existing environment variables rather than appending
them (#1914).
devtools v2.0.1
This is a minor release mainly fixing bugs which snuck through in the devtools
2.0.0 release.
-
install()
now correctly passes theupgrade
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
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 useNcpus
, which is passed by...
toinstall.packages()
metadata
-> Removedout_dir
-> Removedskip_if_log_exists
-> Removed
-
check()
argumentcheck_version
has been renamed toremote
to better
describe what tests are disabled (#1811) -
get_path()
,set_path()
,add_path()
andon_path()
have been removed,
this functionality is available withwithr::with_path()
(#1796). -
The
lang
argument tospell_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()
andevalq_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 tocheck_win_release()
,check_win_devel()
,
andcheck_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()
andsystem_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()
andtest_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 usingdevtools::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()
andunload()
have been moved to pkgload, but devtools
provides shims since these are commonly used. -
find_rtools()
,setup_rtools()
,has_devel()
,compiler_flags()
,
build()
andwith_debug()
have moved to the new pkgbuild package.
build()
andwith_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 wrapsspelling::spell_check_package()
.
Minor improvements and fixes
-
check_win_*()
now build the package withmanual = 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 wrapsrstudioapi::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 theinstall_*
functions. -
check()
gains aincoming
option to toggle the CRAN incoming checks. -
build_vignette()
gains akeep_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 aclean
andupgrade
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 setsuseFancyQuotes = FALSE
to better mimic the environment tests
are run under withR CMD check
(#1735). -
test()
no longer passes encoding argument totestthat::test_dir()
(#1776) -
install_url()
can now install package binaries on windows (#1765) -
Fix skipping when installing from a full SHA (#1624)
-
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()
andcheck_built()
now have anerror_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()
andtest()
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 passingshow
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 calledCRAN-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 runningdocument()
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()
, thehelpers
argument of
load_all()
is set toFALSE
(@nbenn, #1669) -
The
my_unzip()
function is now able to use theutils::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
- 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
- Fix two test errors related to GitHub rate limiting and mocking base functions.
Devtools 1.13.4
- Fix test errors for upcoming testthat release.
Devtools v1.13.3
- Workaround a change in how
Rcpp::compileAttributes()
stores the symbol names that
broke devtools tests.