parsable-R hook now gives more context on where and how
parsing fails (#423).Thanks to @danielinteractive, @jonocarroll for their contributions.
User visible changes
.pre-commit-config.yaml templates now contain hook to
validate the pre-commit.ci
configuration (#407).Bug fixes
spell-check hook is case-insensitive
on all operating systems. This may re-order your whole
inst/WORDLIST (#405).forbid-to-commit in template
.pre-commit-config.yaml has now the correct
exclude-files regular expression to ignore
.csv, .RData, .Rds,
.rds and .Rhistory (#410).Internals
options(install.packages.compile.from.source = "never")
is used in the CI to avoid failing builds due to missing build-time deps
(#412).Thanks to @danielinteractive and @mpadge for their contributions.
API changes
style-files hook now takes
ignore-start and ignore-stop arguments, passed
to options("styler.ignore_start") and
options("styler.ignore_stop"). By default, {styler}
defaults are used.use_precommit() now exposes the argument
autoupdate, defaulting to TRUE (which was the
previous behavior). This tells {precommit} whether or not to run
autoupdate() as part of the former function invocation
(#386).New features
no-debug-statement checks for leftover
debug() and debugonce() statements in the
committed code (#385, @lukasfeick-sw)..pre-commit-config.yaml does now include
the hook file-contents-sorter to sort
.Rbuildignore (#366)..pre-commit-config.yaml default to monthly
hook updates (instead of weekly) to avoid notification triggers and git
version convolution (#370).language: r
(#350).Documentation
Bug fixes
R as a dependency with
snippet_generate("additional-deps-roxygenize") (#358).roxygenize hook now fails if it generates an
.Rd file that is not tracked with version control
(#363).deps-in-desc and parsable-R can now handle
code chunk headers with where purl or eval are
not literals like TRUE, but variables defined elsewhere in
code (#361, #382).deps-in-desc now prints the original file (not a
tempfile) also for .Rmd and .Rnw files.Thanks to all people who contributed to this release: @assignUser, @danhalligan, @gravesti, @hadley, @KyleDCox, @lorenzwalthert, @lukasfeick-sw, @MarkMc1089, @pat-s, @RoyalTS, and @smingerson.
This is a maintenance release on the request of CRAN (#337) and to
improve experience with the language: r switch conducted in
v0.2.0. In particular, note that projects using {renv} and
RStudio are not very compatible with hook versions > 0.1.3.9014 and
autoupdate() results in downgrading the hook versions
(#346).
API Changes
--no-warn-cache in the
style-files and the roxygenize hook is
deprecated and will be removed in a future release. Please remove it
from your .pre-commit-config.yaml (#340. #341).Other changes
style-files hook fails more informatively if required
package is not listed in additional_dependencies:
(#333).deps-in-desc always excludes README.md
(#336).roxygenize problem handling (#338).snippet_generate("additional-deps-roxygenize") (#344)Thanks to all people who contributed to this release:
@lorenzwalthert, @pat-s, and @smingerson.
This version marks the switch to language: r of all
existing hooks. This means two things:
pre-commit >= 2.11.1 (ideally even
>= 2.13.0). See *Installation/Update** below (#233,
#250, #260, #264, #273, #315, #313, #308, #301, #300, #295, #285,
#328).style-files). See
vignette("ci") for a comparison of the two services
(#318).API changes
use_precommit() gains a new argument ci
defaulting to "native" (for pre-commit) to set up continuous
integration. Other allowed values are "gha" (forNULL (for no CI).use_ci(ci = "native") can be
used to set up continuous integration for existing repos. The default
behavior for ci for both functions is governed by the R
option precommit.ci.version_precommit() and update_precommit()
are new functions to check the version of the installed pre-commit
executable and to update it (#197).style-files hook gains an argument
--cache-root that is passed to
options(styler.cache_root = ...) (#305).style-files hook now supports the full style_file()
API, e.g. you can supply --scope=spaces and similar via
args: in your .pre-commit-config.yaml. See the
docs
for details.style-files and roxygenize hooks now warn
if there is no permanent {R.cache} cache set up. You can
silence the warning with the hook argument --no-warn-cache
(#225).Installation/Update
Please follow the update instructions or installation instructions depending on whether or not you previously used pre-commit.
Major changes
roxygenize hook runs pkgload::load_all(), you
need to list all dependencies of your package in
additional_dependencies field in
.pre-commit-config.yaml. You will be prompted to add them
if they are missing,
precommit::snippet_generate("additional-deps-roxygenize")
generates the code you can copy/paste (#247, #248, #249).parsable-R hook can now also parse
.Rmd files (#325).use_precommit(..., install_hooks = TRUE) is no longer
blocking by default. New option
precommit.block_install_hooks (defaults to
FALSE) governs the behavior (#312).inst/WORDLIST (#303)..lintr and .gitlab-ci.yml are not ignored
in the spell check hook (#317).Unknown or uninitialised column: text (#268).deps-in-desc now checks .Rprofile,
.Rmd and .Rnw files in addition to
.R files (#216)..Rmd,
.Rnw and .Rprofile files (#287).{renv} infra files are not checked anymore by default
in the template config files (#237)..png, .jpeg, .pdf and files
in .github/workflows are no longer spell-checked in the
template config file (#276).Minor changes
fs >= 1.5.1
(#330).exclude: pattern of the spell
check hook are now ordered alphabetically (#276).deps-in-desc hook now points to the hook argument
--allow_private_imports when the hook fails due to private
imports (#254).lorenzwalthert/precommit. This does not affect
users directly (#430).A big hand to all the contributors of this release:
@adamblake, @arbues6, @b4D8, @bart1, @dhersz, @joelnitta, @jucor, @lorenzwalthert, @lukasfeick-sw, @MarkMc1089, @njtierney, @pat-s, @pwildenhain, and @rossdrucker
For previous versions of NEWS.md with news bullet per
patch release, see the latest
NEWS.md before gathering.
This is mainly a CRAN maintenance release because of #201 and includes some bug fixes and no API changes.
A big hand to all the contributors of this release: @fschoner, @krzyslom, @lorenzwalthert, @maurolepore, @pat-s, and @zkamvar.
Minor Changes
use_precommit() should now work as
expected (#185).use_precommit() now writes to the right
.Rbuildignore when root is not the current
working directory (#188, @krzyslom).precommit::uninstall_precommit() now correctly removes
^\\.pre-commit-config.yaml$from .Rbuildignore
and does not show a prompt (#199).Initial CRAN release. See https://lorenzwalthert.github.io/precommit/.
Major Changes
use_precommit() gains new
install_hooks = TRUE parameter. Now all hook environments
defined in yaml config are by default installed in advance. (#163)Breaking Changes
uninstall_precommit()’s scope argument
value "global" was renamed to "user".Major Changes
.pre-commit-config-config.yaml for the spell check
hook for easy manipulation. Also, additional patterns were excluded such
as .sh (#157).Minor Changes
DESCRIPTION now links the pkgdown website in addition
to the GitHub repo (#155)..Renviron, .Rrofile, .RData,
.feather and .Rds is now also excluded from
the spell checking hook.Breaking Changes
A major API review was conducted to make the package ready for a CRAN submission in #152:
path_root renamed to
root.root now always defaults to
here::here() for consistency.config_source was renamed to
config_source in use_precommit_config() and
use_precommit().use_precommit_config’s argument force
gains a default value for consistency with
use_config().use_precommit_config’s argument verbose
now is in the same position as in use_config().Additional breaking changes are:
r-precommit instead of
r-reticulate to avoid conflicts with other packages
commonly installed in r-reticulate (#147).spell-check does no longer take the hook
argument ignore-files since this was inconsistent with the
pre-commit framework. To exclude additional files, specify the
exclude: key in your .pre-commit-config.yaml
file. If you like to keep excluding the default files, make sure you
include the default
regex (#153).git diff --cached
contains roxygen comments (#151).Test release process.
use_precommit() gains new argument
config_source to copy an existing config file into the repo
at initialization. The argument defaults to
options('precommit.config_source') to make it easy for
users to use their preferred hooks in every repo they initialize
(#111).r-precommit env if not existent before
installing into it (#114)..pre-commit-config.yaml includes hook to check
files have a EOF blank line (#126).path_pre_commit_exec() in favor of
path_precommit_exec() and adapt internals to replace
pre_commit with precommit (#130).BREAKING: If you used precommit < 0.0.0.9017
(and if you choose a different installation strategy than
precommit::install_precommit()), you can link your existing executable by setting the R optionprecommit.executable`
to the path where you stored the pre-commit executable.
Adding tools to work with hooks:
install_precommit(), use_precommit(),
uninstall_precommit(), open_config() and
open_wordlist() using conda environments on all
platforms.
Make repo a fully R CMD CHECK compliant R package (includes
moving hooks to inst/bin from bin.)
renamed repo from pre-commit-hooks to precommit.
added pkgdown website, restructured README.