From 8c9c04b49b903c33203619621e0a1d9b750f1b1d Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Thu, 9 Sep 2021 09:25:46 +0200 Subject: [PATCH] feat: disable pre-commit manager (#11616) Disables pre-commit manager by default. BREAKING CHANGE: pre-commit manager is no longer enabled by default, and must be opted into manually. --- lib/config/presets/internal/default.ts | 6 ++++++ lib/manager/pre-commit/index.ts | 4 ++++ lib/manager/pre-commit/readme.md | 20 +++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/config/presets/internal/default.ts b/lib/config/presets/internal/default.ts index 0c2b8000a6a062..633c53948bc1ae 100644 --- a/lib/config/presets/internal/default.ts +++ b/lib/config/presets/internal/default.ts @@ -33,6 +33,12 @@ export const presets: Record = { }, ], }, + enablePreCommit: { + description: 'Enable the pre-commit manager', + 'pre-commit': { + enabled: true, + }, + }, ignoreModulesAndTests: { description: 'Ignore `node_modules`, `bower_components`, `vendor` and various test/tests directories', diff --git a/lib/manager/pre-commit/index.ts b/lib/manager/pre-commit/index.ts index 10c753643b1d14..f8d1af666821f6 100644 --- a/lib/manager/pre-commit/index.ts +++ b/lib/manager/pre-commit/index.ts @@ -2,5 +2,9 @@ export { extractPackageFile } from './extract'; export const defaultConfig = { commitMessageTopic: 'pre-commit hook {{depName}}', + enabled: false, fileMatch: ['(^|/)\\.pre-commit-config\\.yaml$'], + prBodyNotes: [ + 'Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions.', + ], }; diff --git a/lib/manager/pre-commit/readme.md b/lib/manager/pre-commit/readme.md index 04146d3e4a1c2e..04d9d97af54097 100644 --- a/lib/manager/pre-commit/readme.md +++ b/lib/manager/pre-commit/readme.md @@ -1,4 +1,10 @@ -Renovate supports updating of Git dependencies within pre-commit configuration `.pre-commit-config.yaml` files or other YAML files that use the same format (via `fileMatch` configuration). +_Important note_: The `pre-commit` manager is disabled by default and must be opted into through config. +Renovate's approach to version updating is not fully aligned with `pre-commit upgrade` and this has caused frustration for `pre-commit`'s creator/maintainer. +Attempts to work with the `pre-commit` project to fix these gaps have been rejected, so therefore we have chosen to disable the manager by default indefinitely. +Please do not contact the `pre-commit` project/maintainer about any Renovate-related topic. +To view a list of open issues related to the `pre-commit` manager in Renovate, see the [filtered list using the `manager:pre-commit` label](https://github.com/renovatebot/renovate/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Amanager%3Apre-commit). + +When enabled, Renovate supports updating of Git dependencies within pre-commit configuration `.pre-commit-config.yaml` files or other YAML files that use the same format (via `fileMatch` configuration). Updates are performed if the files follow the conventional format used in typical pre-commit files: ```yaml @@ -8,3 +14,15 @@ repos: hooks: - id: some-hook-id ``` + +To enable the `pre-commit` manager, add the following config: + +```json +{ + "pre-commit": { + "enabled": true + } +} +``` + +Alternatively, add `:enablePreCommit` to your `extends` array.