Skip to content

mschoettle/renovate-presets

Repository files navigation

Renovate Config Presets

This repository contains reusable config presets that can be reused in your project's Renovate config.

Usage

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>",
        [...]
    }
}

Presets

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.json5 below
  • Support version updates for version inputs in GitHub Actions via actions-dependency-version.json5 below
  • Enable pre-commit support via pre-commit-hooks.json5 below
  • Separate minor and patch version updates for Python and MariaDB
  • Combine updates for
    • the markdownlint-cli2 image and pre-commit hook
    • the mkdocs-material image and package
    • the ruff package and pre-commit hook
    • the uv package and pre-commit hook

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.

Packages

Group updates for Docker actions and schedule them weekly.

Limit typos updates to monthly and group all version updates together.

About

Presets for Renovate Bot to facilitate dependency updates

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors