diff --git a/docs/usage/config-presets.md b/docs/usage/config-presets.md index 5f6cadfb20b79805adb47bfab2c7e63637b4739a..ce255e710bf8b8da8a20ec47b9e6be24a78a7556 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 0000000000000000000000000000000000000000..edff5f37481c43f062d3ddfbb00f550ff7db3afd --- /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