10000 GitHub · Where software is built
[go: up one dir, main page]

Skip to content
Global R upgrade breaks pre-commit #3206
@lorenzwalthert

Description

@lorenzwalthert

search you tried in the issue tracker

break class update / 2, second upgrade

describe your issue

R is currently implemented as a second class language, i.e. global interpreter required but packages are bootstrapped by pre-commit in virtual environment with {renv}. R packages are installed for a minor version, e.g. R 4.3 and R is not referenced version-specific on the $PATH usually. Hence, updating R means you have to install all these packages again, otherwise your code just won't work (as R on the $PATH now points to the updated R version). However, pre-commit does not know you just updated R and will fail (unless you already used {renv} to update all required dependencies (e.g. for another project) and have not opted out of the {renv} cache). Currently, the clean solution seems to run pre-commit clean (for all hooks since #2338 got rejected). I wonder if other second class languages have similar characteristics. Can pre-commit recognise that the global R version changed and then just re-install that specific environment or at least give helpful error messages?

Downstream reference: lorenzwalthert/precommit#567

pre-commit --version

pre-commit 3.3.3

.pre-commit-config.yaml

repo: https://github.com/lorenzwalthert/precommit

~/.cache/pre-commit/pre-commit.log (if present)

spell-check..............................................................Failed

  • hook id: spell-check
  • exit code: 1

ℹ Using R 4.4.0 (lockfile was generated with R 4.3.3)
ℹ Using R 4.4.0 (lockfile was generated with R 4.3.3)
Error in loadNamespace(x) : there is no package called ‘precommit’
Calls: loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0