Changelog
Source:NEWS.md
    pkgbuild 1.4.8
CRAN release: 2025-05-26
New
Config/build/never-cleanDESCRIPTIONoption to avoid adding--precleantoR CMD INSTALL(e.g., when header files have changed) (@krlmlr, #204).has_rtools()& co. now work correctly on aarch64 Windows, whenRTOOLS45_AARCH64_HOMEis not set (@remlapmot, #203).pkg_build()andpkgbuild_processnow work corrently when building binary packages from non-standard file names (#208).
pkgbuild 1.4.7
CRAN release: 2025-03-24
pkgbuild now supports R 4.5.x and Rtools45.
has_build_tools()(and related functions) now do not explicitly check for Rtools on Windows and R 4.3.0 and later, but rather they try to compile a simple package, like on Unix, for #199.
pkgbuild 1.4.5
CRAN release: 2024-10-28
pkgbuild now does a better job at finding Rtools 4.3 and 4.4 if they were not installed from an installer.
pkgbuild now detects Rtools correctly from the Windows registry again for Rtools 4.3 and 4.4
pkgbuild 1.4.3
CRAN release: 2023-12-10
- pkgbuild now does not need the crayon, rprojroot and prettyunits packages.
 
pkgbuild 1.4.2
CRAN release: 2023-06-26
- Running 
bootstrap.Rnow works withpkgbuild_process, so it also works from pak (https://github.com/r-lib/pak/issues/508). 
pkgbuild 1.4.1
CRAN release: 2023-06-14
New
Config/build/extra-sourcesDESCRIPTIONoption to make pkgbuild aware of extra source files to consider inneeds_compile().New
Config/build/bootstrapDESCRIPTIONoption. Set it toTRUEto runRscript bootstrap.Rin the package root prior to building the source package (#157, @paleolimbot).pkgbuild now supports Rtools43.
pkgbuild now always appends its extra compiler flags to the ones that already exist in the system and/or user
Makevarsfiles (#156).
pkgbuild 1.4.0
CRAN release: 2022-11-27
- 
pkgbuild can now avoid copying large package directories when building a source package. See the
PKG_BUILD_COPY_METHODenvironment variable in?buildor the package README (#59).This is currently an experimental feature, and feedback is appreciated.
 R CMD buildwarnings can now be turned into errors, by setting thepkg.build_stop_for_warningsoption toTRUEor by setting thePKG_BUILD_STOP_FOR_WARNINGSenvironment variable totrue(#114).need_compile()now knows about Rust source code files, i.e.Cargo.tomland*.rs(#115).Now
pkgbuild::build()will not clean upinst/docby default if theConfig/build/clean-inst-docentry inDESCRIPTIONis set toFALSE(#128).New
PKG_BUILD_COLOR_DIAGNOSTICSenvironment variable to opt out from colored compiler output (#141).pkgbuild now works with a full XCode installation if the XCode Command Line Tools are not installed, on macOS, in RStudio (#103).
pkgbuild 1.3.1
CRAN release: 2021-12-20
- 
Accept Rtools40 for R 4.2, it works well, as long as the PATH includes both
${RTOOLS40_HOME}/usr/binand${RTOOLS40_HOME}/ucrt64/bin. E.g.~/.Renvironshould contain nowPATH="${RTOOLS40_HOME}\usr\bin;${RTOOLS40_HOME}\ucrt64\bin;${PATH}"to make Rtools40 work with both R 4.2.x (devel currently) and R 4.1.x and R 4.0.x.
 
pkgbuild 1.3.0
CRAN release: 2021-12-09
pkgbuild now supports Rtools 4.2.
pkgbuild now returns the correct path for R 3.x (#96).
build()now always returns the path of the built package (#108).pkgbuild output now looks better in
.Rmddocuments and in general in non-dynamic terminals. You can also force dynamic and non-dynamic output now (#64).pkgbuild does not build the PDF manual now if
pdflatexis not installed, even ifmanual = TRUE(#123).
pkgbuild 1.2.0
CRAN release: 2020-12-15
- pkgbuild is now licensed as MIT (#106)
 - 
compile_dll()gains adebugargument for more control over the compile options used (@richfitz, #100) - 
pkgbuild_process()andbuild()now use colored compiler diagnostics if supported (#102) - Avoid documentation link ambiguity in R 4.1 (#105)
 
pkgbuild 1.1.0
CRAN release: 2020-07-13
- 
compile_dll()now supports automatic cpp11 registration if the package links to cpp11. - 
rtools_neededreturns correct version instead of “custom” (@burgerga, #97) 
pkgbuild 1.0.6
CRAN release: 2019-10-09
- Support for RTools 40 and custom msys2 toolchains that are explicitly set using the 
CCMakevars (#40). 
pkgbuild 1.0.5
CRAN release: 2019-08-26
- 
check_build_tools()gains aquietargument, to control when the message is displayed. The message is no longer displayed whencheck_build_tools()is called internally by pkgbuild functions. (#83) 
pkgbuild 1.0.4
CRAN release: 2019-08-05
build()gains aclean_docargument, to control if theinst/docdirectory is cleaned before building. (#79, #75)build()andpkgbuild_processnow have standard output and error are correctly interleaved, by redirecting the standard error of build process to the standard output (@gaborcsardi, #78).check_build_tools()now has a more helpful error message which points you towards ways to debug the issue (#68).pkgbuild_processnow do not set custom compiler flags, and it uses the user’sMakevarsfile (@gaborcsardi, #76).rtools_path()now returnsNAon non-windows systems and also works whenhas_rtools()has not been run previously (#74).
pkgbuild 1.0.2
CRAN release: 2018-10-16
build()andcompile_dll()gain aregister_routinesargument, to automatically register C routines withtools::package_native_routines_registration_skeleton()(#50)build()will now warn if trying to build packages on R versions <= 3.4.2 on Windows with a space in the R installation directory (#49)build()will now message if a build contains long paths, which are unsupported on windows (#48)compile_dll()no longer doubles output, a regression caused by the styling callback. (https://github.com/r-lib/devtools/issues/1877)build()output is now styled like that in the rcmdcheck package (https://github.com/r-lib/devtools/issues/1874).
pkgbuild 1.0.1
CRAN release: 2018-09-18
Preliminary support for rtools 4.0 (#40)
compile_dll()now does not supply compiler flags if there is an existing user defined Makevars file.local_build_tools()function added to provide a deferred equivalent towith_build_tools(). So you can add rtools to the PATH until the end of a function body.
pkgbuild 1.0.0
CRAN release: 2018-06-27
Add metadata to support Rtools 3.5 (#38).
build()only uses the--no-resave-dataargument inR CMD buildif the--resave-dataargument wasn’t supplied by the user (@theGreatWhiteShark, #26)build()now cleans existing vignette files ininst/docif they exist. (#10)clean_dll()also deletessymbols.rdswhich is created whencompile_dll()is run inside ofR CMD check.First argument of all functions is now
pathrather thanpkg.