alef 0.73.0

Opinionated polyglot binding generator for Rust libraries
Documentation
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "enabled": true,
  "extends": ["config:recommended", ":semanticCommits", ":dependencyDashboard"],
  "rebaseWhen": "behind-base-branch",
  "labels": ["dependencies"],
  "lockFileMaintenance": {
    "enabled": true,
    "schedule": ["before 6am on monday"]
  },
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": ["/^src/core/template_versions\\.rs$/"],
      "matchStrings": [
        "// renovate:\\s*datasource=(?<datasource>\\S+)(?:\\s+depName=(?<depName>\\S+))?(?:\\s+packageName=(?<packageName>\\S+))?(?:\\s+versioning=(?<versioning>\\S+))?(?:\\s+extractVersion=(?<extractVersion>\\S+))?\\s*\\n\\s*pub const [A-Z0-9_]+: &str = \"(?<currentValue>[^\"]+)\";"
      ],
      "depNameTemplate": "{{#if depName}}{{{depName}}}{{else}}{{{packageName}}}{{/if}}",
      "packageNameTemplate": "{{#if packageName}}{{{packageName}}}{{else}}{{{depName}}}{{/if}}"
    }
  ],
  "packageRules": [
    {
      "description": "Custom-manager pins carry an explicit range strategy so it never resolves to null",
      "matchManagers": ["custom.regex"],
      "rangeStrategy": "replace"
    },
    {
      "description": "Group Rust crate version pins emitted into generated bindings",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["crate"],
      "groupName": "generated rust crate pins"
    },
    {
      "description": "Group Python tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["pypi"],
      "groupName": "python tooling pins"
    },
    {
      "description": "Group npm tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["npm"],
      "groupName": "npm tooling pins"
    },
    {
      "description": "Group Packagist (PHP) tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["packagist"],
      "groupName": "php tooling pins"
    },
    {
      "description": "Group Maven (Java/Kotlin) tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["maven"],
      "groupName": "jvm tooling pins"
    },
    {
      "description": "Group NuGet (C#) tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["nuget"],
      "groupName": "csharp tooling pins"
    },
    {
      "description": "Group Hex (Elixir/Gleam) tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["hex"],
      "groupName": "beam tooling pins"
    },
    {
      "description": "Group pub.dev (Dart) tooling pins",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["dart"],
      "groupName": "dart tooling pins"
    },
    {
      "description": "Gradle plugins resolve from the Gradle Plugin Portal, not Maven Central",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["maven"],
      "matchPackageNames": [
        "org.jlleitschuh.gradle:ktlint-gradle",
        "com.github.ben-manes:gradle-versions-plugin",
        "com.vanniktech:gradle-maven-publish-plugin"
      ],
      "registryUrls": ["https://plugins.gradle.org/m2", "https://repo.maven.apache.org/maven2"]
    },
    {
      "description": "Group pre-commit hook revisions tracked via github-tags",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["github-tags"],
      "groupName": "pre-commit hook revisions"
    },
    {
      "description": "Group GitHub Actions",
      "matchManagers": ["github-actions"],
      "groupName": "github actions"
    },
    {
      "description": "AGP and AndroidX artifacts live on Google's Maven repo, not Maven Central; without this their markers resolve to nothing and look tracked while never updating",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["maven"],
      "matchPackageNames": [
        "com.android.tools.build:gradle",
        "androidx.test.ext:junit",
        "androidx.test.espresso:espresso-core"
      ],
      "registryUrls": ["https://dl.google.com/dl/android/maven2", "https://repo.maven.apache.org/maven2"]
    },
    {
      "description": "Toolchain floors and build targets: raising one can drop support for consumers on older toolchains, so these are surfaced for review and must never be automerged",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["gradle-version", "github-tags"],
      "groupName": "toolchain pins",
      "automerge": false
    },
    {
      "description": "Widen deliberately multi-clause constraints. Under the default replace strategy Renovate rewrites an OR/AND chain to its LAST clause alone, silently dropping the older majors and the lower bound these ranges exist to keep",
      "matchManagers": ["custom.regex"],
      "matchDatasources": ["packagist", "hex"],
      "matchPackageNames": ["phpunit/phpunit", "guzzlehttp/guzzle", "gleam_stdlib", "gleeunit", "envoy"],
      "rangeStrategy": "widen"
    }
  ]
}