renovate 40.45.5 → 40.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ exports.presets = {
18
18
  'workarounds:supportRedHatImageVersion',
19
19
  'workarounds:javaLTSVersions',
20
20
  'workarounds:disableEclipseLifecycleMapping',
21
+ 'workarounds:disableGradleReplacements',
21
22
  'workarounds:disableMavenParentRoot',
22
23
  'workarounds:containerbase',
23
24
  'workarounds:bitnamiDockerImageVersioning',
@@ -66,6 +67,16 @@ exports.presets = {
66
67
  },
67
68
  ],
68
69
  },
70
+ disableGradleReplacements: {
71
+ description: 'Disable package replacement updates for gradle dependencies.',
72
+ packageRules: [
73
+ {
74
+ enabled: false,
75
+ matchManagers: ['gradle'],
76
+ matchUpdateTypes: ['replacement'],
77
+ },
78
+ ],
79
+ },
69
80
  disableMavenParentRoot: {
70
81
  description: 'Avoid version fetching for Maven packages detected as project root.',
71
82
  packageRules: [
@@ -1 +1 @@
1
- {"version":3,"file":"workarounds.js","sourceRoot":"","sources":["../../../../lib/config/presets/internal/workarounds.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Preset } from '../types';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const presets: Record<string, Preset> = {\n all: {\n description: [\n 'Apply crowd-sourced workarounds for known problems with packages.',\n ],\n extends: [\n 'workarounds:mavenCommonsAncientVersion',\n 'workarounds:ignoreSpringCloudNumeric',\n 'workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp',\n 'workarounds:ignoreHttp4sDigestMilestones',\n 'workarounds:typesNodeVersioning',\n 'workarounds:nodeDockerVersioning',\n 'workarounds:doNotUpgradeFromAlpineStableToEdge',\n 'workarounds:supportRedHatImageVersion',\n 'workarounds:javaLTSVersions',\n 'workarounds:disableEclipseLifecycleMapping',\n 'workarounds:disableMavenParentRoot',\n 'workarounds:containerbase',\n 'workarounds:bitnamiDockerImageVersioning',\n 'workarounds:k3sKubernetesVersioning',\n 'workarounds:rke2KubernetesVersioning',\n 'workarounds:libericaJdkDockerVersioning',\n 'workarounds:ubuntuDockerVersioning',\n ],\n ignoreDeps: [], // Hack to improve onboarding PR description\n },\n bitnamiDockerImageVersioning: {\n description: 'Use custom regex versioning for bitnami images',\n packageRules: [\n {\n matchCurrentValue:\n '/^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?$/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bitnami/**',\n 'docker.io/bitnami/**',\n 'gcr.io/bitnami-containers/**',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?(:?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?)?$',\n },\n ],\n },\n containerbase: {\n description: 'Add some containerbase overrides.',\n packageRules: [\n {\n description:\n 'Use node versioning for `(containerbase|renovate)/node` images',\n matchDatasources: ['docker'],\n matchPackageNames: [\n '/^(?:(?:docker|ghcr)\\\\.io/)?(?:containerbase|renovate)/node$/',\n ],\n versioning: 'node',\n },\n ],\n },\n disableEclipseLifecycleMapping: {\n description: 'Disable Eclipse m2e lifecycle-mapping placeholder package.',\n packageRules: [\n {\n enabled: false,\n matchDatasources: ['maven'],\n matchPackageNames: ['org.eclipse.m2e:lifecycle-mapping'],\n },\n ],\n },\n disableMavenParentRoot: {\n description:\n 'Avoid version fetching for Maven packages detected as project root.',\n packageRules: [\n {\n enabled: false,\n matchDepTypes: ['parent-root'],\n matchManagers: ['maven'],\n },\n ],\n },\n doNotUpgradeFromAlpineStableToEdge: {\n description: 'Do not upgrade from Alpine stable to edge.',\n packageRules: [\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchDepNames: ['alpine'],\n },\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchPackageNames: ['alpine'],\n },\n ],\n },\n ignoreHttp4sDigestMilestones: {\n description: 'Ignore `http4s` digest-based `1.x` milestones.',\n packageRules: [\n {\n allowedVersions: `!/^1\\\\.0-\\\\d+-[a-fA-F0-9]{7}$/`,\n matchManagers: ['sbt'],\n matchPackageNames: ['org.http4s:**'],\n },\n ],\n },\n ignoreSpringCloudNumeric: {\n description: 'Ignore spring cloud `1.x` releases.',\n packageRules: [\n {\n allowedVersions: '/^[A-Z]/',\n matchDatasources: ['maven'],\n matchPackageNames: [\n 'org.springframework.cloud:spring-cloud-starter-parent',\n ],\n },\n ],\n },\n ignoreWeb3jCoreWithOldReleaseTimestamp: {\n description: 'Ignore `web3j` `5.0.0` release.',\n packageRules: [\n {\n allowedVersions: '!/^5\\\\.0\\\\.0/',\n matchDatasources: ['maven'],\n matchPackageNames: ['org.web3j:core'],\n },\n ],\n },\n javaLTSVersions: {\n description: 'Limit Java runtime versions to LTS releases.',\n packageRules: [\n {\n allowedVersions: '/^(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchPackageNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n '/^azul/zulu-openjdk/',\n '/^bellsoft/liberica-openj(dk|re)-/',\n '/^cimg/openjdk/',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchDepNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:jdk|jdk-all|jre)-(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n },\n ],\n },\n k3sKubernetesVersioning: {\n description: 'Use custom regex versioning for k3s-io/k3s',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['k3s-io/k3s'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+k3s)(?<build>\\\\d+)$',\n },\n ],\n },\n libericaJdkDockerVersioning: {\n description:\n 'Use custom regex versioning for bellsoft/liberica-runtime-container',\n packageRules: [\n {\n description: 'Liberica JDK Lite version optimized for the Cloud',\n matchCurrentValue: '/^jdk-[^a][^l]{2}/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jdk-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JDK that can be used to create a custom runtime with a help of jlink tool',\n matchCurrentValue: '/^jdk-all/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jdk-all-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JRE (only the runtime without the rest of JDK tools) for running Java applications',\n matchCurrentValue: '/^jre-/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jre-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n ],\n },\n mavenCommonsAncientVersion: {\n description: 'Fix some problems with very old Maven commons versions.',\n packageRules: [\n {\n allowedVersions: '!/^200\\\\d{5}(\\\\.\\\\d+)?/',\n matchDatasources: ['maven', 'sbt-package'],\n matchPackageNames: ['commons-**'],\n },\n ],\n },\n nodeDockerVersioning: {\n description: 'Use node versioning for `node` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n // copied from https://github.com/renovatebot/renovate/blob/a471762e137619c06e73a678d6b63ca984da7dba/lib/config/presets/internal/group.ts#L351\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n ],\n versionCompatibility: '^(?<version>[^-]+)(?<compatibility>-.*)?$',\n versioning: 'node',\n },\n ],\n },\n rke2KubernetesVersioning: {\n description: 'Use custom regex versioning for rancher/rke2',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['rancher/rke2'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+rke2r)(?<build>\\\\d+)$',\n },\n ],\n },\n supportRedHatImageVersion: {\n description:\n 'Use specific versioning for Red Hat-maintained container images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'registry.access.redhat.com/rhel',\n 'registry.access.redhat.com/rhel-atomic',\n 'registry.access.redhat.com/rhel-init',\n 'registry.access.redhat.com/rhel-minimal',\n 'registry.access.redhat.com/rhceph/**',\n 'registry.access.redhat.com/rhgs3/**',\n 'registry.access.redhat.com/rhel7**',\n 'registry.access.redhat.com/rhel8/**',\n 'registry.access.redhat.com/rhel9/**',\n 'registry.access.redhat.com/rhscl/**',\n 'registry.access.redhat.com/ubi*{,/}**',\n 'redhat/**',\n ],\n versioning: 'redhat',\n },\n ],\n },\n typesNodeVersioning: {\n description: 'Use node versioning for `@types/node`.',\n packageRules: [\n {\n matchManagers: ['npm'],\n matchPackageNames: ['@types/node'],\n versioning: `node`,\n },\n ],\n },\n ubuntuDockerVersioning: {\n description: 'Use ubuntu versioning for `ubuntu` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchDepNames: ['ubuntu'],\n versioning: 'ubuntu',\n },\n ],\n },\n};\n"]}
1
+ {"version":3,"file":"workarounds.js","sourceRoot":"","sources":["../../../../lib/config/presets/internal/workarounds.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Preset } from '../types';\n\n/* eslint sort-keys: [\"error\", \"asc\", {caseSensitive: false, natural: true}] */\n\nexport const presets: Record<string, Preset> = {\n all: {\n description: [\n 'Apply crowd-sourced workarounds for known problems with packages.',\n ],\n extends: [\n 'workarounds:mavenCommonsAncientVersion',\n 'workarounds:ignoreSpringCloudNumeric',\n 'workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp',\n 'workarounds:ignoreHttp4sDigestMilestones',\n 'workarounds:typesNodeVersioning',\n 'workarounds:nodeDockerVersioning',\n 'workarounds:doNotUpgradeFromAlpineStableToEdge',\n 'workarounds:supportRedHatImageVersion',\n 'workarounds:javaLTSVersions',\n 'workarounds:disableEclipseLifecycleMapping',\n 'workarounds:disableGradleReplacements',\n 'workarounds:disableMavenParentRoot',\n 'workarounds:containerbase',\n 'workarounds:bitnamiDockerImageVersioning',\n 'workarounds:k3sKubernetesVersioning',\n 'workarounds:rke2KubernetesVersioning',\n 'workarounds:libericaJdkDockerVersioning',\n 'workarounds:ubuntuDockerVersioning',\n ],\n ignoreDeps: [], // Hack to improve onboarding PR description\n },\n bitnamiDockerImageVersioning: {\n description: 'Use custom regex versioning for bitnami images',\n packageRules: [\n {\n matchCurrentValue:\n '/^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?$/',\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'bitnami/**',\n 'docker.io/bitnami/**',\n 'gcr.io/bitnami-containers/**',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)(?:\\\\.(?<minor>\\\\d+)(?:\\\\.(?<patch>\\\\d+))?)?(:?-(?<compatibility>.+)-(?<build>\\\\d+)(?:-r(?<revision>\\\\d+))?)?$',\n },\n ],\n },\n containerbase: {\n description: 'Add some containerbase overrides.',\n packageRules: [\n {\n description:\n 'Use node versioning for `(containerbase|renovate)/node` images',\n matchDatasources: ['docker'],\n matchPackageNames: [\n '/^(?:(?:docker|ghcr)\\\\.io/)?(?:containerbase|renovate)/node$/',\n ],\n versioning: 'node',\n },\n ],\n },\n disableEclipseLifecycleMapping: {\n description: 'Disable Eclipse m2e lifecycle-mapping placeholder package.',\n packageRules: [\n {\n enabled: false,\n matchDatasources: ['maven'],\n matchPackageNames: ['org.eclipse.m2e:lifecycle-mapping'],\n },\n ],\n },\n disableGradleReplacements: {\n description: 'Disable package replacement updates for gradle dependencies.',\n packageRules: [\n {\n enabled: false,\n matchManagers: ['gradle'],\n matchUpdateTypes: ['replacement'],\n },\n ],\n },\n disableMavenParentRoot: {\n description:\n 'Avoid version fetching for Maven packages detected as project root.',\n packageRules: [\n {\n enabled: false,\n matchDepTypes: ['parent-root'],\n matchManagers: ['maven'],\n },\n ],\n },\n doNotUpgradeFromAlpineStableToEdge: {\n description: 'Do not upgrade from Alpine stable to edge.',\n packageRules: [\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchDepNames: ['alpine'],\n },\n {\n allowedVersions: '<20000000',\n matchCurrentVersion: '!/^\\\\d{8}$/',\n matchDatasources: ['docker'],\n matchPackageNames: ['alpine'],\n },\n ],\n },\n ignoreHttp4sDigestMilestones: {\n description: 'Ignore `http4s` digest-based `1.x` milestones.',\n packageRules: [\n {\n allowedVersions: `!/^1\\\\.0-\\\\d+-[a-fA-F0-9]{7}$/`,\n matchManagers: ['sbt'],\n matchPackageNames: ['org.http4s:**'],\n },\n ],\n },\n ignoreSpringCloudNumeric: {\n description: 'Ignore spring cloud `1.x` releases.',\n packageRules: [\n {\n allowedVersions: '/^[A-Z]/',\n matchDatasources: ['maven'],\n matchPackageNames: [\n 'org.springframework.cloud:spring-cloud-starter-parent',\n ],\n },\n ],\n },\n ignoreWeb3jCoreWithOldReleaseTimestamp: {\n description: 'Ignore `web3j` `5.0.0` release.',\n packageRules: [\n {\n allowedVersions: '!/^5\\\\.0\\\\.0/',\n matchDatasources: ['maven'],\n matchPackageNames: ['org.web3j:core'],\n },\n ],\n },\n javaLTSVersions: {\n description: 'Limit Java runtime versions to LTS releases.',\n packageRules: [\n {\n allowedVersions: '/^(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchPackageNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n '/^azul/zulu-openjdk/',\n '/^bellsoft/liberica-openj(dk|re)-/',\n '/^cimg/openjdk/',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker', 'java-version'],\n matchDepNames: [\n 'eclipse-temurin',\n 'amazoncorretto',\n 'adoptopenjdk',\n 'openjdk',\n 'java',\n 'java-jre',\n 'sapmachine',\n ],\n versioning:\n 'regex:^(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+)(LTS)?)?(-(?<compatibility>.*))?$',\n },\n {\n allowedVersions: '/^(?:jdk|jdk-all|jre)-(?:8|11|17|21)(?:\\\\.|-|$)/',\n description:\n 'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n },\n ],\n },\n k3sKubernetesVersioning: {\n description: 'Use custom regex versioning for k3s-io/k3s',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['k3s-io/k3s'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+k3s)(?<build>\\\\d+)$',\n },\n ],\n },\n libericaJdkDockerVersioning: {\n description:\n 'Use custom regex versioning for bellsoft/liberica-runtime-container',\n packageRules: [\n {\n description: 'Liberica JDK Lite version optimized for the Cloud',\n matchCurrentValue: '/^jdk-[^a][^l]{2}/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jdk-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JDK that can be used to create a custom runtime with a help of jlink tool',\n matchCurrentValue: '/^jdk-all/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jdk-all-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n {\n description:\n 'Liberica JRE (only the runtime without the rest of JDK tools) for running Java applications',\n matchCurrentValue: '/^jre-/',\n matchDatasources: ['docker'],\n matchPackageNames: ['bellsoft/liberica-runtime-container'],\n versioning:\n 'regex:^jre-(?<major>\\\\d+)?(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?([\\\\._+](?<build>(\\\\d\\\\.?)+))?(-(?<compatibility>.*))?$',\n },\n ],\n },\n mavenCommonsAncientVersion: {\n description: 'Fix some problems with very old Maven commons versions.',\n packageRules: [\n {\n allowedVersions: '!/^200\\\\d{5}(\\\\.\\\\d+)?/',\n matchDatasources: ['maven', 'sbt-package'],\n matchPackageNames: ['commons-**'],\n },\n ],\n },\n nodeDockerVersioning: {\n description: 'Use node versioning for `node` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n // copied from https://github.com/renovatebot/renovate/blob/a471762e137619c06e73a678d6b63ca984da7dba/lib/config/presets/internal/group.ts#L351\n matchPackageNames: [\n '/(?:^|/)node$/', // node or ends with \"/node, except those below\"\n '!calico/node',\n '!docker.io/calico/node',\n '!ghcr.io/devcontainers/features/node',\n '!kindest/node',\n ],\n versionCompatibility: '^(?<version>[^-]+)(?<compatibility>-.*)?$',\n versioning: 'node',\n },\n ],\n },\n rke2KubernetesVersioning: {\n description: 'Use custom regex versioning for rancher/rke2',\n packageRules: [\n {\n matchDatasources: ['github-releases'],\n matchPackageNames: ['rancher/rke2'],\n versioning:\n 'regex:^v(?<major>\\\\d+)\\\\.(?<minor>\\\\d+)\\\\.(?<patch>\\\\d+)(?:-(?<prerelease>[a-z]+\\\\d+))?(?<compatibility>\\\\+rke2r)(?<build>\\\\d+)$',\n },\n ],\n },\n supportRedHatImageVersion: {\n description:\n 'Use specific versioning for Red Hat-maintained container images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchPackageNames: [\n 'registry.access.redhat.com/rhel',\n 'registry.access.redhat.com/rhel-atomic',\n 'registry.access.redhat.com/rhel-init',\n 'registry.access.redhat.com/rhel-minimal',\n 'registry.access.redhat.com/rhceph/**',\n 'registry.access.redhat.com/rhgs3/**',\n 'registry.access.redhat.com/rhel7**',\n 'registry.access.redhat.com/rhel8/**',\n 'registry.access.redhat.com/rhel9/**',\n 'registry.access.redhat.com/rhscl/**',\n 'registry.access.redhat.com/ubi*{,/}**',\n 'redhat/**',\n ],\n versioning: 'redhat',\n },\n ],\n },\n typesNodeVersioning: {\n description: 'Use node versioning for `@types/node`.',\n packageRules: [\n {\n matchManagers: ['npm'],\n matchPackageNames: ['@types/node'],\n versioning: `node`,\n },\n ],\n },\n ubuntuDockerVersioning: {\n description: 'Use ubuntu versioning for `ubuntu` docker images.',\n packageRules: [\n {\n matchDatasources: ['docker'],\n matchDepNames: ['ubuntu'],\n versioning: 'ubuntu',\n },\n ],\n },\n};\n"]}
@@ -9,6 +9,7 @@ const exec_1 = require("../../../util/exec");
9
9
  const fs_1 = require("../../../util/fs");
10
10
  const auth_1 = require("../../../util/git/auth");
11
11
  const regex_1 = require("../../../util/regex");
12
+ const crate_1 = require("../../datasource/crate");
12
13
  const locked_version_1 = require("./locked-version");
13
14
  async function cargoUpdate(manifestPath, isLockFileMaintenance, constraint) {
14
15
  let cmd = `cargo update --config net.git-fetch-with-cli=true --manifest-path ${(0, shlex_1.quote)(manifestPath)}`;
@@ -81,11 +82,17 @@ async function updateArtifactsImpl({ packageFileName, updatedDeps, newPackageFil
81
82
  await cargoUpdate(packageFileName, true, config.constraints?.rust);
82
83
  }
83
84
  else {
84
- const missingDep = updatedDeps.find((dep) => !dep.lockedVersion);
85
- if (missingDep) {
86
- // If there is a dependency without a locked version then log a warning
87
- // and perform a regular workspace lockfile update.
88
- logger_1.logger.warn({ dependency: missingDep.depName }, 'Missing locked version for dependency');
85
+ const nonCrateDep = updatedDeps.find((dep) => dep.datasource !== crate_1.CrateDatasource.id);
86
+ const crateDepWithoutLockedVersion = updatedDeps.find((dep) => !dep.lockedVersion && dep.datasource === crate_1.CrateDatasource.id);
87
+ // Non-crate dependencies (like git ones) do not have locked versions.
88
+ // For crate dependencies, not having a locked version is not expected.
89
+ // In both situations, perform a regular workspace lockfile update.
90
+ if (nonCrateDep || crateDepWithoutLockedVersion) {
91
+ if (crateDepWithoutLockedVersion) {
92
+ // Only warn when a crate dependency has no locked version, as this is
93
+ // not an expected situation.
94
+ logger_1.logger.warn({ dependency: crateDepWithoutLockedVersion.depName }, 'Missing locked version for dependency');
95
+ }
89
96
  await cargoUpdate(packageFileName, false, config.constraints?.rust);
90
97
  }
91
98
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/cargo/artifacts.ts"],"names":[],"mappings":";;AAqEA,0CAIC;AAzED,iCAA8B;AAC9B,sEAAoE;AACpE,4CAAyC;AACzC,+CAAkD;AAClD,6CAA0C;AAE1C,yCAI0B;AAC1B,iDAAoE;AACpE,+CAA4C;AAE5C,qDAAkE;AAElE,KAAK,UAAU,WAAW,CACxB,YAAoB,EACpB,qBAA8B,EAC9B,UAA8B;IAE9B,IAAI,GAAG,GAAG,qEAAqE,IAAA,aAAK,EAClF,YAAY,CACb,EAAE,CAAC;IACJ,4EAA4E;IAC5E,kFAAkF;IAClF,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,GAAG,IAAI,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,QAAQ,EAAE,EAAE,GAAG,IAAA,iCAA0B,EAAC,CAAC,OAAO,CAAC,CAAC,EAAE;QACtD,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC;IACF,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,YAAoB,EACpB,WAAsB,EACtB,UAA8B;IAE9B,uEAAuE;IACvE,MAAM,IAAI,GAAG;QACX,mDAAmD;YACjD,oBAAoB,IAAA,aAAK,EAAC,YAAY,CAAC,cAAc;KACxD,CAAC;IAEF,uEAAuE;IACvE,4EAA4E;IAC5E,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CACP,mDAAmD;YACjD,oBAAoB,IAAA,aAAK,EAAC,YAAY,CAAC,EAAE;YACzC,cAAc,IAAA,aAAK,EAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE;YAChE,cAAc,IAAA,aAAK,EAAC,GAAG,CAAC,UAAW,CAAC,EAAE,CACzC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,QAAQ,EAAE,EAAE,GAAG,IAAA,iCAA0B,EAAC,CAAC,OAAO,CAAC,CAAC,EAAE;QACtD,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;KACpD,CAAC;IAEF,MAAM,IAAA,WAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,cAA8B;IAE9B,OAAO,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,EACE,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,MAAM,GACS,EACjB,cAAc,GAAG,EAAE;IAEnB,eAAM,CAAC,KAAK,CAAC,yBAAyB,eAAe,GAAG,CAAC,CAAC;IAE1D,sEAAsE;IACtE,sEAAsE;IACtE,sBAAsB;IACtB,MAAM,YAAY,GAAG,MAAM,IAAA,6BAAwB,EACjD,eAAe,EACf,YAAY,CACb,CAAC;IACF,MAAM,uBAAuB,GAAG,YAAY;QAC1C,CAAC,CAAC,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,uBAAuB,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IACzC,IAAI,CAAC,qBAAqB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QACnD,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,uBAAuB;iBAClC;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAA,mBAAc,EAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;QAC7D,eAAM,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;QAEzC,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,UAAU,EAAE,CAAC;gBACf,uEAAuE;gBACvE,mDAAmD;gBACnD,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,EAClC,uCAAuC,CACxC,CAAC;gBACF,MAAM,WAAW,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,MAAM,kBAAkB,CACtB,eAAe,EACf,WAAW,EACX,MAAM,CAAC,WAAW,EAAE,IAAI,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,MAAM,mBAAmB,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,uBAAuB,KAAK,mBAAmB,EAAE,CAAC;YACpD,eAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,mBAAmB;iBAC9B;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,KAAK,gCAAe,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,yBAAyB;QACzB,MAAM,mBAAmB,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtE,IACE,cAAc,GAAG,CAAC;YAClB,mBAAmB;YACnB,IAAA,aAAK,EAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EACzD,CAAC;YACD,MAAM,QAAQ,GAAG,IAAA,+CAA8B,EAAC,mBAAmB,CAAC,CAAC;YACrE,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,IAAA,mBAAW,EAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,WAAY,CAAC,CAAC,CAAC,QAAQ,CACpD,GAAG,CAAC,UAAW,CAChB,CACJ,CAAC;YAEF,IAAI,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC/C,eAAM,CAAC,KAAK,CACV,0DAA0D,CAC3D,CAAC;gBACF,OAAO,mBAAmB,CACxB;oBACE,eAAe;oBACf,WAAW,EAAE,cAAc;oBAC3B,qBAAqB;oBACrB,MAAM;iBACP,EACD,cAAc,GAAG,CAAC,CACnB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAE1D,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport type { UpdateArtifact, UpdateArtifactsResult, Upgrade } from '../types';\nimport { extractLockFileContentVersions } from './locked-version';\n\nasync function cargoUpdate(\n manifestPath: string,\n isLockFileMaintenance: boolean,\n constraint: string | undefined,\n): Promise<void> {\n let cmd = `cargo update --config net.git-fetch-with-cli=true --manifest-path ${quote(\n manifestPath,\n )}`;\n // If we're updating a specific crate, `cargo-update` requires `--workspace`\n // for more information, see: https://github.com/renovatebot/renovate/issues/12332\n if (!isLockFileMaintenance) {\n cmd += ` --workspace`;\n }\n\n const execOptions: ExecOptions = {\n extraEnv: { ...getGitEnvironmentVariables(['cargo']) },\n docker: {},\n toolConstraints: [{ toolName: 'rust', constraint }],\n };\n await exec(cmd, execOptions);\n}\n\nasync function cargoUpdatePrecise(\n manifestPath: string,\n updatedDeps: Upgrade[],\n constraint: string | undefined,\n): Promise<void> {\n // First update all dependencies that have been bumped in `Cargo.toml`.\n const cmds = [\n 'cargo update --config net.git-fetch-with-cli=true' +\n ` --manifest-path ${quote(manifestPath)} --workspace`,\n ];\n\n // Update individual dependencies to their `newVersion`. Necessary when\n // using the `update-lockfile` rangeStrategy which doesn't touch Cargo.toml.\n for (const dep of updatedDeps) {\n cmds.push(\n `cargo update --config net.git-fetch-with-cli=true` +\n ` --manifest-path ${quote(manifestPath)}` +\n ` --package ${quote(`${dep.packageName}@${dep.lockedVersion}`)}` +\n ` --precise ${quote(dep.newVersion!)}`,\n );\n }\n\n const execOptions: ExecOptions = {\n extraEnv: { ...getGitEnvironmentVariables(['cargo']) },\n docker: {},\n toolConstraints: [{ toolName: 'rust', constraint }],\n };\n\n await exec(cmds, execOptions);\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n return await updateArtifactsImpl(updateArtifact);\n}\n\nasync function updateArtifactsImpl(\n {\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n }: UpdateArtifact,\n recursionLimit = 10,\n): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`cargo.updateArtifacts(${packageFileName})`);\n\n // For standalone package crates, the `Cargo.lock` will be in the same\n // directory as `Cargo.toml` (ie. a sibling). For cargo workspaces, it\n // will be further up.\n const lockFileName = await findLocalSiblingOrParent(\n packageFileName,\n 'Cargo.lock',\n );\n const existingLockFileContent = lockFileName\n ? await readLocalFile(lockFileName)\n : null;\n if (!existingLockFileContent || !lockFileName) {\n logger.debug('No Cargo.lock found');\n return null;\n }\n\n const { isLockFileMaintenance } = config;\n if (!isLockFileMaintenance && !updatedDeps?.length) {\n logger.debug('No more dependencies to update');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: existingLockFileContent,\n },\n },\n ];\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating ' + lockFileName);\n\n if (isLockFileMaintenance) {\n await cargoUpdate(packageFileName, true, config.constraints?.rust);\n } else {\n const missingDep = updatedDeps.find((dep) => !dep.lockedVersion);\n if (missingDep) {\n // If there is a dependency without a locked version then log a warning\n // and perform a regular workspace lockfile update.\n logger.warn(\n { dependency: missingDep.depName },\n 'Missing locked version for dependency',\n );\n await cargoUpdate(packageFileName, false, config.constraints?.rust);\n } else {\n // If all dependencies have locked versions then update them precisely.\n await cargoUpdatePrecise(\n packageFileName,\n updatedDeps,\n config.constraints?.rust,\n );\n }\n }\n\n logger.debug('Returning updated Cargo.lock');\n const newCargoLockContent = await readLocalFile(lockFileName);\n if (existingLockFileContent === newCargoLockContent) {\n logger.debug('Cargo.lock is unchanged');\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newCargoLockContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n // Sometimes `cargo update` will fail when a preceding dependency update\n // causes another dependency to update. In this case we can no longer\n // reference the dependency by its old version, so we filter it out\n // and retry recursively.\n const newCargoLockContent = await readLocalFile(lockFileName, 'utf8');\n if (\n recursionLimit > 0 &&\n newCargoLockContent &&\n regEx(/error: package ID specification/).test(err.stderr)\n ) {\n const versions = extractLockFileContentVersions(newCargoLockContent);\n const newUpdatedDeps = updatedDeps.filter(\n (dep) =>\n !coerceArray(versions?.get(dep.packageName!)).includes(\n dep.newVersion!,\n ),\n );\n\n if (newUpdatedDeps.length < updatedDeps.length) {\n logger.debug(\n 'Dependency already up to date - reattempting recursively',\n );\n return updateArtifactsImpl(\n {\n packageFileName,\n updatedDeps: newUpdatedDeps,\n newPackageFileContent,\n config,\n },\n recursionLimit - 1,\n );\n }\n }\n\n logger.debug({ err }, 'Failed to update Cargo lock file');\n\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/cargo/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { CrateDatasource } from '../../datasource/crate';\nimport type { UpdateArtifact, UpdateArtifactsResult, Upgrade } from '../types';\nimport { extractLockFileContentVersions } from './locked-version';\n\nasync function cargoUpdate(\n manifestPath: string,\n isLockFileMaintenance: boolean,\n constraint: string | undefined,\n): Promise<void> {\n let cmd = `cargo update --config net.git-fetch-with-cli=true --manifest-path ${quote(\n manifestPath,\n )}`;\n // If we're updating a specific crate, `cargo-update` requires `--workspace`\n // for more information, see: https://github.com/renovatebot/renovate/issues/12332\n if (!isLockFileMaintenance) {\n cmd += ` --workspace`;\n }\n\n const execOptions: ExecOptions = {\n extraEnv: { ...getGitEnvironmentVariables(['cargo']) },\n docker: {},\n toolConstraints: [{ toolName: 'rust', constraint }],\n };\n await exec(cmd, execOptions);\n}\n\nasync function cargoUpdatePrecise(\n manifestPath: string,\n updatedDeps: Upgrade[],\n constraint: string | undefined,\n): Promise<void> {\n // First update all dependencies that have been bumped in `Cargo.toml`.\n const cmds = [\n 'cargo update --config net.git-fetch-with-cli=true' +\n ` --manifest-path ${quote(manifestPath)} --workspace`,\n ];\n\n // Update individual dependencies to their `newVersion`. Necessary when\n // using the `update-lockfile` rangeStrategy which doesn't touch Cargo.toml.\n for (const dep of updatedDeps) {\n cmds.push(\n `cargo update --config net.git-fetch-with-cli=true` +\n ` --manifest-path ${quote(manifestPath)}` +\n ` --package ${quote(`${dep.packageName}@${dep.lockedVersion}`)}` +\n ` --precise ${quote(dep.newVersion!)}`,\n );\n }\n\n const execOptions: ExecOptions = {\n extraEnv: { ...getGitEnvironmentVariables(['cargo']) },\n docker: {},\n toolConstraints: [{ toolName: 'rust', constraint }],\n };\n\n await exec(cmds, execOptions);\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n return await updateArtifactsImpl(updateArtifact);\n}\n\nasync function updateArtifactsImpl(\n {\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n }: UpdateArtifact,\n recursionLimit = 10,\n): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`cargo.updateArtifacts(${packageFileName})`);\n\n // For standalone package crates, the `Cargo.lock` will be in the same\n // directory as `Cargo.toml` (ie. a sibling). For cargo workspaces, it\n // will be further up.\n const lockFileName = await findLocalSiblingOrParent(\n packageFileName,\n 'Cargo.lock',\n );\n const existingLockFileContent = lockFileName\n ? await readLocalFile(lockFileName)\n : null;\n if (!existingLockFileContent || !lockFileName) {\n logger.debug('No Cargo.lock found');\n return null;\n }\n\n const { isLockFileMaintenance } = config;\n if (!isLockFileMaintenance && !updatedDeps?.length) {\n logger.debug('No more dependencies to update');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: existingLockFileContent,\n },\n },\n ];\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating ' + lockFileName);\n\n if (isLockFileMaintenance) {\n await cargoUpdate(packageFileName, true, config.constraints?.rust);\n } else {\n const nonCrateDep = updatedDeps.find(\n (dep) => dep.datasource !== CrateDatasource.id,\n );\n const crateDepWithoutLockedVersion = updatedDeps.find(\n (dep) => !dep.lockedVersion && dep.datasource === CrateDatasource.id,\n );\n // Non-crate dependencies (like git ones) do not have locked versions.\n // For crate dependencies, not having a locked version is not expected.\n // In both situations, perform a regular workspace lockfile update.\n if (nonCrateDep || crateDepWithoutLockedVersion) {\n if (crateDepWithoutLockedVersion) {\n // Only warn when a crate dependency has no locked version, as this is\n // not an expected situation.\n logger.warn(\n { dependency: crateDepWithoutLockedVersion.depName },\n 'Missing locked version for dependency',\n );\n }\n await cargoUpdate(packageFileName, false, config.constraints?.rust);\n } else {\n // If all dependencies have locked versions then update them precisely.\n await cargoUpdatePrecise(\n packageFileName,\n updatedDeps,\n config.constraints?.rust,\n );\n }\n }\n\n logger.debug('Returning updated Cargo.lock');\n const newCargoLockContent = await readLocalFile(lockFileName);\n if (existingLockFileContent === newCargoLockContent) {\n logger.debug('Cargo.lock is unchanged');\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newCargoLockContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n // Sometimes `cargo update` will fail when a preceding dependency update\n // causes another dependency to update. In this case we can no longer\n // reference the dependency by its old version, so we filter it out\n // and retry recursively.\n const newCargoLockContent = await readLocalFile(lockFileName, 'utf8');\n if (\n recursionLimit > 0 &&\n newCargoLockContent &&\n regEx(/error: package ID specification/).test(err.stderr)\n ) {\n const versions = extractLockFileContentVersions(newCargoLockContent);\n const newUpdatedDeps = updatedDeps.filter(\n (dep) =>\n !coerceArray(versions?.get(dep.packageName!)).includes(\n dep.newVersion!,\n ),\n );\n\n if (newUpdatedDeps.length < updatedDeps.length) {\n logger.debug(\n 'Dependency already up to date - reattempting recursively',\n );\n return updateArtifactsImpl(\n {\n packageFileName,\n updatedDeps: newUpdatedDeps,\n newPackageFileContent,\n config,\n },\n recursionLimit - 1,\n );\n }\n }\n\n logger.debug({ err }, 'Failed to update Cargo lock file');\n\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.updateArtifacts = exports.extractPackageFile = exports.supportsLockFileMaintenance = exports.updateLockedDependency = exports.getRangeStrategy = exports.bumpPackageVersion = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const crate_1 = require("../../datasource/crate");
6
+ const git_refs_1 = require("../../datasource/git-refs");
7
+ const git_tags_1 = require("../../datasource/git-tags");
8
+ const github_tags_1 = require("../../datasource/github-tags");
9
+ const gitlab_tags_1 = require("../../datasource/gitlab-tags");
6
10
  const cargoVersioning = tslib_1.__importStar(require("../../versioning/cargo"));
7
11
  const artifacts_1 = require("./artifacts");
8
12
  Object.defineProperty(exports, "updateArtifacts", { enumerable: true, get: function () { return artifacts_1.updateArtifacts; } });
@@ -22,5 +26,11 @@ exports.defaultConfig = {
22
26
  managerFilePatterns: ['/(^|/)Cargo\\.toml$/'],
23
27
  versioning: cargoVersioning.id,
24
28
  };
25
- exports.supportedDatasources = [crate_1.CrateDatasource.id];
29
+ exports.supportedDatasources = [
30
+ crate_1.CrateDatasource.id,
31
+ github_tags_1.GithubTagsDatasource.id,
32
+ gitlab_tags_1.GitlabTagsDatasource.id,
33
+ git_refs_1.GitRefsDatasource.id,
34
+ git_tags_1.GitTagsDatasource.id,
35
+ ];
26
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/cargo/index.ts"],"names":[],"mappings":";;;;AACA,kDAAyD;AACzD,gFAA0D;AAC1D,2CAA8C;AAQjB,gGARpB,2BAAe,OAQoB;AAP5C,uCAA+C;AAOtC,mGAPA,4BAAkB,OAOA;AAN3B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,iDAAyD;AAAhD,uHAAA,sBAAsB,OAAA;AAElB,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAInC,QAAA,GAAG,GAAG,iCAAiC,CAAC;AACxC,QAAA,UAAU,GAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAA,aAAa,GAAG;IAC3B,kBAAkB,EAAE,wBAAwB;IAC5C,mBAAmB,EAAE,CAAC,sBAAsB,CAAC;IAC7C,UAAU,EAAE,eAAe,CAAC,EAAE;CAC/B,CAAC;AAEW,QAAA,oBAAoB,GAAG,CAAC,uBAAe,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { CrateDatasource } from '../../datasource/crate';\nimport * as cargoVersioning from '../../versioning/cargo';\nimport { updateArtifacts } from './artifacts';\nimport { extractPackageFile } from './extract';\nexport { bumpPackageVersion } from './update';\nexport { getRangeStrategy } from './range';\nexport { updateLockedDependency } from './update-locked';\n\nexport const supportsLockFileMaintenance = true;\n\nexport { extractPackageFile, updateArtifacts };\n\nexport const url = 'https://doc.rust-lang.org/cargo';\nexport const categories: Category[] = ['rust'];\n\nexport const defaultConfig = {\n commitMessageTopic: 'Rust crate {{depName}}',\n managerFilePatterns: ['/(^|/)Cargo\\\\.toml$/'],\n versioning: cargoVersioning.id,\n};\n\nexport const supportedDatasources = [CrateDatasource.id];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/cargo/index.ts"],"names":[],"mappings":";;;;AACA,kDAAyD;AACzD,wDAA8D;AAC9D,wDAA8D;AAC9D,8DAAoE;AACpE,8DAAoE;AACpE,gFAA0D;AAC1D,2CAA8C;AAQjB,gGARpB,2BAAe,OAQoB;AAP5C,uCAA+C;AAOtC,mGAPA,4BAAkB,OAOA;AAN3B,mCAA8C;AAArC,4GAAA,kBAAkB,OAAA;AAC3B,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AACzB,iDAAyD;AAAhD,uHAAA,sBAAsB,OAAA;AAElB,QAAA,2BAA2B,GAAG,IAAI,CAAC;AAInC,QAAA,GAAG,GAAG,iCAAiC,CAAC;AACxC,QAAA,UAAU,GAAe,CAAC,MAAM,CAAC,CAAC;AAElC,QAAA,aAAa,GAAG;IAC3B,kBAAkB,EAAE,wBAAwB;IAC5C,mBAAmB,EAAE,CAAC,sBAAsB,CAAC;IAC7C,UAAU,EAAE,eAAe,CAAC,EAAE;CAC/B,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,uBAAe,CAAC,EAAE;IAClB,kCAAoB,CAAC,EAAE;IACvB,kCAAoB,CAAC,EAAE;IACvB,4BAAiB,CAAC,EAAE;IACpB,4BAAiB,CAAC,EAAE;CACrB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { CrateDatasource } from '../../datasource/crate';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport * as cargoVersioning from '../../versioning/cargo';\nimport { updateArtifacts } from './artifacts';\nimport { extractPackageFile } from './extract';\nexport { bumpPackageVersion } from './update';\nexport { getRangeStrategy } from './range';\nexport { updateLockedDependency } from './update-locked';\n\nexport const supportsLockFileMaintenance = true;\n\nexport { extractPackageFile, updateArtifacts };\n\nexport const url = 'https://doc.rust-lang.org/cargo';\nexport const categories: Category[] = ['rust'];\n\nexport const defaultConfig = {\n commitMessageTopic: 'Rust crate {{depName}}',\n managerFilePatterns: ['/(^|/)Cargo\\\\.toml$/'],\n versioning: cargoVersioning.id,\n};\n\nexport const supportedDatasources = [\n CrateDatasource.id,\n GithubTagsDatasource.id,\n GitlabTagsDatasource.id,\n GitRefsDatasource.id,\n GitTagsDatasource.id,\n];\n"]}