From 2d86782e23ce609b96e8062e81b09b65828bce6e Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Tue, 18 Feb 2020 09:48:23 +0100 Subject: [PATCH] docs: add initial modules docs --- docs/usage/modules/datasource.md | 19 +++++++ docs/usage/modules/manager.md | 93 ++++++++++++++++++++++++++++++++ docs/usage/modules/platform.md | 11 ++++ docs/usage/modules/versioning.md | 25 +++++++++ 4 files changed, 148 insertions(+) create mode 100644 docs/usage/modules/datasource.md create mode 100644 docs/usage/modules/manager.md create mode 100644 docs/usage/modules/platform.md create mode 100644 docs/usage/modules/versioning.md diff --git a/docs/usage/modules/datasource.md b/docs/usage/modules/datasource.md new file mode 100644 index 0000000000..9cd0a653e4 --- /dev/null +++ b/docs/usage/modules/datasource.md @@ -0,0 +1,19 @@ +# Datasources + +Once Renovate's Managers are done scanning files and extracting dependencies, they will assign a `datasource` to each so that Renovate then knows how to search for new versions. You do not need to ever configure/override Datasources directly, but you may use them in `packageRules` to configure other aspects of Renovate's behavior, e.g. + +```json +{ + "packageRules": [ + { + "datasources": ["npm"], + "packageNames": ["lodash"], + "automerge": true + } + ] +} +``` + +## Supported Datasources + +<!-- Autogenerated in https://github.com/renovatebot/renovatebot.github.io --> diff --git a/docs/usage/modules/manager.md b/docs/usage/modules/manager.md new file mode 100644 index 0000000000..4a3994f004 --- /dev/null +++ b/docs/usage/modules/manager.md @@ -0,0 +1,93 @@ +# Managers + +Renovate is based around the concept of "package managers", or "managers" for short. These range from traditional package managers like npm, Bundler and Composer through to less traditional concepts like CircleCI or Travis config files. + +The goal of Renovate is to detect and maintain all third party dependencies in your repositories, through the use of managers. + +## Supported Managers + +<!-- Autogenerated in https://github.com/renovatebot/renovatebot.github.io --> + +## Configuring Managers + +### File Matching + +Most managers have a default `fileMatch` array. `fileMatch` is an array of Regular Expression strings used to match against the repository file list. + +#### Managers with no default fileMatch + +Some managers have no default `fileMatch`, because they have no file naming convention that would let Renovate intelligently filter them. In such a case, the manager will be effectively disabled until you configure a `fileMatch` value, e.g. like the following: + +```json +{ + "kubernetes": { + "fileMatch": ["^config/.*\\.yaml$"] + } +} +``` + +#### Extending a manager's default fileMatch + +If the default `fileMatch` value for a manager does not match against one of your relevant files, you can _extend_ the existing value(s) by configuring a manager's `fileMatch` like in this example: + +```json +{ + "dockerfile": { + "fileMatch": ["does-not-look-like-a-docker-file"] + } +} +``` + +#### Ignoring files that match the default fileMatch + +Note: Renovate will _extend_ the existing `fileMatch`, meaning you don't need to include the default values like `Dockerfile` in your own array. In other words, the values are "additive". If a manager matches a file that you _don't_ want it to, ignore it using the `ignorePaths` configuration option. Also, if you ever find that Renovate is _not_ matching a file name that you're certain it should, be sure to check that you your preset config isn't the cause of it. The `config:base` preset ignores common test and example directory names, for example. + +### Enabling and Disabling Managers + +#### Enabling experimental managers + +Most managers are enabled by default. For those that aren't - typically because they are considered experimental - you can opt-in to them like the following: + +```json +{ + "experimental-manager": { + "enabled": true + } +} +``` + +#### Disabling managers + +To disable a specific manager like `gradle`, do this: + +```json +{ + "gradle": { + "enabled": false + } +} +``` + +To disable all managers within a language like `python`, do this: + +```json +{ + "python": { + "enabled": false + } +} +``` + +Note: Only languages declared by a Renovate manager can be supported, so please verify first. + +#### Limiting enabled managers + +If you want to limit Renovate to only one or a small number of managers, you can do this with the `enabledManagers` array: + +```json +{ + "enabledManagers": ["npm", "dockerfile"] +} +``` + +The above would then result in all other managers being disabled, including Bundler, Composer, Docker Composer, etc. diff --git a/docs/usage/modules/platform.md b/docs/usage/modules/platform.md new file mode 100644 index 0000000000..0619e4e671 --- /dev/null +++ b/docs/usage/modules/platform.md @@ -0,0 +1,11 @@ +# Renovate Platforms + +Renovate aims to be as platform-neutral as possible in general, while also taking advantage of any platform-specific features that are of benefit to users. + +Currently supported platforms are: + +- Azure DevOps +- Bitbucket Cloud +- Bitbucket Server +- GitHub (github.com, GitHub Enterprise) +- GitLab (gitlab.com, self-hosted) diff --git a/docs/usage/modules/versioning.md b/docs/usage/modules/versioning.md new file mode 100644 index 0000000000..b0622ef092 --- /dev/null +++ b/docs/usage/modules/versioning.md @@ -0,0 +1,25 @@ +# Versioning + +Once Managers have extracted dependencies, and Datasources have located available versions, then Renovate makes use of "Versioning" schemes to perform sorting and filtering of results. This is necessary because different managers use different types of numbering/versioning, e.g. `1.0.0-beta.1` in `npm` and `1.0.0b1` in Python. + +## Configuring Versioning + +There are times when you may need to manually configure/override the `versioning` value for a particular dependency. You generally won't have a need for this in ecosystems with strict versioning enforcement like `npm`, but you might often need it for ecosystems like Docker where versioning is barely a "convention". e.g. + +```json +{ + "packageRules": [ + { + "datasources": ["docker"], + "packageNames": ["python"], + "versioning": "pep440" + } + ] +} +``` + +The above will override Renovate's default of `docker` versioning for the `python` Docker image and instead use `pep440` versioning to evaluate versions. + +## Supported Versioning + +<!-- Autogenerated in https://github.com/renovatebot/renovatebot.github.io --> -- GitLab