chore: Configure Renovate - #1
Conversation
ca5e56e to
e9a75bc
Compare
Renovate governs what enters package-lock.json, and npm ci installs from the lockfile without applying min-release-age. So the .npmrc cooldown added in #51 only covers local resolution -- this is what gates the versions that actually ship. Matches the 1-day cooldown already set in .npmrc. Refs #12 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
drobnikj
left a comment
There was a problem hiding this comment.
I guess this is just kick off of the renovate flow, but the main issue is to correctly set the renovate config with all settings. There is for example one for Apify proxy https://github.com/apify/apify-proxy/blob/develop/renovate.json5
Let's draft one for n8n and we could discuss in PR.
| "extends": [ | ||
| "config:recommended" | ||
| ], | ||
| "minimumReleaseAge": "1 day" |
There was a problem hiding this comment.
Suggestion: A one-day quarantine is short for a supply-chain guard — most compromised npm releases are caught over several days, not hours. Consider 3-5 days, which still keeps updates timely.
There was a problem hiding this comment.
I agree. I changed it to 3 days. Btw if I am not wrong, most of apify repos has min release age setup to 1 day though
Switch renovate.json -> renovate.json5 (supported filename) so the non-obvious parts can carry comments. Verified against the Renovate 44 docs and source: - minimumReleaseAgeBehaviour defaults to `timestamp-required`, so update types Renovate cannot timestamp (lockFileMaintenance, bump, lockfileUpdate, rollback, pin, replacement) would be held back indefinitely by a blanket cooldown. Carve them out, mirroring Renovate's own security:minimumReleaseAge* presets. - Enable lockFileMaintenance: Renovate passes `--before=<now - cooldown>` to npm, but an existing lock file with newer packages makes npm fail ETARGET and Renovate retries without it. Regenerating the lock file is what makes the cooldown reach transitive dependencies. - Disable updates to `engines`: node/npm entries there are consumer-facing minimums, not versions to track. - Add :semanticCommitTypeAll(chore) so dependency bumps are not labelled `fix:` by config:recommended's :semanticPrefixFixDepsChoreOthers. Left out deliberately: vulnerabilityAlerts.minimumReleaseAge=null (already the default; security updates bypass the cooldown) and prCreation (no longer recommended as of Renovate 42.19.9). Config validated with renovate-config-validator --strict (44.35.1). Refs #12 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Drop packageRules; trim comments to one-liners. - Raise minimumReleaseAge (and .npmrc's min-release-age) from 1 to 3 days, matching Renovate's own security:minimumReleaseAgeNpm preset. Three days clears npm's 72-hour unpublish window, so a version cannot vanish from the registry after it has been installed. - Label dependency PRs t-integration/dependencies. - Enable weekly lockFileMaintenance, which is what extends the cooldown to transitive dependencies: npm applies min-release-age from .npmrc when it rebuilds the lock file. Config validated with renovate-config-validator --strict (44.35.1). Refs #12 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Yeah, my plan was to keep it simple and merge it asap to fix the vulnerabilities. I dig deeper and added some more config. There are way more options, but I would not add those right now (like automerge, grouping, etc...). I would wait for some PRs and then adjust it. What do you think? |
Replace the deprecated later.js `every weekday` schedule with cron `* * * * 3`, and pin lockFileMaintenance to the same slot so it no longer uses its built-in `before 4am on monday` default. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Jakub Drobník <drobnik.j@gmail.com>
Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.
🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.
📚 See our Reading List for relevant documentation you may be interested in reading.
🔡 Do you want to change how Renovate upgrades your dependencies? Add your custom config to
renovate.jsonin this branch. Renovate will update the Pull Request description the next time it runs.Detected Package Files
.github/workflows/ci.yml(github-actions).github/workflows/claude-md-maintenance.yml(github-actions).github/workflows/publish.yml(github-actions)package.json(npm)Configuration Summary
Based on the default config's presets, Renovate will:
fixfor dependencies andchorefor all others if semantic commits are in use.node_modules,bower_components,vendorand various test/tests (except for nuget) directories.chorefor all commits.What to Expect
With your current configuration, Renovate will create 10 Pull Requests, up to a maximum of 13 over time (see docs for
prConcurrentLimit):chore(deps): update dependency @types/node to v24.13.3
renovate/node-24.x-lockfilemaster24.13.3chore(deps): update dependency eslint to v9.39.5
renovate/eslint-monorepomaster9.39.5chore(deps): update dependency nock to v14.0.17
renovate/nock-14.x-lockfilemaster14.0.17chore(deps): update dependency prettier to v3.9.6
renovate/prettier-3.x-lockfilemaster3.9.6chore(deps): update dependency ts-jest to v29.4.12
renovate/ts-jest-29.x-lockfilemaster29.4.12chore(deps): update apify/actions action to v1.4.1
renovate/apify-actions-1.xmasterv1.4.1chore(deps): update dependency @n8n/node-cli to ^0.45.0
renovate/n8n-node-cli-0.xmaster^0.45.0chore(deps): update actions/checkout action to v7
renovate/actions-checkout-7.xmasterv7chore(deps): update actions/setup-node action to v7
renovate/actions-setup-node-7.xmasterv7chore(deps): update dependency eslint to v10
renovate/major-eslint-monorepomaster^10.0.0chore(deps): update dependency typescript to v7
renovate/typescript-7.xmaster^7.0.0chore(deps): update npm to v12
renovate/npm-12.xmaster12.0.2chore(deps): lock file maintenance
renovate/lock-file-maintenancemaster🚸 PR creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or overwhelm the project. See docs for
prHourlyLimitfor details.❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section.
If you need any further assistance then you can also request help here.
This PR was generated by Mend Renovate. View the repository job log.