diff --git a/renovate.json5 b/renovate.json5 index 43355ace..61ca65db 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -1,79 +1,49 @@ { - // Validate against Renovate JSON schema $schema: 'https://docs.renovatebot.com/renovate-schema.json', - - // Base configuration presets extends: [ - 'config:best-practices', // Use Renovate's recommended best practices - 'mergeConfidence:all-badges', // Enable merge confidence badges - ':maintainLockFilesMonthly', // Update lock files monthly - ':timezone(America/Indiana/Indianapolis)', // Set timezone - ':enableVulnerabilityAlerts', // Enable security vulnerability alerts - ':automergeMinor', // Auto-merge minor updates - 'group:react', // Group React packages together - 'group:reactMonorepo', // Group React monorepo packages - 'group:eslintMonorepo', // Group ESLint monorepo packages - 'group:linters', // Group linting tools - 'group:jestMonorepo', // Group Jest monorepo packages - 'group:jestPlusTypes', // Group Jest with its types - 'group:jestPlusTSJest', // Group Jest with TypeScript Jest + 'config:best-practices', + 'mergeConfidence:all-badges', + ':maintainLockFilesMonthly', + ':timezone(America/Indiana/Indianapolis)', + ':enableVulnerabilityAlerts', + ':automergeMinor', + 'group:react', + 'group:reactMonorepo', + 'group:eslintMonorepo', + 'group:linters', + 'group:jestMonorepo', + 'group:jestPlusTypes', + 'group:jestPlusTSJest', ], - - // Version management strategies - rangeStrategy: 'bump', // Bump ranges to next version - bumpVersion: 'patch', // Use patch version for bumping - - // Enable dependency dashboard for overview + rangeStrategy: 'bump', + bumpVersion: 'patch', dependencyDashboard: true, - - // Rate limiting to avoid overwhelming CI - prConcurrentLimit: 10, // Max 10 concurrent PRs - prHourlyLimit: 0, // No hourly limit - - // Rebase strategy + prConcurrentLimit: 10, + prHourlyLimit: 0, rebaseWhen: 'auto', - - // Schedule for when to run updates schedule: [ 'after 8am and before 5pm on monday', ], - - // Schedule for when to automerge automergeSchedule: [ 'after 8am and before 5pm on monday', ], - - // Allow updates outside of schedule updateNotScheduled: false, - - // Give everything some time to bake minimumReleaseAge: '3 days', - - // Automerge via PR (not branch) automergeType: 'pr', - - // Security update configuration vulnerabilityAlerts: { - automerge: true, // Auto-merge security fixes + automerge: true, labels: [ 'security', ], - vulnerabilityFixStrategy: 'lowest', // Use lowest possible version that fixes vulnerability - prCreation: 'immediate', // Create PRs immediately for security issues + vulnerabilityFixStrategy: 'lowest', + prCreation: 'immediate', }, - - // Enable OSV vulnerability alerts osvVulnerabilityAlerts: true, - - // Disable platform automerge (use Renovate's automerge instead) platformAutomerge: false, - - // Package-specific rules packageRules: [ { - // Special handling for @stanlemon packages (my own packages) groupName: 'my own packages', - minimumReleaseAge: null, // No waiting period for my own packages + minimumReleaseAge: null, matchPackageNames: [ '/^@stanlemon/', ], @@ -82,18 +52,16 @@ 'minor', 'patch', ], - automergeType: 'branch', // Use branch automerge for faster deployment + automergeType: 'branch', automerge: true, }, { - // Disable updating nodejs package peer dependencies matchDepTypes: [ - 'peerDependencies' + 'peerDependencies', ], - enabled: false + enabled: false, }, { - // Group Node.js updates together groupName: 'nodejs updates', matchPackageNames: [ 'node', @@ -112,7 +80,6 @@ ], }, { - // Override datasource for node package in npm to use node-version matchPackageNames: [ 'node', ], @@ -123,7 +90,6 @@ overridePackageName: 'node', }, { - // Override datasource for node package in nvm to use node-version matchPackageNames: [ 'node', ], @@ -134,7 +100,6 @@ overridePackageName: 'node', }, { - // Override datasource for @types/node to use node-version matchPackageNames: [ '@types/node', ], @@ -145,7 +110,6 @@ overridePackageName: 'node', }, { - // Override datasource for node package in docker to use node-version matchPackageNames: [ 'node', ], @@ -156,35 +120,34 @@ overridePackageName: 'node', }, { - // Special handling for Node.js major version updates groupName: 'node majors (LTS gate)', matchDatasources: [ - 'node-version' + 'node-version', ], matchPackageNames: [ 'node', '@types/node', ], matchUpdateTypes: [ - 'major' + 'major', ], - minimumReleaseAge: '7 months', // Wait longer for major Node.js releases - internalChecksFilter: 'strict', // Strict internal checks for major updates - automerge: false, // Don't automerge major Node.js updates + minimumReleaseAge: '7 months', + internalChecksFilter: 'strict', + automerge: false, }, { - // Catch-all rule for npm non-major updates groupName: 'npm non-major (catch-all)', groupSlug: 'npm-all-non-major', matchManagers: [ - 'npm' + 'npm', ], matchUpdateTypes: [ 'minor', 'patch', ], - // Exclude my own packages (handled separately) - excludePackageNames: ['/^@stanlemon\\//'] - } + matchPackageNames: [ + '!/^@stanlemon\\//', + ], + }, ], }