Skip to content
Snippets Groups Projects
workarounds.ts 5.63 KiB
Newer Older
import type { Preset } from '../types';
/* eslint sort-keys: ["error", "asc", {caseSensitive: false, natural: true}] */

export const presets: Record<string, Preset> = {
  all: {
    description: [
      'Apply crowd-sourced workarounds for known problems with packages.',
      'workarounds:mavenCommonsAncientVersion',
      'workarounds:ignoreSpringCloudNumeric',
      'workarounds:ignoreWeb3jCoreWithOldReleaseTimestamp',
      'workarounds:ignoreHttp4sDigestMilestones',
      'workarounds:typesNodeVersioning',
      'workarounds:reduceRepologyServerLoad',
      'workarounds:doNotUpgradeFromAlpineStableToEdge',
      'workarounds:supportRedHatImageVersion',
      'workarounds:disableMavenParentRoot',
      'workarounds:containerbase',
    ignoreDeps: [], // Hack to improve onboarding PR description
    description: 'Add some containerbase overrides.',
    packageRules: [
      {
        description:
          'Use node versioning for `(containerbase|renovate)/node` images',
        matchDatasources: ['docker'],
        matchPackagePatterns: [
          '^(?:(?:docker|ghcr)\\.io/)?(?:containerbase|renovate)/node$',
        ],
        versioning: 'node',
      },
    ],
  },
  disableEclipseLifecycleMapping: {
    description: 'Disable Eclipse m2e lifecycle-mapping placeholder package.',
    packageRules: [
      {
        enabled: false,
        matchDatasources: ['maven'],
        matchPackageNames: ['org.eclipse.m2e:lifecycle-mapping'],
      },
    ],
  },
  disableMavenParentRoot: {
    description:
      'Avoid version fetching for Maven packages detected as project root.',
        enabled: false,
        matchDepTypes: ['parent-root'],
        matchManagers: ['maven'],
      },
    ],
  },
  doNotUpgradeFromAlpineStableToEdge: {
    description: 'Do not upgrade from Alpine stable to edge.',
    packageRules: [
      {
        allowedVersions: '<20000000',
        matchCurrentVersion: '!/^\\d{8}$/',
        matchDatasources: ['docker'],
        matchPackageNames: ['alpine'],
      },
    ],
  },
  ignoreHttp4sDigestMilestones: {
    description: 'Ignore `http4s` digest-based `1.x` milestones.',
    packageRules: [
      {
        allowedVersions: `!/^1\\.0-\\d+-[a-fA-F0-9]{7}$/`,
        matchManagers: ['sbt'],
        matchPackagePrefixes: ['org.http4s:'],
    description: 'Ignore spring cloud `1.x` releases.',
        allowedVersions: '/^[A-Z]/',
        matchDatasources: ['maven'],
        matchPackageNames: [
          'org.springframework.cloud:spring-cloud-starter-parent',
        ],
  ignoreWeb3jCoreWithOldReleaseTimestamp: {
    description: 'Ignore `web3j` `5.0.0` release.',
        allowedVersions: '!/^5\\.0\\.0/',
        matchDatasources: ['maven'],
        matchPackageNames: ['org.web3j:core'],
      },
    ],
  },
    description: 'Limit Java runtime versions to LTS releases.',
        allowedVersions: '/^(?:8|11|17|21)(?:\\.|-|$)/',
        description:
          'Limit Java runtime versions to LTS releases. To receive all major releases add `workarounds:javaLTSVersions` to the `ignorePresets` array.',
        matchDatasources: ['docker', 'java-version'],
        matchPackageNames: [
          'eclipse-temurin',
          'amazoncorretto',
          'adoptopenjdk',
          'openjdk',
          'java',
          'java-jre',
          'sapmachine',
        ],
        matchPackagePatterns: [
          '^azul/zulu-openjdk',
          '^bellsoft/liberica-openj(dk|re)-',
        ],
        versioning:
          'regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>\\d+))?(-(?<compatibility>.*))?$',
  mavenCommonsAncientVersion: {
    description: 'Fix some problems with very old Maven commons versions.',
        allowedVersions: '!/^200\\d{5}(\\.\\d+)?/',
        matchDatasources: ['maven', 'sbt-package'],
        matchPackagePrefixes: ['commons-'],
  reduceRepologyServerLoad: {
    description:
      'Limit concurrent requests to reduce load on Repology servers until we can fix this properly, see issue `#10133`.',
    hostRules: [
      {
        concurrentRequestLimit: 1,
        matchHost: 'repology.org',
      'Use specific versioning for Red Hat-maintained container images.',
        matchPackageNames: [
          'registry.access.redhat.com/rhel',
          'registry.access.redhat.com/rhel-atomic',
          'registry.access.redhat.com/rhel-init',
          'registry.access.redhat.com/rhel-minimal',
        ],
        matchPackagePrefixes: [
          'registry.access.redhat.com/rhceph/',
          'registry.access.redhat.com/rhgs3/',
          'registry.access.redhat.com/rhel7',
          'registry.access.redhat.com/rhel8/',
          'registry.access.redhat.com/rhel9/',
          'registry.access.redhat.com/rhscl/',
          'registry.access.redhat.com/ubi7',
          'registry.access.redhat.com/ubi8',
          'registry.access.redhat.com/ubi9',
          'redhat/',
        ],
        versioning: 'redhat',
      },
    ],
  },
  typesNodeVersioning: {
    description: 'Use node versioning for `@types/node`.',
        matchManagers: ['npm'],
        matchPackageNames: ['@types/node'],
        versioning: `node`,