Files
ionic-framework/renovate.json5
Maria Hutt 57687623aa chore(renovate): configure node version consistency (#30816)
Issue number: N/A

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Core does not indicate what node version we should be running, which can
lead to inconsistent versions between local and workflows. These
inconsistencies can lead to workflow failures.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- Provides the node version within package
- Updates the node version of workflows and package at the same time

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

<!--
  If this introduces a breaking change:
1. Describe the impact and migration path for existing applications
below.
  2. Update the BREAKING.md file with the breaking change.
3. Add "BREAKING CHANGE: [...]" to the commit description when merging.
See
https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer
for more information.
-->


## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->
2025-12-08 17:16:10 +00:00

128 lines
3.8 KiB
Plaintext

{
$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"
]
}