{
    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
    "extends": ["config:recommended", "config:best-practices", ":semanticCommitTypeAll(chore)"],
    "labels": ["dependencies"],
    "dependencyDashboard": true,
    "dependencyDashboardTitle": "Dependency Dashboard",
    "pre-commit": {
        "enabled": true
    },
    "lockFileMaintenance": {
        "enabled": true,
        "schedule": ["before 4am on monday"]
    },
    "packageRules": [
        {
            "matchManagers": ["pep621"],
            "matchDepTypes": ["project.dependencies", "project.optional-dependencies"],
            "matchUpdateTypes": ["patch", "minor"],
            "groupName": "runtime minor & patch",
            "minimumReleaseAge": "3 days",
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        },
        {
            "matchManagers": ["pep621"],
            "matchDepTypes": ["dependency-groups"],
            "matchUpdateTypes": ["patch", "minor"],
            "groupName": "Python dev dependencies",
            "minimumReleaseAge": "3 days",
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        },
        {
            "matchManagers": ["pep621"],
            "matchDepTypes": ["build-system.requires"],
            "matchUpdateTypes": ["patch", "minor"],
            "groupName": "Python build dependencies",
            "minimumReleaseAge": "3 days",
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        },
        {
            "matchDatasources": ["python-version"],
            "enabled": false
        },
        {
            "matchUpdateTypes": ["major"],
            "enabled": false
        },
        {
            "matchManagers": ["cargo"],
            "groupName": "Rust dependencies",
            "minimumReleaseAge": "3 days",
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        },
        {
            "matchManagers": ["github-actions"],
            "groupName": "GitHub Actions",
            "schedule": ["every weekend"],
            "minimumReleaseAge": "3 days",
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        },
        {
            "matchUpdateTypes": ["lockFileMaintenance"],
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash",
            "groupName": "lock file maintenance"
        },
        {
            "matchManagers": ["pre-commit"],
            "automerge": true,
            "automergeType": "pr",
            "automergeStrategy": "squash"
        }
    ],
    "rangeStrategy": "bump"
}
