From 4002f1bc0483096705eccd0577e46a969f4c2add Mon Sep 17 00:00:00 2001 From: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> Date: Mon, 9 May 2022 13:17:40 +0200 Subject: [PATCH] docs: create key concept page for presets (#15396) --- docs/usage/config-presets.md | 28 +++++++-------------- docs/usage/key-concepts/presets.md | 40 ++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 docs/usage/key-concepts/presets.md diff --git a/docs/usage/config-presets.md b/docs/usage/config-presets.md index 5f6cadfb20..ce255e710b 100644 --- a/docs/usage/config-presets.md +++ b/docs/usage/config-presets.md @@ -5,14 +5,8 @@ description: Renovate's support for ESLint-like shareable configs # Shareable Config Presets -Renovate's "config presets" are a convenient way to distribute config for reuse across multiple repositories. -It is similar in design to ESLint's shareable configs, and can be used for whole repository configs and for individual rules. -They are defined using the `extends` array within config and may also be nested. - -In short: - -- Browse [Renovate's default presets](https://docs.renovatebot.com/presets-default/) to find any that are useful to you -- Publish your own if you wish to reuse them across repositories +This document describes how to configure your shared presets. +Read the [Key concepts, presets](./key-concepts/presets.md) page to learn more about presets in general. Shareable config presets can only be used with the JSON format, other formats are not supported. @@ -25,19 +19,15 @@ Shareable config presets can only be used with the JSON format, other formats ar !!! info We've deprecated the use of a `renovate.json` file for presets as this can cause issues if the repository configuration uses a `renovate.json` file as well. -## Goals of Preset Configs - -The main reason for supporting preset configs is to decrease duplication. -By using a preset config you: - -1. Avoid duplicating the same config across all your repositories -2. Can use someone else's configuration and extend it - -Renovate's configuration is self-documenting, because you can fill in the `"description"` field in all preset configs. +<!-- prettier-ignore --> +!!! tip + Describe what your preset is doing by using the `"description"` field. + This way your configuration is self-documenting. -## Implementation Approach +## Extending from a preset -In order to achieve these goals, preset configs allow for a very modular approach - preset configs can be as small as a partial package rule or as large as an entire configuration, like an ESLint config. +To use a preset put it in an `extends` array within your Renovate config. +Presets can be nested. ## Preset Hosting diff --git a/docs/usage/key-concepts/presets.md b/docs/usage/key-concepts/presets.md new file mode 100644 index 0000000000..edff5f3748 --- /dev/null +++ b/docs/usage/key-concepts/presets.md @@ -0,0 +1,40 @@ +--- +title: Presets +description: Learn about Renovate configuration presets +--- + +This document describes Renovate configuration presets and why you should use them. + +To learn how to create your own presets, how to host them, and how to extend from presets read the [Shareable Config Presets](./config-presets.md) page. + +## Why you should use presets + +Use presets to: + +- Set up the bot with good default settings +- Reduce duplication of your configuration +- Share your configuration with others +- Use somebody else's configuration and extend it with your own rules + +## Managing config for many repositories + +If you manage Renovate for many repositories, then you should create a global preset configuration. +Then you extend the global preset in each repository. +This way you have all global configuration in a single file, in a single repository. + +## Presets are modular + +Preset configs are modular, they can be as small as a single package rule or as large as an entire configuration, just like an ESLint config. + +## Built-in presets + +Renovate comes with a lot of built-in presets that you can use. +Browse [Renovate's default presets](https://docs.renovatebot.com/presets-default/) to find any that are useful to you. +Once you find a preset you like, put it in an `extends` array in your config file. + +## Summary + +In short: + +- Browse [Renovate's default presets](https://docs.renovatebot.com/presets-default/) to find any that are useful to you +- Publish your own if you wish to reuse them across repositories -- GitLab