renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
758 lines (757 loc) • 19.6 kB
JavaScript
import { presets as presets$1 } from "./monorepos.preset.js";
//#region lib/config/presets/internal/group.preset.ts
const nonPinUpdateTypes = [
"digest",
"patch",
"minor",
"major"
];
const config = {
all: {
description: "Group all updates together.",
groupName: "all dependencies",
groupSlug: "all",
packageRules: [{
groupName: "all dependencies",
groupSlug: "all",
matchPackageNames: ["*"]
}],
separateMajorMinor: false
},
allApollographql: {
description: "Group all packages published by Apollo GraphQL together.",
packageRules: [{
extends: ["packages:apollographql"],
groupName: "Apollo GraphQL packages"
}]
},
allDigest: {
description: "Group all `digest` updates together.",
packageRules: [{
groupName: "all digest updates",
groupSlug: "all-digest",
matchPackageNames: ["*"],
matchUpdateTypes: ["digest"]
}]
},
allNonMajor: {
description: "Group all `minor` and `patch` updates together.",
packageRules: [{
groupName: "all non-major dependencies",
groupSlug: "all-minor-patch",
matchPackageNames: ["*"],
matchUpdateTypes: ["minor", "patch"]
}]
},
apiPlatform: {
description: "Group PHP API Platform packages together.",
packageRules: [{
groupName: "api-platform packages",
groupSlug: "api-platform",
matchDatasources: ["packagist"],
matchPackageNames: [
"api-platform/*",
"!api-platform/admin-meta",
"!api-platform/admin-pack",
"!api-platform/api-pack",
"!api-platform/api-platform",
"!api-platform/parameter-validator",
"!api-platform/postman-collection-generator",
"!api-platform/schema-generator"
]
}]
},
atlaskit: {
description: "Group all Atlassian `@atlaskit` packages together.",
packageRules: [{
extends: ["packages:atlaskit"],
groupName: "Atlassian Atlaskit packages"
}]
},
codemirror: {
description: "Group CodeMirror packages together.",
packageRules: [{
groupName: "CodeMirror",
matchPackageNames: ["@codemirror/**"]
}]
},
definitelyTyped: {
description: "Group all `@types` packages together.",
packageRules: [{
groupName: "definitelyTyped",
matchPackageNames: ["@types/**"]
}]
},
dotNetCore: {
description: ".NET Core Docker containers.",
packageRules: [{
groupName: ".NET Core Docker containers",
matchDatasources: ["docker"],
matchPackageNames: ["mcr.microsoft.com/dotnet/**"]
}]
},
"drupal-core": {
description: "Group Drupal core updates.",
packageRules: [{
groupName: "Drupal core",
matchPackageNames: ["drupal/core", "drupal/core-*"]
}]
},
flyway: {
description: "Group Java Flyway packages.",
packageRules: [{
groupName: "flyway",
matchPackageNames: ["org.flywaydb:*", "org.flywaydb.flyway:*"]
}]
},
fortawesome: {
description: "Group all packages by Font Awesome together.",
packageRules: [{
groupName: "Font Awesome",
matchPackageNames: ["@fortawesome/**"]
}]
},
fusionjs: {
description: "Group Fusion.js packages together.",
packageRules: [{
groupName: "Fusion.js packages",
matchPackageNames: [
"fusion-cli",
"fusion-core",
"fusion-test-utils",
"fusion-tokens",
"fusion-plugin-**",
"fusion-react**",
"fusion-apollo**"
]
}]
},
githubArtifactActions: {
description: "Group `download-artifact` and `upload-artifact` major updates together.",
packageRules: [{
groupName: "GitHub Artifact Actions",
matchManagers: ["github-actions"],
matchPackageNames: ["actions/download-artifact", "actions/upload-artifact"],
matchUpdateTypes: ["major"]
}]
},
glimmer: {
description: "Group Glimmer.js packages together.",
packageRules: [{
groupName: "Glimmer.js packages",
groupSlug: "glimmer",
matchPackageNames: ["@glimmer/component", "@glimmer/tracking"]
}]
},
googleapis: {
description: "Group `googleapis` packages together.",
packageRules: [{
extends: ["packages:googleapis"],
groupName: "googleapis packages"
}]
},
goOpenapi: {
description: "Group `go-openapi` packages together.",
packageRules: [{
groupName: "go-openapi packages",
groupSlug: "go-openapi",
matchDatasources: ["go"],
matchPackageNames: ["github.com/go-openapi/**"]
}]
},
gradle: {
description: "Group anything that looks like Gradle together so that it's updated together.",
packageRules: [{
commitMessageTopic: "Gradle",
matchDatasources: ["docker", "gradle-version"],
matchPackageNames: ["/(?:^|/)gradle$/"]
}]
},
hibernateCommons: {
description: "Group Java Hibernate Commons packages.",
packageRules: [{
groupName: "hibernate commons",
matchPackageNames: ["org.hibernate.common:**"]
}]
},
hibernateCore: {
description: "Group Java Hibernate Core packages.",
packageRules: [{
groupName: "hibernate core",
matchPackageNames: ["org.hibernate:**"]
}]
},
hibernateOgm: {
description: "Group Java Hibernate OGM packages.",
packageRules: [{
groupName: "hibernate ogm",
matchPackageNames: ["org.hibernate.ogm:**"]
}]
},
hibernateValidator: {
description: "Group Java Hibernate Validator packages.",
packageRules: [{
groupName: "hibernate validator",
matchPackageNames: ["org.hibernate.validator:**"]
}]
},
illuminate: {
description: "Group PHP Illuminate packages together.",
packageRules: [{
groupName: "illuminate packages",
groupSlug: "illuminate",
matchPackageNames: ["illuminate/**"]
}]
},
jekyllEcosystem: {
description: "Group Jekyll and related Ruby packages together.",
packageRules: [{
groupName: "jekyll ecosystem packages",
matchSourceUrls: ["https://github.com/jekyll/**", "https://github.com/github/pages-gem**"]
}]
},
jestPlusTSJest: {
description: "Add `ts-jest` `major` update to Jest monorepo.",
packageRules: [{
groupName: "jest monorepo",
matchSourceUrls: ["https://github.com/kulshekhar/ts-jest"],
matchUpdateTypes: ["major"]
}]
},
jestPlusTypes: {
description: "Add `@types/jest` update to Jest monorepo.",
packageRules: [{
groupName: "jest monorepo",
matchPackageNames: ["@types/jest"],
matchUpdateTypes: nonPinUpdateTypes
}]
},
jsTest: {
description: "Group JS test packages together.",
packageRules: [{
extends: ["packages:jsTest"],
groupName: "JS test packages"
}]
},
jsTestNonMajor: {
description: "Group non-major JS test package updates together.",
packageRules: [{
extends: ["packages:jsTest"],
groupName: "JS test packages",
matchUpdateTypes: ["minor", "patch"]
}]
},
jsUnitTest: {
description: "Group JavaScript unit test packages together.",
packageRules: [{
extends: ["packages:jsUnitTest"],
groupName: "JS unit test packages"
}]
},
jsUnitTestNonMajor: {
description: "Group JavaScipt unit test packages together for non-major updates.",
packageRules: [{
extends: ["packages:jsUnitTest"],
groupName: "JS unit test packages",
matchUpdateTypes: ["minor", "patch"]
}]
},
jwtFramework: {
description: "Group JWT Framework packages together.",
packageRules: [{
groupName: "JWT Framework packages",
matchDatasources: ["packagist"],
matchPackageNames: ["web-token/**"]
}]
},
linters: {
description: "Group various lint packages together.",
packageRules: [{
extends: ["packages:linters"],
groupName: "linters"
}]
},
micrometer: {
description: "Group Micrometer packages together, e.g. 'io.micrometer:micrometer-core'.",
packageRules: [{
groupName: "micrometer",
matchPackageNames: ["io.micrometer:micrometer-**"]
}]
},
nodeJs: {
description: "Group anything that looks like Node.js together so that it's updated together.",
packageRules: [{
commitMessageTopic: "Node.js",
matchDatasources: ["docker", "node-version"],
matchPackageNames: [
"/(?:^|/)node$/",
"!calico/node",
"!docker.io/calico/node",
"!ghcr.io/devcontainers/features/node",
"!kindest/node",
"!docker.io/kindest/node"
]
}]
},
phpstan: {
description: "Group PHPStan packages together.",
packageRules: [{
groupName: "PHPStan packages",
matchDatasources: ["packagist"],
matchPackageNames: [
"phpstan/phpstan",
"//phpstan-/",
"//larastan/",
"phpstan/extension-installer"
]
}]
},
pnpm: {
description: "Group pnpm packages together.",
packageRules: [{
groupName: "pnpm packages",
matchDatasources: ["docker", "npm"],
matchPackageNames: ["pnpm", "ghcr.io/pnpm/pnpm"]
}]
},
polymer: {
description: "Group all `@polymer` packages together.",
packageRules: [{
groupName: "polymer packages",
matchPackageNames: ["@polymer/**"]
}]
},
postcss: {
description: "Group PostCSS packages together.",
packageRules: [{
extends: ["packages:postcss"],
groupName: "postcss packages"
}]
},
pulumi: {
description: "Group Pulumi packages together.",
packageRules: [
{
description: "Group Pulumi Node.JS packages together.",
groupName: "Pulumi",
groupSlug: "pulumi-node",
matchDatasources: ["npm"],
matchPackageNames: ["@pulumi/**"]
},
{
description: "Group Pulumi Python packages together.",
groupName: "Pulumi",
groupSlug: "pulumi-python",
matchDatasources: ["pypi"],
matchPackageNames: ["pulumi-**"]
},
{
description: "Group Pulumi Go packages together.",
groupName: "Pulumi",
groupSlug: "pulumi-go",
matchDatasources: ["go"],
matchPackageNames: ["github.com/pulumi/**"]
},
{
description: "Group Pulumi Java packages together.",
groupName: "Pulumi",
groupSlug: "pulumi-java",
matchDatasources: ["maven"],
matchPackageNames: ["com.pulumi**"]
},
{
description: "Group Pulumi .NET packages together.",
groupName: "Pulumi",
groupSlug: "pulumi-dotnet",
matchDatasources: ["nuget"],
matchPackageNames: ["Pulumi**"]
}
]
},
puppeteer: {
description: "Group Puppeteer packages together.",
packageRules: [{
groupName: "Puppeteer",
matchDatasources: ["npm"],
matchPackageNames: ["puppeteer", "puppeteer-core"]
}]
},
react: {
description: "Group React and corresponding `@types` packages together.",
packageRules: [{
groupName: "react monorepo",
matchPackageNames: [
"@types/react",
"@types/react-dom",
"@types/react-is"
]
}]
},
recommended: {
description: "Use curated list of recommended non-monorepo package groupings.",
extends: [
"group:nodeJs",
"group:allApollographql",
"group:apiPlatform",
"group:codemirror",
"group:flyway",
"group:fortawesome",
"group:fusionjs",
"group:githubArtifactActions",
"group:glimmer",
"group:goOpenapi",
"group:gradle",
"group:hibernateCore",
"group:hibernateValidator",
"group:hibernateOgm",
"group:hibernateCommons",
"group:illuminate",
"group:jekyllEcosystem",
"group:jestPlusTSJest",
"group:jestPlusTypes",
"group:jwtFramework",
"group:micrometer",
"group:phpstan",
"group:polymer",
"group:puppeteer",
"group:react",
"group:remark",
"group:resilience4j",
"group:rubyOnRails",
"group:rubyOmniauth",
"group:socketio",
"group:springAmqp",
"group:springAndroid",
"group:springBatch",
"group:springBoot",
"group:springCloud",
"group:springCore",
"group:springData",
"group:springHateoas",
"group:springIntegration",
"group:springKafka",
"group:springLdap",
"group:springMobile",
"group:springOsgi",
"group:springRestDocs",
"group:springRoo",
"group:springScala",
"group:springSecurity",
"group:springSession",
"group:springShell",
"group:springSocial",
"group:springStatemachine",
"group:springWebflow",
"group:springWs",
"group:symfony"
],
ignoreDeps: []
},
remark: {
description: "Group remark packages together.",
packageRules: [{
groupName: "remark",
matchDatasources: ["npm"],
matchSourceUrls: ["https://github.com/remarkjs/**"]
}]
},
resilience4j: {
description: "Group Java Resilience4j packages.",
packageRules: [{
groupName: "resilience4j",
matchPackageNames: ["io.github.resilience4j:**"]
}]
},
rubyOmniauth: {
description: "Group OmniAuth packages together.",
packageRules: [{
groupName: "omniauth packages",
matchDatasources: ["rubygems"],
matchPackageNames: ["omniauth**"]
}]
},
rubyOnRails: {
description: "Group Ruby on Rails packages together.",
packageRules: [{
groupName: "Ruby on Rails packages",
matchDatasources: ["rubygems"],
matchPackageNames: [
"actioncable",
"actionmailbox",
"actionmailer",
"actionpack",
"actiontext",
"actionview",
"activejob",
"activemodel",
"activerecord",
"activestorage",
"activesupport",
"railties",
"rails"
]
}]
},
socketio: {
description: "Group socket.io packages.",
packageRules: [{
groupName: "socket.io packages",
matchPackageNames: ["socket.io**"]
}]
},
springAmqp: {
description: "Group Java Spring AMQP packages.",
packageRules: [{
groupName: "spring amqp",
matchPackageNames: ["org.springframework.amqp:**"]
}]
},
springAndroid: {
description: "Group Java Spring Android packages.",
packageRules: [{
groupName: "spring android",
matchPackageNames: ["org.springframework.android:**"]
}]
},
springBatch: {
description: "Group Java Spring Batch packages.",
packageRules: [{
groupName: "spring batch",
matchPackageNames: ["org.springframework.batch:**"]
}]
},
springBoot: {
description: "Group Java Spring Boot packages.",
packageRules: [{
groupName: "spring boot",
matchDepNames: ["org.springframework.boot"]
}, {
groupName: "spring boot",
matchPackageNames: ["org.springframework.boot:**"]
}]
},
springCloud: {
description: "Group Java Spring Cloud packages.",
packageRules: [{
groupName: "spring cloud",
matchPackageNames: ["org.springframework.cloud:**"]
}]
},
springCore: {
description: "Group Java Spring Core packages.",
packageRules: [{
groupName: "spring core",
matchPackageNames: ["org.springframework:**"]
}]
},
springData: {
description: "Group Java Spring Data packages.",
packageRules: [{
groupName: "spring data",
matchPackageNames: ["org.springframework.data:**"]
}]
},
springHateoas: {
description: "Group Java Spring HATEOAS packages.",
packageRules: [{
groupName: "spring hateoas",
matchPackageNames: ["org.springframework.hateoas:**"]
}]
},
springIntegration: {
description: "Group Java Spring Integration packages.",
packageRules: [{
groupName: "spring integration",
matchPackageNames: ["org.springframework.integration:**"]
}]
},
springKafka: {
description: "Group Java Spring Kafka packages.",
packageRules: [{
groupName: "spring kafka",
matchPackageNames: ["org.springframework.kafka:**"]
}]
},
springLdap: {
description: "Group Java Spring LDAP packages.",
packageRules: [{
groupName: "spring ldap",
matchPackageNames: ["org.springframework.ldap:**"]
}]
},
springMobile: {
description: "Group Java Spring Mobile packages.",
packageRules: [{
groupName: "spring mobile",
matchPackageNames: ["org.springframework.mobile:**"]
}]
},
springOsgi: {
description: "Group Java Spring OSGi packages.",
packageRules: [{
groupName: "spring osgi",
matchPackageNames: ["org.springframework.osgi:**"]
}]
},
springRestDocs: {
description: "Group Java Spring REST Docs packages.",
packageRules: [{
groupName: "spring restdocs",
matchPackageNames: ["org.springframework.restdocs:**"]
}]
},
springRoo: {
description: "Group Java Spring Roo packages.",
packageRules: [{
groupName: "spring roo",
matchPackageNames: ["org.springframework.roo:**"]
}]
},
springScala: {
description: "Group Java Spring Scala packages.",
packageRules: [{
groupName: "spring scala",
matchPackageNames: ["org.springframework.scala:**"]
}]
},
springSecurity: {
description: "Group Java Spring Security packages.",
packageRules: [{
groupName: "spring security",
matchPackageNames: ["org.springframework.security:**"]
}]
},
springSession: {
description: "Group Java Spring Session packages.",
packageRules: [{
groupName: "spring session",
matchPackageNames: ["org.springframework.session:**"]
}]
},
springShell: {
description: "Group Java Spring Shell packages.",
packageRules: [{
groupName: "spring shell",
matchPackageNames: ["org.springframework.shell:**"]
}]
},
springSocial: {
description: "Group Java Spring Social packages.",
packageRules: [{
groupName: "spring social",
matchPackageNames: ["org.springframework.social:**"]
}]
},
springStatemachine: {
description: "Group Java Spring Statemachine packages.",
packageRules: [{
groupName: "spring statemachine",
matchPackageNames: ["org.springframework.statemachine:**"]
}]
},
springWebflow: {
description: "Group Java Spring WebFlow packages.",
packageRules: [{
groupName: "spring webflow",
matchPackageNames: ["org.springframework.webflow:**"]
}]
},
springWs: {
description: "Group Java Spring WS packages.",
packageRules: [{
groupName: "spring ws",
matchPackageNames: ["org.springframework.ws:**"]
}]
},
stylelint: {
description: "Group stylelint packages together.",
packageRules: [{
extends: ["packages:stylelint"],
groupName: "stylelint packages",
groupSlug: "stylelint",
separateMajorMinor: false
}]
},
symfony: {
description: "Group PHP Symfony packages together.",
packageRules: [{
groupName: "symfony packages",
groupSlug: "symfony",
matchDatasources: ["packagist"],
matchPackageNames: [
"symfony/*",
"!symfony/*contracts",
"!symfony/*pack",
"!symfony/flex",
"!symfony/maker-bundle",
"!symfony/monolog-bundle",
"!symfony/panther",
"!symfony/polyfill*",
"!symfony/proxy-manager-bridge",
"!symfony/security-guard",
"!symfony/stimulus-bundle",
"!symfony/templating",
"!symfony/thanks",
"!symfony/ux*",
"!symfony/webpack-encore-bundle"
]
}]
},
test: {
description: "Group all test packages together.",
packageRules: [{
extends: ["packages:test"],
groupName: "test packages"
}]
},
testNonMajor: {
description: "Group all non-major test package updates together.",
packageRules: [{
extends: ["packages:test"],
groupName: "test packages",
matchUpdateTypes: ["minor", "patch"]
}]
},
unitTest: {
description: "Group all unit test packages together.",
packageRules: [{
extends: ["packages:unitTest"],
groupName: "unit test packages"
}]
},
unitTestNonMajor: {
description: "Group all unit test packages together for non-major updates.",
packageRules: [{
extends: ["packages:unitTest"],
groupName: "unit test packages",
matchUpdateTypes: ["minor", "patch"]
}]
},
vite: {
description: "Group all Vite related packages together.",
packageRules: [{
extends: ["packages:vite"],
groupName: "Vite packages"
}]
}
};
const monorepoNames = [];
for (const monorepo of Object.keys(presets$1)) {
const name = `${monorepo}Monorepo`;
monorepoNames.push(`group:${name}`);
config[name] = { packageRules: [{
description: `Group packages from ${monorepo} monorepo together.`,
extends: [`monorepo:${monorepo}`],
groupName: `${monorepo} monorepo`,
matchUpdateTypes: nonPinUpdateTypes
}] };
}
config.monorepos = {
description: "Group known monorepo packages together.",
extends: monorepoNames,
ignoreDeps: []
};
const presets = config;
//#endregion
export { presets };
//# sourceMappingURL=group.preset.js.map