This repository contains reusable config presets that can be reused in your project's Renovate config.
To use a preset in your project's config, add it to the extends section of your project's Renovate config:
{
"extends": {
[...]
"github>mschoettle/renovate-presets//presets/<presetFileName>",
[...]
}
}All presets are located in the presets directory.
A best-practices preset extending Renovate's config:recommended preset.
It does not extend config:best-practices directly in order to set a blanket minimum release age of 7 days.
See the below table for commonalities and differences between this preset and config:best-practices:
| - | best-practices |
config:best-practices |
|---|---|---|
| Base Config | config:recommended |
config:recommended |
Enable Config Migration via :configMigration |
Yes | Yes |
Highlight abandoned packages via abondonments:recommended |
Yes | Yes |
Maintain Lock Files via :maintainLockFilesWeekly |
Yes | Yes |
| GitHub Actions digest pinning | Yes, via helpers:pinGitHubActionDigestsToSemver (adds SemVer extraction and comments) |
Yes, via helpers:pinGitHubActionDigests |
| Minimum Release Age | 7 days across all package managers | 3 days for npm only via security:minimumReleaseAgeNpm |
Pin Docker digests via docker:pinDigests |
No | Yes |
| Pin dependencies | Yes, via :pinAllExceptPeerDependencies |
Yes, via :pinDevDependencies |
In addition, the best-practices preset sets the following configuration options:
- Separate multiple major version updates via
separateMultipleMajor - Enable Alpine Docker image variant updates via
docker-alpine.json5below - Support version updates for version inputs in GitHub Actions via
actions-dependency-version.json5below - Enable pre-commit support via
pre-commit-hooks.json5below - Separate minor and patch version updates for Python and MariaDB
- Combine updates for
- the
markdownlint-cli2image and pre-commit hook - the
mkdocs-materialimage and package - the
ruffpackage and pre-commit hook - the
uvpackage and pre-commit hook
- the
Use this to ensure that Alpine versions in Docker base images receive updates.
For example, when using python:3.11.9-alpine3.19 Renovate will update to Alpine 3.20 when such an image is available.
Note that if the base version and Alpine version have an update at the same time, Renovate will only create one update at a time. I.e., first, the Python version is updated, then the Alpine version.
If you want updates for node images, you must ignore the preset workarounds:nodeDockerVersioning in the project's config.
Thanks to Aaron Goldenthal for help in getting this working.
Use this to pin a dependency version in GitHub Action workflows.
For example, when using the setup-uv action you might want to pin the uv version that is being installed.
And, update this version when uv is updated.
With this preset you can do that as follows:
- uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
# renovate: datasource=pypi depName=uv
version: "0.11.2"Note
You can achieve the same outcome using _VERSION environment variables using the custom manager customManagers:githubActionsVersions provided by Renovate.
This preset enables updates the pre-commit manager and groups pre-commit hook updates together. The hooks are updated on a weekly schedule to reduce PR noise.
Note
If your base configuration changes the defaults of separateMinorPatch you might want to specify other defaults for the "pre-commit hooks" group using an additional package rule.
Group updates for Docker actions and schedule them weekly.
Limit typos updates to monthly and group all version updates together.