From ab04c11f42cf68939681a08680dab08fd4e3ba37 Mon Sep 17 00:00:00 2001 From: Sebastian Poxhofer <secustor@users.noreply.github.com> Date: Sat, 29 Apr 2023 10:40:17 +0200 Subject: [PATCH] docs(adding-package-manager): add missing functions of ManagerAPI interface (#21535) Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com> --- docs/development/adding-a-package-manager.md | 45 +++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/docs/development/adding-a-package-manager.md b/docs/development/adding-a-package-manager.md index 580940931f..cc40ee1c8a 100644 --- a/docs/development/adding-a-package-manager.md +++ b/docs/development/adding-a-package-manager.md @@ -14,11 +14,23 @@ Common application logic for Renovate, not specific to particular managers, usua The manager's `index.ts` file supports the following values/functions: -- extractPackageFile -- extractAllPackageFiles -- getRangeStrategy (optional) -- language (optional) -- supportsLockFileMaintenance (optional) +| Value/function | Optional | Async | +| ----------------------------- | -------- | ----- | +| `bumpPackageVersion` | yes | | +| `extractPackageFile` | | yes | +| `extractAllPackageFiles` | yes | yes | +| `getRangeStrategy` | yes | | +| `language` | yes | | +| `supportsLockFileMaintenance` | yes | | +| `updateArtifacts` | yes | yes | +| `updateDependency` | yes | | +| `updateLockedDependency` | yes | | + +### `bumpPackageVersion` (optional) + +Use this function to allow version bumps of updated packages. +For example, to increase the version of a Maven module if a package has been updated. +Another example would be to bump the Helm chart version, if a subchart version has been updated. ### `extractPackageFile(content, packageFile, config)` (async, semi-mandatory) @@ -67,3 +79,26 @@ This is used when more than one package manager shares settings from a common la ### `supportsLockFileMaintenance` (optional) Set to true if this package manager needs to update lock files in addition to package files. + +### `updateArtifacts` (async, optional) + +Use `updateArtifacts` to run binaries that in turn will update files. +`updateArtifacts` is often used to indirectly update lock files. + +To _directly_ update dependencies in lock files: use `updateLockedDependency` instead. + +`updateArtifacts` gets triggered: + +- after a dependency update (for a package file), or +- during `lockfileMaintenance` + +### `updateDependency` (optional) + +Use `updateDependency` if _both_ conditions apply: + +- the manager can't be updated to use the standard replacing mechanism +- a custom replacement has to be provided + +### `updateLockedDependency` (optional) + +Use `updateLockedDependency` to directly update dependencies in lock files. -- GitLab