Skip to content

Releases: lorenzwalthert/precommit

{precommit} 0.4.2 (2024-04-10)

12 Apr 19:14
5978586
Compare
Choose a tag to compare

Release relax the dependency on third-party error messages in our unit tests (#555).

Thanks @hadley, who asked for this fix, as it broke the dev version of {pkgdown}.

{precommit} v0.4.1 (2024-04-01)

01 Apr 01:56
3cc33e7
Compare
Choose a tag to compare

This release ensures unit tests can handle the error messages from {styler} correctly that were modified slightly. Apart from hook dependency updates, this release adds no user-facing changes.

Thanks @joshpersi for contributing to this release.

{precommit} v0.4.0 (2024-01-21)

21 Jan 15:05
d9659eb
Compare
Choose a tag to compare

Apart from two new hooks, many bug fixes and a few minor features, this release
focused on improving the user experience when installing the hooks, which caused
users the most troubles. We enabled fast hook installation without the need for build
time or system dependencies on all platforms thanks to the Posit Package Manager
and removal of dependencies {git2r} and {digest}.

Features

  • New hook: no-print-statement discovers and check for rogue print
    statements (#505).
  • New hook: pkgdown runs pkgdown::check_pkgdown() to ensure the {pkgdown}
    config is valid (#393).
  • add Posit CRAN mirror to ensure macOS binary installs are possible (#488).
  • codemeta-description-updated, roxygenize, and use-tidy-description now
    all support a root argument that specifies the directory in the git repo
    that contains the R package. Defaults to . since for most R package git
    repos, the git and R package root coincide (#432, #438).
  • style-files now supports styling of R code in Quarto docs (#449).
  • style-files now supports file names with spaces (#516).
  • Use python 3.10 by default for conda envs (#477).

Bug Fixes

  • Make sorting consistent with spelling::update_wordlist (#514).
  • Don't depend on dev version of styler to avoid GitHub rate limit hit (#486).
  • fix roxygenize cache invalidation (#464, #520).
  • fix missing namespace prefixing in roxygen hook (#525).

Documentation

  • improve spelling (#453).
  • use_ci() is now documented to take NA, not NULL for argument
    ci (#431).
  • correct typo (#465) and fix error message (#470).

Dependencies

Infrastructure

  • Refactored hook dependency update scripts and fixed bug with repos.
  • Automatic hook dependency updates (#539, #532).
  • use ubuntu-latest instead of pinned version for tests (#481).
  • use new {pkgdown} hook in this repo (#460).
  • read-only flag for testing (#529).
  • Bump actions/checkout (#509, #458) and others (#533).
  • ensure local and remote pre-commit execution are the same for this repo
    (#463).

Other

  • Adjust to latest {roxygen2} CRAN release (#536).

Changelog from dev releases is collapsed into this patch release at the time
this release is created. If you need releases by dev release, i.e. 0.3.2.x,
checkout this file at git tag v0.3.2.9020.

A big thanks goes to all people who made this release reality:

@AliSajid, @averissimo, @clarkliming, @danielinteractive, @denn173, @EzicJ, @fabianegli, @hadley, @IndrajeetPatil, @jashapiro, @joelnitta, @jonathanckt, @jsnel, @kcphila, @KoderKow, @KyleDCox, @m-muecke, @mythichamster, @ns-rse, @russHyde, @sempwn, @stefanoborini, @thefabnab, @TNonet, @TymekDev, @yogat3ch.

{precommit} v0.3.2 (2022-07-01)

02 Jul 10:19
9ba3f22
Compare
Choose a tag to compare
  • parsable-R hook now gives more context on where and how parsing
    fails (#423).
  • fixed R CMD check issues in devel (#425).
  • move from experimental to stable (#426).

Thanks to @danielinteractive, @jonocarroll for their contributions.

{precommit} v0.3.1 (2022-06-15)

15 Jun 21:04
6d170d1
Compare
Choose a tag to compare

User visible changes

  • .pre-commit-config.yaml templates now contain hook to validate the pre-commit.ci configuration (#407).
  • {git2r} is no longer needed for user side (#417).

Bug fixes

  • Fix bug that prevented pkg load outside directories with precommit files (@mpadge, #413).
  • Ensure sorting for spell-check hook is case-insensitive on all operating systems. This may re-order your whole inst/WORDLIST (#405).
  • hook 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).
  • All (R)md files in that repo are now formatted in a pandoc-compliant
    way (#415).

Thanks to @danielinteractive and @mpadge for their contributions.

{precommit} v0.3.0 (2022-05-20)

20 May 11:33
Compare
Choose a tag to compare

API changes

  • The 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

  • New hook no-debug-statement checks for leftover debug() and debugonce() statements in the committed code (#385,
    @lukasfeick-sw).
  • The template .pre-commit-config.yaml does now include the hook file-contents-sorter to sort .Rbuildignore (#366).
  • The template .pre-commit-config.yaml default to monthly hook updates (instead of weekly) to avoid notification triggers and git
    version convolution (#370).
  • The codemeta hook was ported to language: r (#350).

Documentation

  • Refactor README into new README and a Get started vignette (#388).
  • Document advantages of pre-commit in vignette (#379).

Bug fixes

  • Don't include 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).
  • Improved compatibility with {renv} (#359, #375, #400).
  • 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.

precommit v0.2.2 (2021-12-14)

15 Dec 13:14
Compare
Choose a tag to compare

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. Also note that projects using {renv} and RStudio are not very compatible with hook versions > 0.1.3.9014. For that reason, autoupdate() results in downgrading the hook versions in these situations (#346).

API Changes

  • The argument --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).
  • configure all git operations to use LF (#337).
  • deps-in-desc always excludes README.md (#336).
  • Document timeout and other problems with pre-commit.ci (#335).
  • simplify roxygenize problem handling (#338).
  • More executables on macOS are detected (#344).
  • Only hard dependencies are generated with snippet_generate("additional-deps-roxygenize") (#344)

Thanks to all people who contributed to this release:

@lorenzwalthert, @pat-s, and @smingerson.

precommit v0.2.0 (2021-12-01)

01 Dec 11:13
Compare
Choose a tag to compare

This version marks the switch to language: r of all existing hooks. This means two things:

  • creation of isolated pre-commit environments: No more manual dependency management for hooks nor conflicts with your global R library and more consistent output of hooks from different collaborators in a project. Thanks to {renv}'s excellent caching, this hardly consumes any space and is fast. This requires the Python package 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).
  • support for continuous integration via pre-commit.ci and GitHub Actions, that is, running the pre-commit hooks as part of a CI pipeline. This means that hook passing can be enforced for pull requests, even if the creator did not run the hooks locally. Further, the diff from running the hooks is committed and pushed back to the remote repository. This may fix the failing hook problems in some cases (e.g. 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" (for GitHub Actions) or NULL (for no CI).
  • The new exported function 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

  • Because hooks run in a virtual environment and the 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).
  • the parsable-R hook can now also parse .Rmd files (#325).
  • In order to avoid multiple installations of the pre-commit framework, a warning is issued if multiple are found so the user can remove them (#266, #273, #277, #278).
  • use_precommit(..., install_hooks = TRUE) is no longer blocking by default. New option precommit.block_install_hooks (defaults to FALSE) governs the behavior (#312).
  • Always sort inst/WORDLIST (#303).
  • .lintr and .gitlab-ci.yml are not ignored in the spell check hook (#317).
  • Warnings are no longer promoted to errors in the styler hook, which is particularly relevant for the apparently random error Unknown or uninitialised column: text (#268).
  • deps-in-desc now checks .Rprofile, .Rmd and .Rnw files in addition to .R files (#216).
  • the lintr and styler hook now also check .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

  • rename default branch to main (#307).
  • Use dev version of {lintr} to reduce total dependencies from 71 to 59 that brings down install time.
  • The location of the pre-commit executable is now also recognized on Apple Silicon when installed with Homebrew (#240).
  • The location of the pre-commit executable is now also recognized on macOS when installed with pip3 and fs >= 1.5.1 (#330).
  • pinning python version to 3.9 for conda until problems related to 3.10 are fixed (#310).
  • The cache for the roxygen2 hook is now also invalidated for changes in formals if there are no changes in roxygen comments (#214).
  • All sub-patterns in the exclude: pattern of the spell check hook are now ordered alphabetically (#276).
  • The deps-in-desc hook now points to the hook argument --allow_private_imports when the hook fails due to private imports (#254).
  • roxygenize hook is now fully tested (#267).
  • Hook scripts were relocated and R hooks now have a file extension (#280).
  • Hook dependency updates are proposed by an automatic monthly pull request to lorenzwalthert/precommit. This does not affect users directly (#430).
  • Updated GitHub Action workflows (#288).
  • Use LF line endings in git config to ensure passing tests on Windows for R devel (#321).
  • fixing typos (#289).
  • fix R CMD Check (#284).

A big hand to all the contributors of this release:

@adamblake, @arbues6, @b4D8, @bart1, @dhersz, @github-actions[bot], @joelnitta, @jucor, @lorenzwalthert, @lukasfeick-sw, @MarkMc1089, @njtierney, @pat-s, @pre-commit-ci[bot],@pwildenhain, and @rossdrucker

For previous versions of NEWS.md with news bullet per patch release, see the latest NEWS.md before gathering.

precommit v0.1.3 (2020-10-10)

10 Oct 20:28
Compare
Choose a tag to compare

This is mainly a maintenance release. See the release notes for details.

Thanks to all people who contributed to this release:

@fschoner, @krzyslom, @maurolepore, and @pat-s.

precommit v0.1.2 (2020-06-13)

13 Jun 18:18
Compare
Choose a tag to compare

This is the initial CRAN release of {precommit}. Reade more about it in the blog post. Thanks to all contributors:

@alessap, @DaveParr, @dfrankow, @dirkschumacher, @fschoner, @jonmcalder, @krzyslom, @maelle, @maurolepore, @michaelquinn32, @mikekaminsky, @pat-s, @tblazina, and @zkamvar