{ $schema: "https://docs.renovatebot.com/renovate-schema.json", extends: ["config:base", ":semanticCommitTypeAll(chore)"], packageRules: [ { // Group these two as they may rely on one another during major version bumps matchPackageNames: ["actions/download-artifact", "actions/upload-artifact"], groupName: "Download + Upload Artifacts" }, { matchPackagePatterns: ["@stencil/core", "@stencil/sass"], groupName: "stencil", matchFileNames: [ "core/package.json" ] }, { matchPackagePatterns: ["@stencil/angular-output-target", "@stencil/react-output-target", "@stencil/vue-output-target"], groupName: "stencil-output-targets", matchFileNames: [ "core/package.json" ] }, // TODO(ROU-11172): unpin React output target version { matchPackageNames: ["@stencil/react-output-target"], matchFileNames: [ "core/package.json" ], allowedVersions: ["<=0.5.3"] }, { matchPackagePatterns: ["@capacitor/core", "@capacitor/keyboard", "@capacitor/haptics", "@capacitor/status-bar"], groupName: "capacitor", matchFileNames: [ "core/package.json" ] }, { matchDatasources: ["npm"], matchPackagePatterns: ["@playwright/test", "@axe-core/playwright"], groupName: "playwright", matchFileNames: [ "core/package.json" ], "rangeStrategy": "bump" }, { matchDatasources: ["docker"], matchPackageNames: ["mcr.microsoft.com/playwright"], groupName: "playwright", matchFileNames: [ "core/Dockerfile" ], versioning: "semver" }, { matchPackagePatterns: ["ionicons"], groupName: "ionicons", matchFileNames: [ "core/package.json" ] }, /** * While we update dependencies in certain directories, we currently * do not want to update every single dependency. Some of the dependencies are * very out of date, and the team needs to schedule work to account for * breaking changes in some of these updates. To potentially avoid a large number of * failing PRs the team has chosen to selectively enable dependencies to be updated * as we have capacity to account for breaking changes. */ { matchPackagePatterns: ["tslib", "@ionic/", "@rollup/", "@types/", "@typescript-eslint/", "clean-css-cli", "domino", "eslint", "eslint-config-prettier", "execa", "fs-extra", "jest", "jest-cli", "prettier", "puppeteer", "rollup", "sass", "serve", "stylelint", "stylelint-order"], groupName: "core-disabled", matchFileNames: [ "core/package.json" ], enabled: false }, /** * Local Ionic dependencies are managed by the * workspace to ensure the correct local version is used. */ { matchPackagePatterns: ["@ionic/", "ionicons"], groupName: "ignore-local-ionic-deps", matchFileNames: [ "**/package.json" ], enabled: false }, { matchPackagePatterns: ["lerna", "semver"], groupName: "root-disabled", matchFileNames: [ "package.json" ], enabled: false }, { /** * Group Node version updates into a single PR to update * the workflows and core package.json simultaneously. */ matchDatasources: ["node-version"], matchPackagePatterns: ["node"], groupName: "node-version-updates" } ], dependencyDashboard: false, rebaseWhen: "never", schedule: ["every weekday before 11am"], semanticCommits: "enabled", ignorePaths: [ // Ionic Packages "packages/angular", "packages/angular-server", "packages/react", "packages/react-router", "packages/vue", "packages/vue-router", "docs", // Local Development Scripts "core/custom-rules", "core/scripts" ] }